From nobody Thu Jul 2 10:18:31 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=1782739203; cv=none; d=zohomail.com; s=zohoarc; b=G7ZbdJo/bGGw/RNoqy/1CfXrcEUUZvd6e9qWoP6skMHZDJ6U62a5gLz4UN5YE08dS79BV3gvmLIRslRRFswUj4WkVx+ECEV5/UUDmfSa7eECOPjfWvrML0rAgLzOzVLJrWiK4PtToXNJOw8UgntP+3C+etiKDoAHSmRRLxrZUpw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782739203; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=011SrS5GzZCft5XXyTaQlyV1WtjpEAOEvGsDEjZd6oU=; b=mYZvPgBHMa+NlGsop8vgyFOCv+odVOioP6vwpFQ3gmN4TuGy0cd1c8kUIABSiBOjfYwSn5f4HOcaKBx+YWd6EyF6A70GFlNlGH/4Jfsg0PvZThDfhSyflyHe44PGnPxFWJrgzhlMVruooxh2PYzlhfe/G/Xda5917wPC2mW+A9k= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782739203189405.37843582804373; Mon, 29 Jun 2026 06: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 1weBn1-0004GL-PE; Mon, 29 Jun 2026 09:12:43 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1weBmz-0004Fg-P2 for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:12: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 1weBmy-00034K-5m for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:12:41 -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 65TAT6pX2618925 for ; Mon, 29 Jun 2026 13:12:39 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 4f3pdkrr2b-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 13:12:38 +0000 (GMT) Received: by mail-dl1-f70.google.com with SMTP id a92af1059eb24-1383723dfddso5332788c88.0 for ; Mon, 29 Jun 2026 06:12: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 a92af1059eb24-139e78317f3sm28459106c88.9.2026.06.29.06.12.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Jun 2026 06:12:36 -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=011SrS5GzZCft5XXyTaQlyV1WtjpEAOEvGsDEjZd6oU=; b=Zv BHhrTBUq4e0lmoy8+5lTToV/2u0/BT1XhYB90twLHkbONkZJAuEK9Y6CbYL0qs4s Cglg3Lk24yj9upFz3kmEpa1Tfz5/LxaZg/bH0X+1ZeV7qSddZLMqFcM9KlfBP2VK f5aeZjOfWd6XmOCTKQcjBtJndJ8cULU34VS/NccefnNZ9oyruxHFaF8VV5LIDbaC xzMWIj6Jxs8rmnwDABKWCNbxun8AKJYd4f72eJROseOjQwcqEu+ARQweKJSYSTk5 FnB2k6u0ocZiPQTk7SNCEF4uZu84Gb43v45EfvhLRWsxlcUFAwNpUb3Cp0revLZD G3vMh17HdO1iBXIARpSA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782738758; x=1783343558; 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=011SrS5GzZCft5XXyTaQlyV1WtjpEAOEvGsDEjZd6oU=; b=jfrNtIcp92Z4vQxEkfnkhAAhXXKXk2w3iHSxZUxCZulZjws9sSuz2aI6XWmqHLAIKe 2d3VWfeUTIFAFOpvAei1r0est0sHHOJke3KhJMLObycDRZI932EolCO6sUuR9NSeiJ/k Ep8qPeANcd8X/QWdfjVdbSkVGY2vzazSzDKh33bA7n/HS7XUP1+xcPEosldLqwuWn8Of md8ah0StR1LeMhvdac8qenimQTtE7kzAKUwE7CPkLNj83cFPznolESUQ76UrxRpAIEJq bgmG6sk0CRlPOAKvNF4pKWSrQnsacbm0//Sfe2izThmPsEu39OLY+dGtsTXvxYmHzN3n 2UNg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782738758; x=1783343558; 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=011SrS5GzZCft5XXyTaQlyV1WtjpEAOEvGsDEjZd6oU=; b=E2F+hRrMS9z1TEDD9Um9bb6R58FARtkj9hfhQBP1XnFnlTsIHGgfiRRduFby01OJLT ZZqGqpV3C/UOu1XB711xseX3G2honuJCkZAlKavAjdYFK+qGmxE2dTa3XxNKYLDVwaQ1 hNzu7fuN/83gpv3GZP6isK8/BLXe4Oqlwc9CqYW25OfA+fWNQjZJRP8aVPLp+mv6o13u sbeLdp9Le3ILEJ92TFz+Q2SFqHVI+n8zsFNvbNYWrpSWN/WfXfEw2nHcphc6y3Gr7S4u gP/+7bDHqIZ26DW8wi6xcvRsnSxuM6n/ojSOc6+qcD2Zce4s9P8x6MKWblxeaF3QKI1r UPsg== X-Gm-Message-State: AOJu0YwjePQnlEAxd+Ydue8SdFmBWoSCtqqwez2AmJg0j19jWytDfyxM 4qwFt4wMQ+b/ddzurQAk9hEo32DWHAtT4rHOudnjlNiLF6qdw1JqqPkwHyyREhVNMaeBxOvcLqi l1hZK4gKcGfSeSXR42L7wBEEztogNlSe6yrSXXCfBCY0vVU+C4pE9Tcs0BCFQkA4kYg== X-Gm-Gg: AfdE7cmHN0F2h/bt7yCI07dsgBj82UBFFt7MmGSs9EiaYaYMy5xWWFMtHSOYROqtvTH 3eBUvkJ3LwMnTQPH59UD/QM3lYo3n6eAmQaIKjGXAqCoxlJTY5+Y3tajVdsbXZpzNR/om6VFnk2 TIyLaQqpFmhMgRtgqqPYMOCpkuYOX23528OptPCbo+neG/3Q+p5vqiKCIbnghq3b9qIm/EkVpVR hvR4ChR5coC8CX/6UuNx62BlZl3VaZ2AMl02pUB6+OUo6pKINNSyctohPrxJseSTnSe/Rw3RHcf aU1sMuRoszBgOfup9xglIgxLiwqFmHiiZZuqn8I7XZHTbMVQiXVo9/74gsJSJi4sVl9v3Bjh8nc aIVYH0W/uZnj3c4+ahTURsDC4jA8gGRNRhzosZh3d13DTouulB7Vy8GbTkhY= X-Received: by 2002:a05:7022:69a0:b0:139:d66e:687f with SMTP id a92af1059eb24-139dbac859fmr15434670c88.24.1782738757895; Mon, 29 Jun 2026 06:12:37 -0700 (PDT) X-Received: by 2002:a05:7022:69a0:b0:139:d66e:687f with SMTP id a92af1059eb24-139dbac859fmr15434642c88.24.1782738757332; Mon, 29 Jun 2026 06:12:37 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com, peter.maydell@linaro.org 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 v5 01/77] tests/docker: add flex and bison to emsdk-wasm64-cross Date: Mon, 29 Jun 2026 06:11:16 -0700 Message-Id: <20260629131232.2487780-2-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629131232.2487780-1-brian.cain@oss.qualcomm.com> References: <20260629131232.2487780-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Authority-Analysis: v=2.4 cv=R8Uz39RX c=1 sm=1 tr=0 ts=6a426f46 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=rJkE3RaqiGZ5pbrm-msn:22 a=VwQbUJbxAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=20KFwNOVAAAA:8 a=dTW7Cx3YwPv8u8hf8ikA:9 a=QEXdDO2ut3YA:10 a=Kq8ClHjjuc5pcCNDwlU0:22 X-Proofpoint-GUID: jjvOZV2o-lUYKUJ_X1QWDGvXOIdLtbEf X-Proofpoint-ORIG-GUID: jjvOZV2o-lUYKUJ_X1QWDGvXOIdLtbEf X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDEwOCBTYWx0ZWRfX2idM0E4/UBzz 5fJvqK4UtlG1f4SQB/eS+wG2tOema5RoO/mwUutP/I1OK+CZKBHqqGMq+IvWrIetz/ucHUq1gv3 8bzHnQjRKUVdFSSSkU0C7xixNpNRjrSCIK7isOn5k18BAsMqI0OwwzpFcZr78br6FeTjqc83Fh3 OrRy96FWFIGB4tQeSm02ihjaUgBuehXZexAfr96Ky6XLDGa6DHLJ7hRQ3WdTFsphaWDdRMaSA/Z FwGq8kSME2zoOh0Js1q/OW4fl2inz8LyK7nhmrUr8otmIWC7R17jMAW0bAsXBOgwgnfvfNCwXa4 Te/JoucYDa0pg1ZdU/K0QnAQ8863KtVt/HDMeiQgz+VttOkr1Um5Kv0TrzUdxT1zpTN2lWqnyIX tAvSrccYr7UFhatGwIfYwJB4kYKSw0mtBYR/IamjEFcODyExifvEPy/KhrHsFQSz/RJd6fBaeuJ ddc7tFY2VvTh/xyzexg== X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI5MDEwOCBTYWx0ZWRfX2aB7NVlOnyAH 7OSyAUMyIOIvCMvIRZp2oOh0z8AvD2yQe8lXVb/lPUrIzk51j3teMnXEVX4nzvFMgJFgEwQKizX pnZ/tjVmD59a7x50qqaeiiRpP8kiDLQ= 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-29_03,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 phishscore=0 clxscore=1015 lowpriorityscore=0 adultscore=0 priorityscore=1501 impostorscore=0 suspectscore=0 malwarescore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290108 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782739203703158500 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 cbe20c7193e..c04a741b0e5 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 Thu Jul 2 10:18:31 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=1782738844; cv=none; d=zohomail.com; s=zohoarc; b=erccsUeHq92QVgZHxx161CMSKyE6Ov6ICl0AXmOGzZlSNzpNog/WfeBLcJ5LQUZbse7pPjNg1VM2D141v7dSuEIHVy34NpX+NACJrhn/zDztfvT7Blcwv8JswBM2PWRbjsaDYq+lOuHamtuEIMEyrePCwMLp3Qad5xpPOw83QXY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782738844; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=DkqNfhgoLR6C1n5uw8+lxuImR0/CtUUuBPbZ2jmRaQQ=; b=XiHRshqcrox129yGm66XTy/1SQYMBVjNFtZjw5bqTuOzsTd0r/WaMdbybQcoAeUDIdWW11G/vAowfIb9iWHpuwNBd3xEXA26Zfrc3DT+VZQPH1ItXa9SH/yUnfvw/BDPcSKFh86e01q5WdIW7Gi+PTowqlki0fpETkvzllzFiHU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782738844949237.67180390390752; Mon, 29 Jun 2026 06:14:04 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1weBn2-0004GX-GB; Mon, 29 Jun 2026 09:12: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 1weBn1-0004G9-5f for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:12:43 -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 1weBmz-00035A-KR for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:12: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 65TAT3BJ2604339 for ; Mon, 29 Jun 2026 13:12:40 GMT Received: from mail-dy1-f197.google.com (mail-dy1-f197.google.com [74.125.82.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f3nq88xf3-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 13:12:40 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-30cb5001ed8so3120432eec.1 for ; Mon, 29 Jun 2026 06:12: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 a92af1059eb24-139e78317f3sm28459106c88.9.2026.06.29.06.12.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Jun 2026 06:12: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= DkqNfhgoLR6C1n5uw8+lxuImR0/CtUUuBPbZ2jmRaQQ=; b=S1XNNFgqPpWwXv2z 1Y4BnJe4ES8pPBUGnAP5im4OADaEbRdRo6e3B2qOjREIL10j00uj6MSD+yXZAVo/ rHB9lH7UC/JR/SklqLs9COTpU2CSrQukQQhnoKdyRaR6fMdUxz4wjd9AdnaqDhUZ 4UdjGOYWZb151Nls2kMvzdRmUn0eVeFM9FxPOkd9EHM/v3bqSY/IQ3ikqbSc5h4w NPxq/PBJT9aRRWXf5OEXCk/SJYoOKoMR8G2zZZdoyxJuqJx9+uDPwl40DQrbKS/a YQ894J08rhC0j0In4SsHiCXUegUeCzOqj6iCuRO01ZDaIjtjn9SjHs7S8zZ1YG0Q ZxvZfg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782738760; x=1783343560; 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=DkqNfhgoLR6C1n5uw8+lxuImR0/CtUUuBPbZ2jmRaQQ=; b=kV0l3GNKNnKWJ3Pbr/vVYMQ5LdqXexXoUChW312csN08Nj4gv7m6VRIY+G0J4lTZgt wrJ8oZZCDrVYyU+n5PrWKlEyp3/g1m+TX3dOtVQgf1h8VuItUdQiFBp55gZhbKLZLiR0 C7tyrNcV5RNmPJeHAFs1kv1CRqz6g/FEMEqwqnXQ3Y6+YX/hysGAuHUNq8DxFYNyw/2v mT+u5G9mXYFoCkl2DozVSnUTEVM4HlHVOc4ZZullghF7NRqYOjmtTqGl3i7ev6ZO7Sqb 4QLd1yjW0hKc0wh9kKhezv8EYRtK/FzGIEu9NHz3LmaIUfhyNEGTGW3Hm8t0IMJWZcif MXKQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782738760; x=1783343560; 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=DkqNfhgoLR6C1n5uw8+lxuImR0/CtUUuBPbZ2jmRaQQ=; b=hJbmPNO7Ix5vvHv3Da3fnH5kR3wNEISP0RSF3jlwkHIgPdJtcesLfqJAalvyQlddAD hCVV+btI0P5ZcGc+4LnWmVdknzOq68vWz+kI4mj8QS/yqckfN4orl4/wOIOzEwzt/Slo Z2xhxV6NaGxgrEqN2QrTwnUMG+dxZ/KtBdy6iNuZceNnMBpXQgCprMHxA7jDQy1XqvxK h/kzrC1RpQyAF7TduNwr08BILTdE1hYUUbRKVz29CCe3nH3WHbzypNPzalrC/ArJk75+ Bjohnn9sTPMh7Jy7rAI13LRtKaOckQSmMxrLdiXd4TBP7br4T7TcnxVB2QbV3zKNLFwq /XYA== X-Gm-Message-State: AOJu0Yymxfi3E72+4AW3cpeyFqUbgjxS5Y5UxLS3Xsxy/Xhpx7rz4IHP CVDIeGSv6yjQmLj1kMiT9+FPg4FIEgd1hu/0xhtD20fpwAykqLU7OHMm9DS66WKwbqFvrNmDPBn 5vCptLwtzD00JuGL58t9zwPfK2rFFByJGOhIyYkIbI0kC1CdMG3YaL5Xc4kb10Nintw== X-Gm-Gg: AfdE7ckdLD3Qg65X39I+WhJvt89L4qqwW8uyvssyuZ6kLXjlTsoKd0O7m/dvPfWKF6+ AixlQSgK7TMvJqKBZdO1QyRC93b9TdG3mz5uIwirmTikqaelSjpyWS6HrPN7rdtFAY3fKJs9sYb X4j/xmVFezPUtXqG0AF13O3SKKoF4AWib0Jl1sdupywyzgz+q0kkeuT4m9Ad1ImBE+0KCmJmNgi phzNdYQYDDddiMI5eMjqC70nhqnlBNOHz82I9TdSwq1aOarKSxUWKk37zOsvi6IjgPpVIqqlzNw YjdRBAGFVmhhmQiYHrLMOCYCtE1RAAE0g8tbSMf1/PdCRBlRkMlBOrHQE3e8QYwLtF8x9chFwz7 7nlEU+/Hy7RDklZlLBPU7ZXD+v9OKCpOMU1CnoQBD5NkptsHKWS1LlE0WZPw= X-Received: by 2002:a05:7022:6a6:b0:138:12fa:377e with SMTP id a92af1059eb24-139dbb8ff32mr13747677c88.20.1782738759576; Mon, 29 Jun 2026 06:12:39 -0700 (PDT) X-Received: by 2002:a05:7022:6a6:b0:138:12fa:377e with SMTP id a92af1059eb24-139dbb8ff32mr13747663c88.20.1782738759010; Mon, 29 Jun 2026 06:12:39 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com, peter.maydell@linaro.org Cc: brian.cain@oss.qualcomm.com, Kohei Tokunaga Subject: [PULL v5 02/77] configs/meson: disable hexagon idef-parser for emscripten builds Date: Mon, 29 Jun 2026 06:11:17 -0700 Message-Id: <20260629131232.2487780-3-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629131232.2487780-1-brian.cain@oss.qualcomm.com> References: <20260629131232.2487780-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: ssZFFzyFKXjiLKAK30Ig96bZGSxD16fn X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI5MDEwOCBTYWx0ZWRfXzNWHcIhaS4uY e0f8LgxhIL41UisqmQA1Oj3iOdQ9wAWluht9j00daOkvNefU//L2X5pxHN/n+TvU5TUYHKs7uWf rxOIqLm1fkAbP2n6+XaFr9tFfyGGTrY= X-Proofpoint-ORIG-GUID: ssZFFzyFKXjiLKAK30Ig96bZGSxD16fn X-Authority-Analysis: v=2.4 cv=PqSjqQM3 c=1 sm=1 tr=0 ts=6a426f48 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=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=ILBgGCNfQiSgiI5BVyUA:9 a=QEXdDO2ut3YA:10 a=PxkB5W3o20Ba91AHUih5:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDEwOCBTYWx0ZWRfX31qaIZlQPqrC /oS+++3dk3mZyWXisXZe7mja1okNW3y86XicZpTmkaYuOuTO4bsio4/bXdN5htetXBV/w9pWSj1 HsOK6Amzuw+IEOCOV2AZzqoquN8R0S8ml5Ux8DdzxAA5xuMW5MB2zQHosRP7So3OsmesL36B60v K9LG2iC8Y4yO+njo7EohSUGQ3ki7BA2a0YB1gmKf8uU3MQzYWH4gzRT5u3T3J1I+8vyPV3AsHen 6nzACUJh3jIEEzBI/FYQSrVDfadtBJiscMiRhojZJdRcCy3aLWVzZSwQDEwZJsClP+MIhHA+XgT O7h2f92OTRXd6R8ePU3Is9/dPjr3Nl2aQEG52gWzy04sHZV6nZsaq8qr9t16hDQ/1BpsHSV7mZt 6ECrE77seTJIp2jvCaGL2ml963lt2rk9MPRklv0Xm9Me8r5bQajuv8w51yiqOPGTLiMToUlou79 uqbUcxosbRFDSU5Pzwg== 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-29_03,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 priorityscore=1501 adultscore=0 clxscore=1015 lowpriorityscore=0 bulkscore=0 malwarescore=0 phishscore=0 suspectscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290108 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782738846784158500 The idef-parser is a native build tool that requires glib-2.0 on the build machine. In emscripten cross builds, emconfigure sets PKG_CONFIG_LIBDIR to emscripten's sysroot which prevents native pkg-config from finding system-installed packages. Disable idef-parser by default for emscripten since the wasm target does not need it. Reviewed-by: Kohei Tokunaga Signed-off-by: Brian Cain --- configs/meson/emscripten.txt | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/configs/meson/emscripten.txt b/configs/meson/emscripten.txt index 4230e88005f..56c39763bb9 100644 --- a/configs/meson/emscripten.txt +++ b/configs/meson/emscripten.txt @@ -6,3 +6,8 @@ objc_args =3D ['-pthread'] # configuration so explicitly add the flag here. c_link_args =3D ['-pthread','-sASYNCIFY=3D1','-sPROXY_TO_PTHREAD=3D1','-sF= ORCE_FILESYSTEM','-sALLOW_TABLE_GROWTH','-sTOTAL_MEMORY=3D2GB','-sWASM_BIGI= NT','-sEXPORT_ES6=3D1','-sASYNCIFY_IMPORTS=3Dffi_call_js','-sEXPORTED_RUNTI= ME_METHODS=3DaddFunction,removeFunction,TTY,FS'] cpp_link_args =3D ['-pthread','-sASYNCIFY=3D1','-sPROXY_TO_PTHREAD=3D1','-= sFORCE_FILESYSTEM','-sALLOW_TABLE_GROWTH','-sTOTAL_MEMORY=3D2GB','-sWASM_BI= GINT','-sEXPORT_ES6=3D1','-sASYNCIFY_IMPORTS=3Dffi_call_js','-sEXPORTED_RUN= TIME_METHODS=3DaddFunction,removeFunction,TTY,FS'] + +[project options] +# Workaround for failure to find glib-2.0 when building idef parser, +# this may be a bug in the cross-build setup used by emscripten: +hexagon_idef_parser =3D false --=20 2.34.1 From nobody Thu Jul 2 10:18:31 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=1782738796; cv=none; d=zohomail.com; s=zohoarc; b=TCbIQtwo/Ocx5Xvy/z1MlQ9GXqFaoOvgz/cZKdxqmxyXg1X2/wXbBcZcLV2gjffPWSepd4Fv+JbjlcbGJPaOfD7aj4UBSrVSp/JUcACNxGHV64AaM69GdmGjKfOepPGxq2/g2QyvK8dJOu+dvSm4L++jaVmQGtQnIksyOhPZRkU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782738796; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=LesM68BQff6qtC2uGbxYViXxACi2fVP2mWSbt8TUxv8fK2dSjfQ4t9nN2Pdm/JNmmKMagZ8pkzKGHU1F3LsOhevETbsEvuR5JE+XjVlZL/vuYhvktUu3EqNhsyYPEdWnrsCmso+NEy1WdJ0Yf6t6jqdcp66hSIkpcCMDyDKUKlM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 178273879599376.86105394826018; Mon, 29 Jun 2026 06:13:15 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1weBn4-0004I4-Mu; Mon, 29 Jun 2026 09:12: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 1weBn3-0004Hq-Eq for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:12: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 1weBn1-000370-P3 for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:12:45 -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 65TATKCY2656131 for ; Mon, 29 Jun 2026 13:12:42 GMT Received: from mail-dl1-f69.google.com (mail-dl1-f69.google.com [74.125.82.69]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f3np7gxpx-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 13:12:42 +0000 (GMT) Received: by mail-dl1-f69.google.com with SMTP id a92af1059eb24-13af1bcb210so319103c88.1 for ; Mon, 29 Jun 2026 06:12: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 a92af1059eb24-139e78317f3sm28459106c88.9.2026.06.29.06.12.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Jun 2026 06:12: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=GLP31WMp9ya2aQSzhpJX7UU63XGBhoUjedxw7x1beJQ=; b=k9 mAgTz+SFBKhYy/RVALM8dNCOaqgP7mbFy6lKTdnXjhj55e/1sZjYFljOSqpN05PC zgeIsuDLw8A8TCjHrkld37f6uKX7YUhLxSLY6y+aW8FkM8r+Wb0dSeJP1Q7ei4vq 5qnb2uj2oaCaigb0SzbMVraDe7ZjknTbQoSRE6ftbimTTyZNT4cA4Rf7YV7Za5QQ UlzS21X+JYH5yBWLADp3rUO6E7h70eFh3Rq41VXm63wJ/g7Pa6C9O9OdZAC/uiYy hkpL+ueJH8TogJDrufnVhQ8HzVtNYoQIwZ3lkhsNbNw/Y69CyZz/j5pqDC3m9wjA /UiDl9Iyci27nHRwIhAw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782738761; x=1783343561; 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=Sh7iipQkEZjzMBkgFhdC0k/Pk0ffUAlgcfHyAhAcfOucDDRB7v1yFLo8k53N15DeKL KJiAyxPdmjS0TNw/bRFkxs4ZQ363nUT3ucqKGoBoSXSnI7jNokOVbZzmWxI9O0rOHs8l NpgxWO+wFGrMGxqA9uafhk+qdgyqz1SrI/7xPbSw/7fCxMcEDxctf4LdxhYnpyxXc3C5 kpnxY7nqAGa45hZB2qPpVX5cCTro7FnmhlMJOo0AJkNheeO06cfyzvk5rIB1uPgsr/k1 qJH7csIHBaf2B+OREIe4A30YNL1+vIFF1igQ6bg0QJxXW6xHugqJCWxkS3nRHNJ+93Wq DoOg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782738761; x=1783343561; 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=S5BcYrnQxdPwspirOV9Q/sF8S+7Kh/iODBjtjuFHx4mpjbLtbu2RAhgOfc5fZbyPIC S4Ny/0CBSU3jhaB0joHDWfut2vW6eJG0tIqlJivWWOoCGu3hROG4ORdnD9HzVUj5Mkl3 YXKgSk4P4UQCtdozcotW7OgOLXOtC7xdSBpF1bI+0r6pVd1qGN8rfhjIxCWI26TBXpuu Sq8hLmquOzUy6Nf8CdU9m6JJbcCDjY+Oq729muICZqidGmzkT7lNRDCiCl4GY2mwIRmv qvFuXW+MSqzzvE2dM+RiSbBXwQILTF2lxfdKlhLMwGJEj50jalf9mbK1ZTRnryxWHxWT Sx3w== X-Gm-Message-State: AOJu0YyP/Tv36cVv9TbsulVZiZramaLpWR/+QamNAEXtVtpQZwtRIPEL Xt+//JXDZvGa+yOZ2t0yX8Ea3BkXwM3db4oaynBc/UofrT/OC5AzLwVkfbrfOAfZzYe9hbjx6Fb bwLAtXR8PplCFOq+2QTHnlAss+SgzShxageCcl96VXg01Y00BKASVlZY+g0+wQpyCgA== X-Gm-Gg: AfdE7cnhQPGyTsy1ziswG3hvW5KCheZefE3OA+TNaUojDZYJkTr084FMUvg1mCQte5n shMHhRiEuRUj/UnItSEtR3yjSP6ysQL5U3104JQVHJmA9Gx57Zx88lJsgre40UKv8i0K/henq6N 1E+W46BDQpTw9Gl2tzMNvO9r/GHsgrjIxW55GgKVZZnakSm8fMiNo0Cm9cRaGbFTNhhUF3JG9KT eOmFoFm2xpixSChVe3/Y6lvuozNmfBT4lUcphbb+naI8sBArUBCKLL0t0gD2eqqG68C1bDWRwyO 8zW342HA6gEodF2Stsv9/mOeo+Mzt4jXiYRw5I315+aTqQOMXQa/B/BVcknDwtDbWwvJf7WS4RW N1LfAMC5NeATkt5fZXi5AjSwNJ8Ro1FxxSzcg5gr8xDta6xJDJSmXXeqXeuA= X-Received: by 2002:a05:7022:921:b0:133:39b9:9720 with SMTP id a92af1059eb24-139db9d6539mr12673314c88.16.1782738761409; Mon, 29 Jun 2026 06:12:41 -0700 (PDT) X-Received: by 2002:a05:7022:921:b0:133:39b9:9720 with SMTP id a92af1059eb24-139db9d6539mr12673296c88.16.1782738760838; Mon, 29 Jun 2026 06:12:40 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com, peter.maydell@linaro.org Cc: brian.cain@oss.qualcomm.com, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Pierrick Bouvier Subject: [PULL v5 03/77] target/hexagon: use cmd_array() instead of get_id() Date: Mon, 29 Jun 2026 06:11:18 -0700 Message-Id: <20260629131232.2487780-4-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629131232.2487780-1-brian.cain@oss.qualcomm.com> References: <20260629131232.2487780-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDEwOCBTYWx0ZWRfXz4e64H4umSWW QMbAx8/ehZew/8lEGRG790vc3zpKBQOgc0NGCAdrWSRGtsWRf/jiQ4giMEb0fWBJI/5Bu6+8enP Tr7MvqoUthR+nsEBcAFWJCp7MiZXjdqfwRhxOryA4foTFE0gzU0MhyIsQ2KR1kCv+JfklXFTLI2 PbKEJIARW5GIuea48B54kda5lUf5nO7E1KKQUyQ16S3cH3JxIs7A+MEVAWDRe3p3hsHOzaXluKy G3+mVTRbuc371axtqTw9uWVH8dUWrCWxq4OlKbTEQD/IroAXr73SbaUn5wapqllk2hN8d0nvFe9 zN/Usv7y5j/Q1lEKRTnaB+634UDL5w78MdtIMiC6mSlEKJGkvAUCUoFt2TsH3PEmFOSYB0xwLHq Kyr/LUuGgxXtgFsigaGc4HwUKI7wKqkuVu6KgUWvFNBtB9FJVT6FYL0W5LJwHb0X5cLzwoPO/e9 vzehckf7+V8pdFy+kMQ== X-Proofpoint-GUID: WPox4P_YHOjC-ogQvblRmpICh-BdAiP3 X-Proofpoint-ORIG-GUID: WPox4P_YHOjC-ogQvblRmpICh-BdAiP3 X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI5MDEwOCBTYWx0ZWRfXwtmwhdgolp+B jc1MJrca17Io1xmybTv8B04HHcx3SdGDLN6CWWOlssFkkh1bWT7r68QPJM3pFWjXxgCEtQIHaoy NCbIleM/L0d166Pc5ttTpaJkKtFXKnI= X-Authority-Analysis: v=2.4 cv=OcWoyBTY c=1 sm=1 tr=0 ts=6a426f4a cx=c_pps a=kVLUcbK0zfr7ocalXnG1qA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_glEPmIy2e8OvE2BGh3C:22 a=VwQbUJbxAAAA:8 a=pGLkceISAAAA:8 a=20KFwNOVAAAA:8 a=EUspDBNiAAAA:8 a=SrZkeIdwbWuKvdoqoQQA:9 a=QEXdDO2ut3YA:10 a=vr4QvYf-bLy2KjpDp97w: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-29_03,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 adultscore=0 spamscore=0 clxscore=1015 phishscore=0 bulkscore=0 suspectscore=0 impostorscore=0 malwarescore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290108 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782738797147158500 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 Thu Jul 2 10:18:31 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=1782739209; cv=none; d=zohomail.com; s=zohoarc; b=F+0L8tJHKZoOxqA8WX/bypl7Lrdbt56Ajz9b+rMUtvKTrA8tx7PelN0j0hZA3OYlVURkcD5cYp4OHUuEp30Z+SAeUYjrhnBeoVlCvFM4Ds580j3xT7NElAGDVhbDk+n5uuXtnZVq3Jpaxe6uz6xp/Ppib5c4WaO6gmWgIXbNx1c= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782739209; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=CNHAwCBHMel+AOgIL2bYCAwuOucbITyZxL7fcc4glzA2cdQbjOYuS7S1+Wz8DWJc4xaSv1svdnmcsNAwAw6ZMJ7vwF3x44IRSbl1crg8Cw05E+tms4AtWxsD7U8qWG/m3Ssn7qPKZmct1YdM4Upn9iCaTjGGWsMp/N8RwhfssvY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782739209168272.47810112662603; Mon, 29 Jun 2026 06:20:09 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1weBn7-0004Ix-3q; Mon, 29 Jun 2026 09:12:49 -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 1weBn4-0004Hz-G0 for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:12: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 1weBn3-00039A-4s for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:12:46 -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 65TAT4oJ2627854 for ; Mon, 29 Jun 2026 13:12:44 GMT Received: from mail-dl1-f69.google.com (mail-dl1-f69.google.com [74.125.82.69]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f3nbgs16y-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 13:12:43 +0000 (GMT) Received: by mail-dl1-f69.google.com with SMTP id a92af1059eb24-137f3465368so3922418c88.1 for ; Mon, 29 Jun 2026 06:12: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 a92af1059eb24-139e78317f3sm28459106c88.9.2026.06.29.06.12.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Jun 2026 06:12:41 -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=KI oYIayPXHgYy8q1Iiezb73dn6kEKQOjVnYQzKHPcnDegaLYfOrzhWY2EnRFYpAvMZ EPJCoDyhvycjFeM10eFDJyvNra2EIoDacmaHB9rEyuNgSeJ+qEIW4oYa8VvsQ5h9 aEGZBGjsYBeK8ArETooijN77dY01SGAkD06jZKW6YE5BPHWdozyV1TyizLbT1H2f raiIRbUBlpOMfWfFEIaIwrjFOHPI9eIAHOO2UnkjCkia/J/AjdoiBE7mbBPRNTUR LrU5n/n2QG88W821JpIN5CdhVJurDR+6KGsXm3uLdMvDJm16YqUo9h9o0H8StODE cO1nBvpPT9dbtt/mByOg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782738763; x=1783343563; 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=cARpCr7bT+TRK0lSepLcZtW4KFHXYIum9AK9X6P/o7ttDVwEhUp5uIXVp9yUb2FTIg 1gqDEFXnhnF1ZWtJ0N3tB8D/yB9hZxNYqHfMoTII+Xt9WVzNOMrJXkzxTj5Y/c5ktlwa rly69J3NCbQuC2Zs5735R9rfU8lJ928lDpY39dosPG62ZOvrzsNKvWoRUNJ07f32qWTu TPq9qfs79ikluOAyCrwa1YmELuhqb7/tZBGhLA4nqe4+uXoIDlw1ZmEPdhRG1u8rdns9 QHikJv/hRq+w/eX8RpNEMTEBd7JKUmptr6VcYWHkEe/CwleaTUONRpH31XJLm9eN0PZv g7DA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782738763; x=1783343563; 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=qJ1MKK16F66f77rBq9KK4ITGp4iQYopwj6oushBkSDITCfA9xRTIyh7YyUr6+mUaeG LjwYdzIZWPQOUucwDYW5KOL+b9j4b2r6txUS/TlCBVFw5Fhl6DLFXPnRVV9gCicX6+X6 Z6Dxnsc28eMv7x+TqRmRiwjuMbypKvkpCQlj4yFGNvGJjlmpnFbI44UnehNXSeGDKne/ CoCQmVkT2oHtloUkICxZPICLkg/UFpcHu9+YstO2QmdsJXUUe1s6so56jnfbiqXLpvVv sRnOewaB0mXaw706FFm+XTBXFvZioo0fOZYs3FnjmtAGaBme4QV55nrvr4gzBNY0R8sv jPug== X-Gm-Message-State: AOJu0YzDltEupGar0aBfk9NuY7vrK4nuBSY7BoE5U8N4SQgIrmTOKwVq uDb4cNgoXkl+8kdLE8zD7mg0eD2g3SILV2N6jnM2Sc0a3o2KI7VkgUk3TDpLzozvd2of+V0+lts 8PgJ+QpMR0rYpTsJ5h2Zy/LwfrI5unUUcWRFF/KIX2XiqD7qAhgz56SYw3OekuT2Niw== X-Gm-Gg: AfdE7cnxDjeWUOqxLS+k8ibDfOBEGBFZONTxSEkfGCE6mErSCzf8U/3Rqb2RReUpP0s 9jKs6DpI/Jr8hLmwZaFrjWEeHxLqxiT8+w0VYOCAoKVrr/amFoocYOJ8R9dxTRwKmH6gt0rGiAk hVTlTbRmH66qQj6qmF0NmnNm7yioO2+cZ+l71OPuNuWJ7sdkUgOTO5n+qhwICXVFfz/a8qpRiES k2vrZF8CuiXVJDsEYbVxkKl3MWvbpyYJLvXF2jiAWFRYkSi+lcrGPolyXX6fnxof7vLAsPhujSh Sg29EX0WEzmgbvJNrQtvJH2FloABzV/dIBGacE+jfAo0UTEl25sAWu8KGzO1zQcg9esCXTm8wNK dKHzQVp+CsZgoC2JS/PbzVqXPhmDr1fXnGL8vwCtH57YL27ykjXfGL7EcqPM= X-Received: by 2002:a05:7022:788:b0:134:df7f:a5cf with SMTP id a92af1059eb24-139dbbaf082mr12364916c88.29.1782738762959; Mon, 29 Jun 2026 06:12:42 -0700 (PDT) X-Received: by 2002:a05:7022:788:b0:134:df7f:a5cf with SMTP id a92af1059eb24-139dbbaf082mr12364892c88.29.1782738762427; Mon, 29 Jun 2026 06:12:42 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com, peter.maydell@linaro.org Cc: brian.cain@oss.qualcomm.com, Pierrick Bouvier , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Alessandro Di Federico , Anton Johansson Subject: [PULL v5 04/77] target/hexagon/idef-parser: open input file in binary mode Date: Mon, 29 Jun 2026 06:11:19 -0700 Message-Id: <20260629131232.2487780-5-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629131232.2487780-1-brian.cain@oss.qualcomm.com> References: <20260629131232.2487780-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-ORIG-GUID: ar28R-0nHOGbQgWHe8zA9o2ck-Q-5gxz X-Authority-Analysis: v=2.4 cv=Z4Hc2nRA c=1 sm=1 tr=0 ts=6a426f4c cx=c_pps a=kVLUcbK0zfr7ocalXnG1qA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=gowsoOTTUOVcmtlkKump:22 a=EUspDBNiAAAA:8 a=XwlTJ2-QRR3pk5tWCfYA:9 a=QEXdDO2ut3YA:10 a=vr4QvYf-bLy2KjpDp97w:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI5MDEwOSBTYWx0ZWRfX1wEH6JlYAQST dL7K7zRBug8F76vp38Vvk4QwD0g5vuj2goR/jlDRlmTKESVudXdqxjP0Hju7wM4TrVmm0CMQo6n kx9HZUWAQS18rFlXeLJJnmruXOgRsWI= X-Proofpoint-GUID: ar28R-0nHOGbQgWHe8zA9o2ck-Q-5gxz X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDEwOSBTYWx0ZWRfX2XaNBCSv9kCQ ZL3UOJULzckAiLskyGmud/WyvTFFyqpCmsG7uMTsqKWtkjFEKzvpS2T8t8mhKGaoEhnuGMJbgaY 9REoRUXQnFwRKBt0D7DSS3IOcmeJQ+TUqPzp8afGa+FItmcHCD5OjOA/wz7rw+sSpb+cMJ3VUuZ gXTYIRMxZNdwLg5Q2+VYIb5H1ohryJRzDjwIV0htAIPQGTJqmSlxltvctjR6tHNMx8Luq5wi5ns ERwo8JBXwRT3eyBzN6N70EDmiA1nRRK+okwPNBHPoHijI4/VvrHBZfwm64fAmz/75q6Hn5o7ObV tF/hPugKcir8+7L0e8RW9ihyVM22CLOij1txNOltAprOO4XlXoLRmlSaLjOuLtfJtAH+VPzzGrz YUB2ZCQHV4IhWBWUrjc+Dwlw3u6QfvKC7YoZmjdW1oq/OuyQ8srwRYBU9Khj2aa0YlYksbpWFdY t4vqUJuqSNQKEP6BxSA== 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-29_03,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 suspectscore=0 lowpriorityscore=0 priorityscore=1501 bulkscore=0 spamscore=0 impostorscore=0 phishscore=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-2606290109 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782739209883158500 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 Thu Jul 2 10:18:31 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=1782739205; cv=none; d=zohomail.com; s=zohoarc; b=KLLEJ22A/6TcMZgkquTkXhSd2fNWz+klG8ZBHSAFtuu28cBci3Ig8pCRKBH4ea7mvOHCraT0TQVRdNClU9dKtKglj1pLgnmNBBGfUxC43B9VwYsETbNojbdqXiLhzbXkdXz0k+nrvhbBTm72vej/PCV7NQkK4jz1RsyL1EsyglY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782739205; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=+/rZy8UJlzfqN6WqDKmB6Z7zz0dsJYHMKxTclfHY1xo=; b=BCLgjs82eO+oOv3ChgtBG+446AoHbacFpbdq4/XfxXVsiT4qe3aTwyJc3+KfmRa2W83agoFG8P/smW0iUchW/uoqDItwYVZQPazLjYZJDfcZ58kD4Cu3sMaeRBFrj41JQGYJWxlLEjmnaK8aU/cHvc70IhP88pT7LVmPc3YeATA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782739205659864.9540486491626; Mon, 29 Jun 2026 06:20:05 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1weBn7-0004J7-Kg; Mon, 29 Jun 2026 09:12:49 -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 1weBn7-0004Iv-08 for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:12: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 1weBn4-00039b-Pu for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:12: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 65TAT6wY2627938 for ; Mon, 29 Jun 2026 13:12:46 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 4f3nbgs171-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 13:12:45 +0000 (GMT) Received: by mail-dl1-f72.google.com with SMTP id a92af1059eb24-139b70ca7e5so6897290c88.1 for ; Mon, 29 Jun 2026 06:12: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 a92af1059eb24-139e78317f3sm28459106c88.9.2026.06.29.06.12.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Jun 2026 06:12: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= +/rZy8UJlzfqN6WqDKmB6Z7zz0dsJYHMKxTclfHY1xo=; b=d3edA6jYsgVMX7XK /imuVOZ0gUVCRwpvObV8IBnXNlafeJo5Oyh5wrEjLSeEkBlwdd0nBMvHGuSUfdP6 ABmnG1L/9bYqDGjp7/7UmDHHCFD04CLh4cRTY3u1X+/AcOeh294cgTSAjSYyNVkj 75NPGngTSL810FGzjeSyKZKwPQ6R7BmVDCMHbPd2YTWOa9bzZgrHuzWJQDb2Zz8b SNBVHkvkgl/U1BewY9naAjRXzrcHeki2YdaEIVhQPq+s+0+Y6HbhNcxe0RcXhEvk 48VdWcMV60sHaxWpbMODFKQBWGzH0JnQps2tvpgWHx22r5NXgvz5XXaBH4ZeKOp8 fykZWg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782738765; x=1783343565; 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=+/rZy8UJlzfqN6WqDKmB6Z7zz0dsJYHMKxTclfHY1xo=; b=X3ti8Ip0bYyHdJm0LAWj5fHa2jYgxbYqr+GOHAtaaPJk4fn9RfYIK/LRcxyRwTXQTR 62BUPNv6TQ/Sw0nnespkW7u9EDjFTm3gHVHBq9A6wlPkGbuFlaEOJe0QXuWEsY2TTS1l eP+uz0GzIFOweuhPVRsXYDHq37vRkJyQ/r8LU9IQFtv7MbkuPKRiXp4Paj3V5SAvAhgM x9+MnVA9rBYlJIaob5uPhk/YjsgC7IpwFnER6pct7dY2c1GmcqGgtMPxaDcEWPC6HTWa 8XoS75iTwN+4jL164f5d8lt7ORzQMvdjyUKczSeJUiVjNWEtRA5N1lwwXq8guA/QqzcG EbQA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782738765; x=1783343565; 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=+/rZy8UJlzfqN6WqDKmB6Z7zz0dsJYHMKxTclfHY1xo=; b=Zz6mgDA6r3kHsWbm43Fg7M2lm36XvWq3rSNhLNJ4rETTK/4+VOEgLmq0j8+gd25p3x Mx0fFvS0XwxoECuDdNnBugGSOOX0dlKlJprgZRcklY+i3rfhglZN+yREMH9//W81S/fQ Hoy5feJiaKAwS8Vr8gzSgi6v9k54NvJZhyvl9PtQiVU5zjtSkmhMigLiFCcEYXxt9ZLz kSFId9EO9hEZoqiI5LQhChoPcZUeOXHZgpp8QBZob2EBQTQCXWV0YU6vIBOZH0cGcyEr p/YUMDlhsLhtnFXinqKhSAd7Hnrr11VIiYTs0orNvr0Ip6noptcRGzUzMabbhJxNqTXW HABA== X-Gm-Message-State: AOJu0Yx4AAQJpcaeXLwrHNhSzpkCmAFu73L9gJyGpgHIPtXlS5l3UErg vbefzC+QITaDP3scp7yYprSMlYrMIN6Ce90YR5cjI2GHJP/3pThTXAxbYzQcYpwkrhC+QrNZX3T 3xd9CPMypmZmq1P62ylJX8JADL5022dxsrV5iiv/miBRvJPyBbvYuNtOyT/WrirIZRA== X-Gm-Gg: AfdE7cnD5rVOeYs7y78/ziKujgAHYKHnve4pP3/m83u5OXIk8Zs2BsLt5nKLXlj4Y+K d9iy6NEAsnP9JqrKTjR8vGxGiX5FVMEDLY5vRgxJb+Ww6vVObxFTyyt8gKHrufCtsVxFf6ju1dV lu3P4NrMNRDdm1hmMu5oEGUhSZl0byRBQuOT1SKdAztJWSJ++Iv4rgJVLbMG/1AAjJ+5tkPG902 B61n6CfI9iDOwOc0BP6Snc5H87/Oh69C05zwTXs7DM/YAky/TAHjMwt5eENx3+qERyZHmXKGlov fmDROGQlVVPurNUOlXXl9Z/QbbUuAQGh1JCYRppqNeY5jkWScV782SWvfBcy8KGIaM1GWi6QtvF Va9nRSAsl65m21Sy1PY09rkHfUSuzU9g9/AE2NPVyzN77uaYrW4XGrq4F0w4= X-Received: by 2002:a05:7022:1b09:b0:139:cecc:7726 with SMTP id a92af1059eb24-139dbaa72b9mr12965367c88.20.1782738764706; Mon, 29 Jun 2026 06:12:44 -0700 (PDT) X-Received: by 2002:a05:7022:1b09:b0:139:cecc:7726 with SMTP id a92af1059eb24-139dbaa72b9mr12965334c88.20.1782738763954; Mon, 29 Jun 2026 06:12:43 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com, peter.maydell@linaro.org Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v5 05/77] docs: Add hexagon sysemu docs Date: Mon, 29 Jun 2026 06:11:20 -0700 Message-Id: <20260629131232.2487780-6-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629131232.2487780-1-brian.cain@oss.qualcomm.com> References: <20260629131232.2487780-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: bOWo41ZRsMee3dDjWQoToRtcYQ0OZuNa X-Authority-Analysis: v=2.4 cv=Z4Hc2nRA c=1 sm=1 tr=0 ts=6a426f4d cx=c_pps a=bS7HVuBVfinNPG3f6cIo3Q==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=gowsoOTTUOVcmtlkKump:22 a=NEAV23lmAAAA:8 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=mUVmifZYX2f7rcceRB4A:9 a=QEXdDO2ut3YA:10 a=vBUdepa8ALXHeOFLBtFW:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI5MDEwOSBTYWx0ZWRfX9jmx32g0yRNY qcekLKJRNX+dd/NOVZLfq6c2r2go6Mi+neVAE+AxyPB7wdC9syMcFGyDG23uDuxkWy1KTq5sRfq NcHneNv43IXNY4wuJ5Bn42BXeBc95Ys= X-Proofpoint-GUID: bOWo41ZRsMee3dDjWQoToRtcYQ0OZuNa X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDEwOSBTYWx0ZWRfXxYFxRqJfpJGf dFVOakZfJnnVYtU/VuBcLsor3m+36waTNa16JEtlqc+OS9oqJk7ZDSFVDfv3Gb4RY9tQpYjHiVy wX9MjptQZk0gjXnFUxkdW30HrlaG63YzyKJXv5H8DNMncMV/bmFm4XqwVY8YS/zjDMIzjE9QZZD vcJMJXBuCL3QUhTDd50jZybbiONvMawe2ZY+MldvRH9OLci8A1uz4ogS4UJTzOV48KInFdTGfv2 5XoMqEteUo5Sr9PhGJTY75K3aaenhxKgf5HXJ26HMMhrk6h/QeSz35glYo0ATovrnl8Hk/r7Zf0 CimLavdqv3OpNyEgGoIEihVl15cGMelDOYYHKmMGzRsByzKbChsmslFScQstUmswO8OgI7CCW0r IwBL0wXKn2Sf7d1zUGT8+/f2O0FdmcwY/cPxKThH+uD0sNWTHihnbKm0tq6Qs6k7urVOs/Y60vg PNlD1ZtxxkzJFcwW5lg== 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-29_03,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 suspectscore=0 lowpriorityscore=0 priorityscore=1501 bulkscore=0 spamscore=0 impostorscore=0 phishscore=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-2606290109 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782739207809158500 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 72357df7c4b..5376f7d8d26 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 198f155247a..b89bab9b306 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 Thu Jul 2 10:18:31 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=1782738796; cv=none; d=zohomail.com; s=zohoarc; b=HaNDkNIg259yGgDCxwArqgq+WoOYGp2qXDpdUQGI5pSTl+H2Hbr156kU6XdQF7+/5aTJwEW/QTKUlwfopSAu3ClN2RGTLI1XrKsAy9tfi4f1eE5h8VZ41pdaNmAqhAZ5KH6GNma7jkC6UV8vXY/U9TKGTu9XuAc55gTKZDIEU+k= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782738796; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=NoBQSEtmCsEjdqRO0fm9caHYNXWAyDIOAtpGj/fckfG08iEQ1XWbsM9lF2O7W6QTLu7CEvDmfHAncntiZce4DOhMJkXkBO+B50f2klxOrjBLz9aU6pvh0rnv5w40uCwZ3WyWZ476GDjI7O1wvUYytbKB7hRAwt1LqGBcDW1LfIo= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782738795994403.7078041604715; Mon, 29 Jun 2026 06:13:15 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1weBn8-0004Jh-UH; Mon, 29 Jun 2026 09:12: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 1weBn7-0004J6-G9 for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:12:49 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1weBn5-00039k-UV for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:12:49 -0400 Received: from pps.filterd (m0279866.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65TAT3Le2601595 for ; Mon, 29 Jun 2026 13:12:46 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 4f3nnw8ybp-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 13:12:46 +0000 (GMT) Received: by mail-dy1-f200.google.com with SMTP id 5a478bee46e88-30ba395b047so11794941eec.0 for ; Mon, 29 Jun 2026 06:12: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 a92af1059eb24-139e78317f3sm28459106c88.9.2026.06.29.06.12.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Jun 2026 06:12: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= PhlMi1XNwmwGtcu38VtvVt8mGfYfYfXO6/8xhorQDxo=; b=ILhgk8wYBC6mP+Re +W4viThOlk8EulSCIh6g74aybJsQvUeQvxI0Slxk/hajNlwZb0t0iP00SsnwXAtI +LaSUG4S7tYOI4DnVPW1tIE0whQQnZ+LLZN6uq4k5wEdDz8GPG9Fb6FYgOKxOw6F DNNAyuB5eMt7g15Vusr+B2ZQlqSMNTwLkeYXp9CieUliFJGWClHe0IKh9TszjRpV gw+oP/tGMxrCFNzy86WDbZauvjaqUPbvnwLGM+3t6IpOXYtmJ7NTzyajlG68WOhw dZFWgkBJe0GQrKcZVivtz7Ye4Lb0fx+u3rgnhyum1uqBo35slSYnAMRopghvZnOC 2USrHg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782738766; x=1783343566; 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=UW5s2mvn6O/+KJcA1GlQufm1kPt+F5RyfPhKGKdAEhn1Kt8PV+cI+9V5yNqZTOESqJ V4PxUwxM4jG9gY97quVdDQJmtcG2A5UYO9B9gYsA7bD118YNL9XZWUODM2QbfVsJ7Ira seiqe+9eOLRA0i9TqgvFLEyuMpfJ/czL6XRP0klQ6xtlG577VFYup2IIfZfObLoDqPjn /yVPYTw2hGg4JK2uFl8eQZgF2KZ53WRi7Ho7hrzjYPbIzj85Efg0p8vIFexS2jo3M6Jv vhci3NuJDl82dseVpWcVHJgiwQ9JL1HM1mqGWyQ9jFwUt/d+7hTiHgDK1n2vZhVtsxJv ce8Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782738766; x=1783343566; 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=IFjp/Z/eaZg1EfDNZipFjg6QN+BfsQuyfXo8sjvMFd7JlNDFkj9nJ0sk2mwUpqap+G LVKy3mW2vZYDu75xm1i31NfRt7wnAx/+7fLlflXf1Yh0LNiYQTowQB5u711zuMZFBQKW Tvm0OUedl4dYg3/8EmpbDQ1x98ocjHdZ8sFRQAgrdX3Nxm/hahWpL+QN5XNKx76cjmJJ K7mNsg9cKRV3jrLNLIgkkUvq7MQ2TRk3z1wGm3glHREm8sKsMQUPltx5Fge58IQ8F9G4 i5SetsmV9VH+X91i99GNLGNAIxKeIeFGcnb9lcRECcPeYjqEtBF85rHtlb6z26j5GLZm UvIg== X-Gm-Message-State: AOJu0YxdTVaeBpIuuwZad2ioTqbm9uHbklP/pCmu1093Jxl2WoLKVic9 9uXotfamTkAhI9BCmotySJvIWnB3H/JsQoLvV2Um9Y7VPyqSshFZywr7Q3f1CCXNyzc3Hq/AqKc kDkb3ITjpuavpDGisEWa8g+yv14paBRid6SHbowfdAO6Oj4J/6x1pXdwr8yg/OejYkA== X-Gm-Gg: AfdE7cnC7UaOqjeRrGDUSzGuqmBS64Mys5vr2r4Rj/Rl4uXAtGoNKMQ+7MfQOpIh+5X t1S2a0pO1MHfhYeoheNpmqQxwatdqT9LhuuleeaYuVc8zSOaVS0CSjtSqjF+CzDOhOo/ncDuz1H ae2dOZnh8HdfK2iNdVpp3sf+6/zMnhTIRSCPFi01a0dGclc6ckNXzmAvwwEkZzr51FgRrD4rUR5 JUjTz/iN35xMopgLJLtVTUMS82ejeizUXWKHDys1sNMSKGw09K7qGwsx0ANJetJTAcgI7sz94Tl 3lWFhIFyrNqjcdFTHiWJqCF9J9G7fzfumvgO1hagvWqPOU8P1TdPj4TIgzmjAvMML+4Ips54BuB ZItbz9KqyLgd8X7xzlUG/iDotNosailLtd1nsdC8ULJB2ODM6WaT33wOfELc= X-Received: by 2002:a05:7022:3d0f:b0:138:33cc:d88b with SMTP id a92af1059eb24-139dbb2eb59mr13264640c88.20.1782738766031; Mon, 29 Jun 2026 06:12:46 -0700 (PDT) X-Received: by 2002:a05:7022:3d0f:b0:138:33cc:d88b with SMTP id a92af1059eb24-139dbb2eb59mr13264612c88.20.1782738765541; Mon, 29 Jun 2026 06:12:45 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com, peter.maydell@linaro.org Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v5 06/77] docs/system: Add hexagon CPU emulation Date: Mon, 29 Jun 2026 06:11:21 -0700 Message-Id: <20260629131232.2487780-7-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629131232.2487780-1-brian.cain@oss.qualcomm.com> References: <20260629131232.2487780-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: AW1haW4tMjYwNjI5MDEwOCBTYWx0ZWRfX0IQN+OygQ4yU NbgpNhutTU3moiVvCxiYdvE/AF5OMvVXxKRgyXCewcx5Fb7mF2U1FuLt9Ws1uVOjkxoYzsbesXm 8S3iAl26tpea8fhuHgFXwoxvu5f7er4= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDEwOCBTYWx0ZWRfX+L41z3qdyk5y 8DZYMcBgV4XdC/y6y0CMMRMWcfhschpfJaASIkfHKbux3irSgDCxVKQajjQkIUDz0tl6aCZtT+m Xe+l3EBJEhnE7nvh9xjGPVSxS6McnpZDEy6L12WrxiMKktqjVS8zYFsD0uHGqEHGO4CpYjLCsdg 9eu9zhug1yYsPNefmiZ0dkdGnnCtjyVPXkU2pI+i2fsMLneBf+TA32rifkOsDDTJNFxrMb7KGTl nx2kZmKhpjYyaMPVAu0w9HkM4FkD+Ofa9ZxN48ckSteGdwh0I4vMB0OE/H3mhyMvjEv0sy42dwt 9uG7rLPpuc/G8280Sq57DUHzL5Aw03Qb0Q28b3LjHk1fpBo1j5Q2MRYvPfI4sQMQnEMQ8j7dNbE NxJdyX9Y5VU9q+Zl+6Wjg2PW7td2qyBEmOBA3frgQozixGTpGaf1pcF9w4u/ccXU6KTTp86sXMp tVF3iE0Vpm+ymNVgtvw== X-Proofpoint-GUID: 5h5WG76v0IHGKPJm7EijAfhV9fUHOcWW X-Authority-Analysis: v=2.4 cv=cefiaHDM c=1 sm=1 tr=0 ts=6a426f4e cx=c_pps a=PfFC4Oe2JQzmKTvty2cRDw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=YMgV9FUhrdKAYTUUvYB2:22 a=EUspDBNiAAAA:8 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=14gtCLEoMj5qQ5-DTC4A:9 a=QEXdDO2ut3YA:10 a=6Ab_bkdmUrQuMsNx7PHu:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: 5h5WG76v0IHGKPJm7EijAfhV9fUHOcWW 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-29_03,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 impostorscore=0 lowpriorityscore=0 malwarescore=0 bulkscore=0 suspectscore=0 clxscore=1015 priorityscore=1501 adultscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290108 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782738797137158500 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 Thu Jul 2 10:18:31 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=1782738798; cv=none; d=zohomail.com; s=zohoarc; b=J37pKXoLCgzIukq5wLf9hcAxfy5MEDSTg6aHjn4QFh+aUXkrApdcGi1H7aGEvQb2vms9YP3lWvqtfdoJ6qoIfmIciRfG2/uPA2MLJqokzO62oN7RnEqnvDshKfSJGBmLJwJhZ5/e59fakiVBdPiMpzRyCYkvzSob6C9lXNrrKIY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782738798; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=LlV6xxkgjJQPCJRlzTTYAzSV9NmHj0sAMIGmehlrZhuaj4P5dqeCO3mJbPcgBbT7qsKzAZDZ4Fq3DPiXqjzAbj45OimVEveg7QD/41ZOSGfn+LvTUeHkzBe+SgQ4vrFJtiG9JPew3mJo3+7+JghJfC2O7VoYQNHFxwruGyMQE3Q= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 178273879886569.12273504672658; Mon, 29 Jun 2026 06:13:18 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1weBnB-0004KO-Dd; Mon, 29 Jun 2026 09:12: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 1weBn9-0004Jt-6B for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:12:51 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1weBn7-00039x-Mt for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:12:50 -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 65TAT4Il2618912 for ; Mon, 29 Jun 2026 13:12:49 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 4f3pdkrr33-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 13:12:48 +0000 (GMT) Received: by mail-dl1-f71.google.com with SMTP id a92af1059eb24-1384427c3efso10310675c88.0 for ; Mon, 29 Jun 2026 06:12: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 a92af1059eb24-139e78317f3sm28459106c88.9.2026.06.29.06.12.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Jun 2026 06:12:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:content-type:date:from :in-reply-to:message-id:mime-version:references:subject:to; s= qcppdkim1; bh=IkxVmrZuFWa1Fs3sFSDNQQouCUhLSalQWx3BbBytT1I=; b=RL mCZ1gJerq+VTeFKkwQ3EijdBBGouowWC5oXj3zzW7Rb5dZZE0OZj8WlOu5eYojmT L8jnDOL3CZvuTVn6AmLJ+5ja2JUsemAMN1PxrOXrTiWFU3wQuJKrmPWQ4VovTOZc i/nqPTSYCzZ3Vxpp69fNHby6NpbCrMCHNWm9mhHf4Zd/QOAyrZn/XMxeBznlS8ci r+0c8yRc22/O6XXPHHEXZ6peD1sIIm1COAlUukyN2ryuWeIKwEGZ976MWsO2+z7r RxqFKbxIkDJl9x5ZFSk+oWWFVoWHLH2ty5GLuqCiuAfCyNthaleTPh5KNce/cpv7 n+kdK6Tt8l5oj7TRI1Sw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782738768; x=1783343568; 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=kvpBG7GFa4NSYdes58RV20aTW5J02pjD5BhjFzw2FA/dqhbQ+2pl8yJyMvWBGhwQsU vSi1Xr88Ye7INRmmNhwIkFYr85wDlUzmbio7HMm6Mh/RhKR6I+qIT2O8Krm0W8G+fKb7 c74qMHK9PJNNYIpCY7Qi5GXKGGCKP6gay4eRxyCtnRND2yr2EJmWTq3eGLdRBMktaFE8 S0ilXdOJ29t6slNL84a3byCUbD7kospfd7CTASYnjJS7NhCZIpeXjKGC6ponsmOrHt7V UnqJrD9z+F7a8oHMqkWItp5ZLETEMDMLa6b69A3FEz7G0PWWPBIzyVzpRfGNFpgjBmBj Vmnw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782738768; x=1783343568; 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=lcMqEtJm6gsUVnI98paigJa9TTjnONVSlRXxDDuQUJvquDy+i9amv6VZBA/X/JmTvp 1g7A7XHVZoXQ8oySOWPEFSITaSOpJFxLZmHu9GiQZSC6IJ2f0Al7aMWRUot60uSbM7b/ CQ/+C3TRp8Sfxrpj+BA8WwpQdvQk1kAw0K3qqKRw6R7A+EQ9iy4wgf4ZABhjmuBZerHa cSGgHo6CkYHc/bxULE60zJg0w/Z3F49cbpDdx+WEKqjFb5GcuK/WFADEjSYWHTSKXIy1 YowSnVgWrVvxwHf+A/iEqlfs91PfguDwSU3TC2ig2q80BWefksGdHw32PWYJ/Dg8Us4/ UEQQ== X-Gm-Message-State: AOJu0YwMZwmw2Sryw+sK4CAtkH18hGfswmEqtMh3rEAJWH+8ywBZEqfS DLM0FScwLWIIqzCB4UlLTZOhyLfhG6p2BITQOCubJOIwt+k4Vd0jMHpxMGQ3+MBJwOxsKlb9ocJ Sv8PuGZOuYt2jrFcItG4VIshrZFSbGZWPhTLxWmBv/K9gCeewQMFV5I1avxF9XINkjw== X-Gm-Gg: AfdE7cle7fmxKUnk7Eiwm5WrKbUKsScKR3DKAHOUNZpb/L9g622OxvxMGys1fO4As0M ic+fm/5cSi83zTefJRkRP7qrZn2pWgrSMtPUek/UNZhjaN9c8UAUf7HWCps3lAYRyllSxpBhs3N tNS6E1z7HANzmsbOctR5A7d07Ayk2NirIt0/O52Es91KgD5t3ex4W1YrAmb5E1R4RGbFi2zoBzI tpD3HJPfw4dWNQwQXx1D/3snCPRewvU0sEK2c6gJNucrYclgQ5g9/sLJqU9vdfdGLGtHIg24xHX IL30ogAfvApsUsOROKIHujcxRhZMAKplvQZF8UW95HuYaBxbCdtiBWhA8oiHzioSyF3PiIsR9vc 9PUCX/rrtWyWHZEU/lulAjti2OlMNEQtMxIEGXi/+7HadTFtfahTPvSS5Hx4= X-Received: by 2002:a05:7022:21a:b0:139:f749:b077 with SMTP id a92af1059eb24-13b22731b49mr491933c88.43.1782738767878; Mon, 29 Jun 2026 06:12:47 -0700 (PDT) X-Received: by 2002:a05:7022:21a:b0:139:f749:b077 with SMTP id a92af1059eb24-13b22731b49mr491904c88.43.1782738767329; Mon, 29 Jun 2026 06:12:47 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com, peter.maydell@linaro.org Cc: brian.cain@oss.qualcomm.com, Brian Cain , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Taylor Simpson , Pierrick Bouvier Subject: [PULL v5 07/77] target/hexagon: Fix badva reference, delete CAUSE Date: Mon, 29 Jun 2026 06:11:22 -0700 Message-Id: <20260629131232.2487780-8-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629131232.2487780-1-brian.cain@oss.qualcomm.com> References: <20260629131232.2487780-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Authority-Analysis: v=2.4 cv=R8Uz39RX c=1 sm=1 tr=0 ts=6a426f50 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=rJkE3RaqiGZ5pbrm-msn:22 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=KKAkSRfTAAAA:8 a=pGLkceISAAAA:8 a=YHbvUooXmMNqKe3LDhEA:9 a=QEXdDO2ut3YA:10 a=Fk4IpSoW4aLDllm1B1p-:22 a=TjNXssC_j7lpFel5tvFf:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-GUID: PDwv9js50Fj5ht2fII95wKiKjP_EGS3x X-Proofpoint-ORIG-GUID: PDwv9js50Fj5ht2fII95wKiKjP_EGS3x X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDEwOCBTYWx0ZWRfX2/yUKUC7l6Ek 2FY1fde1j4gfRii5QK7W9kb/6RkT68+hzeGIGLYHwakG5KGQzrFFdjCzU6o/Iq6uLuCAxFKizx7 AHY4jiCqISAoCBRh8gm8tHPIaJ312n4TOmC1ZofhBsJEHY/Nhz0913KBTlN+mZkQB+1/WdVmasP tw5iDRZ2ZMZBB3Qbmed0phUbp4ZkauQz71ETu+GA86GFWRr4qJwDVuQLGZzQXqHF0qbdVIt/tjA L6GhoHHUGid+sKjbJiqT8pC4DhE0QXq3Owy7AC3FM01z1Ajw1jFS08KPUYhsT12ZEGs5zsOPchJ ryJNWsYakSwJ5C6dc9PUY3lO0mpdd48Iqeb0cAZUT0zmShYMuoKRD1lVEeB6Hms9c1UDACk714b dWEIxEzLJ2/jJKgkSI9Sw2e/ddZsoIv7BNm3mN5hjuA0wG3sfjDghtHNLmMa5YGanqkSfqNJd/a OZcHRbiArfV8YM8lcjQ== X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI5MDEwOCBTYWx0ZWRfXxg633evmNtnp 0lxXa7Mk5BGtdTN6M8Doq06sQp7HhtlNJjt1+b5vMHX9JQzTuZun028joFfx6sblYwY0ecLzpZ5 MT0G5So/vok0EzFQ4tPirjJl86qfCOA= 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-29_03,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 phishscore=0 clxscore=1015 lowpriorityscore=0 adultscore=0 priorityscore=1501 impostorscore=0 suspectscore=0 malwarescore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290108 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782738800502158501 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 Thu Jul 2 10:18:31 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=1782739202; cv=none; d=zohomail.com; s=zohoarc; b=cufUbv9D7Mgidls2aKPVM3UfvKDt4PbQOirIGSYM90XhOAf4lm0SXUpzK0PBu4QFguKyDVF+x3xZvqrsdLgXK/xEZaSIdMPST1/4SyfUvdUGluj/BAbwACJbT1wwCh+ba1AZ8U/IJU19OXPDDgJ0Q1AefihC6jTSIauZL80eccs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782739202; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=Pe+uBllEV9mPgN1m0i6M1dE+VKXYs0VaARXJS6HAUamHOTaDhVM8LXrfT3e7Wt31+YLPY6UefDny2lbByXRQvwpmrPUIBrYjYpAcicAy4MNwjNCQA/iBc9VTkITEZgAsY6nLqtNfHTdKiy66sH3Wd6AvmZp7qGK6slhuR6FP3vE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782739202878626.138020168512; Mon, 29 Jun 2026 06:20:02 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1weBnC-0004Kf-AC; Mon, 29 Jun 2026 09:12:54 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1weBnA-0004KF-St for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:12: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 1weBn9-0003AC-Fb for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:12:52 -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 65TB5H1x2728776 for ; Mon, 29 Jun 2026 13:12:50 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 4f3qha8eyx-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 13:12:50 +0000 (GMT) Received: by mail-dl1-f70.google.com with SMTP id a92af1059eb24-139ca26403fso1574983c88.1 for ; Mon, 29 Jun 2026 06:12: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 a92af1059eb24-139e78317f3sm28459106c88.9.2026.06.29.06.12.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Jun 2026 06:12: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= akHFVisJDbmBFFMLQN2z4af12XW5M1jZKu+CQ2LFdG0=; b=YuDi02AO+dwU8NI5 oU6127/6TWM90S2tU7ciDLtVop88HUCtOpfvzdSu8ydXk3DLmc6qnF4cFhnHWV2F nVH5nIPpel4Fw4+qeuTzJNuzcZv0nEaNiPDWf4Vydv83PzX5ca/JPYsfDxk9TYoQ pXmC5XYP4uxVJxvj5BsGZFZ7aAwR5M4WPd9NXMV5q2cOZZsEtoFfdLuprVYZ1ExH 1L/zAR4yQ2vBGmabrSBhz8tn8TCoQIsjHTKT4jFTFdKW5ixxK/SOQHFK8mR+BXq+ /pwlkLjDvKlnWn7dDJBcZBXSgZ0qESBxkxTJ98vjuCKpJzXub/TCjd0kVgO+CMPH g6/5vg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782738770; x=1783343570; 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=L31BITWxFqepq6fLgJrtVxT1A3ogkFe3VOd+ZwB3n2KvEmkQq2edaot9r3zWtjVFpa 5zqTRdIKKjmqEc00NASP1nG4nt4gmQvhb4jRSXRuMx9b2IoRJzJEnFTIQhwELYmv15UI OFDleFXRyo7o9ZoZzXxpKVJMJqN5zwvM9fQ0twHABqcP02B0hSXRy7+P0yqSz504n7FC M2367MJ9cFtZxxwdHGHA7U4EGsD+lk5zcF816QU54onKvPLk69zLCfDm0UD30/yc3YCa a7TzxQ9Tso7EncNujQcsG8FZSL3MHAjNHjqvsJOTjuCOOSmQGMUhHq3QorK41FIsN79j l8Fw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782738770; x=1783343570; 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=ARIfEztAVu/wPvwqgTvxQntbNdy1Bs2G9VLQnbinUYVkbV1n2o4xL3HRm1wLNN9c7H kYqpqBDZmEvFH0AHbkpI0aLTVgK59clrR6uY49ku6Dd1xUCBPRsT9kYX0RY76RVgVWJZ 6gh48m7XaHIWncdaAY4C+ajQDGScXMzGTBWrQaJU73REA//bTrMlwpAEUi03sjktr9GK Hx2sS7JWmjB2GCtQ391Lyal4isF7KTHT+SepQ0Jk81XS4uz7MTXDWOkSI+x+kb25y5rA TB0Dq2Q60C+ytzmidqMCwrbBoxobAinRawV/C3ljY/3RIh10qP0lz7TEPvsmlpLTpUUI XlSw== X-Gm-Message-State: AOJu0YxC1tk98Nx4g0IeqQ4OwX1qtrXx/HI2fsHgeP6p0Zi/1CvFgv1U JMXkjdoL3GFDIL9bR/nhl7fwgq1DuUAyTkR/ftVaQ3N5xvqXllx/gfBy+hTalKqIICehpv8jis1 j1hAwWnBtLb8ED6zUokKt+Ci0Oi4UV2MwePWoP3b8neqMXfOwlAG7/a1KdniiPVN3UQ== X-Gm-Gg: AfdE7clE6e39PVLD1l0KaY8d5j7Ylqa7nGpXoIyilGyKj/iqHuQ9nQdi4gh2KlLi7zj UKrDLlEZDzb7dNrqNqAiq/dA9/n4SVQ5V5f8YW9O850tLrXo9CcWFDreAwT3d1Ztc3gAwDqH7CC EDnVpH5W+7heQs3vk1piYy42bFbunBaAUlcPmzJjMkwUX/HgZGQAvNKy15qw0LE5DTshjq5/7Iv WSrAxmTT2SDHuib0JVZTXcgfrRXnEl39xghlY9nhEKQjBit8iZyx918439Dx/LzkMTAiphisCCh rPMKJwvwyhP0LL8O8QCrNfq24j9SPbOI7/XxcgT13ExrvstqJeN1GBbRwVWC2vxKAGFRzETIXgA 1exwFo4uM7H5Bee5m+jLirpxXQ19dDNpEn8SpIDVFRU7WZv2eSR08s/EOQ4A= X-Received: by 2002:a05:7023:b0c:b0:138:14dd:16ba with SMTP id a92af1059eb24-13b22714f85mr392133c88.38.1782738769675; Mon, 29 Jun 2026 06:12:49 -0700 (PDT) X-Received: by 2002:a05:7023:b0c:b0:138:14dd:16ba with SMTP id a92af1059eb24-13b22714f85mr392107c88.38.1782738769167; Mon, 29 Jun 2026 06:12:49 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com, peter.maydell@linaro.org Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v5 08/77] target/hexagon: Add missing A_CALL attr, hintjumpr to multi_cof Date: Mon, 29 Jun 2026 06:11:23 -0700 Message-Id: <20260629131232.2487780-9-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629131232.2487780-1-brian.cain@oss.qualcomm.com> References: <20260629131232.2487780-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: 5VKHqSD2d3UmQ-rvaGjv7AnZwiY3e192 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDEwOSBTYWx0ZWRfX8ZMSjAJaUb2t 7hAF8UMDM/kYAuWC48H7OmwUw5DWIBMU+zrV86Hghx4fonG9s1YMmN4fT7Vk6ujOq0haHqYSJSl BxPDC03r5ahGV9J5c5YrGCQU6vffFc2UTYAYCoRrcd1bnqmJpwwv2bAOZAE2rhU6ivw4iiVH7Pl D5zjZkmhFi9Vjk9T/LoZr0pbPueeScFHd73ZDuIQWGJheI6og4s1MpxvFT6G9cCmURrzYsyJsSN u6H8Fr8sA7JscA+7Qyjfg3paAw3e8P7ZitDTYkFuq+cSyfpx/7YaIJf3QYnRmiKsoO6L50TEXod ivaJA89XLWfSMxoN9sY9cOlqS7iAUSUsi3QOf+NO4bVKzloMoD3RTouvjnKFAr13ORgiNrFyxYF C60jZWUUo1bhSXUm0pi8WlSq7weXkvUi7tsz1vs2zm3PUZNTHOIp9PHwVEedt8g2UUB4WXOhQFz D+Pd1GAguwvtWiqcLEw== X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI5MDEwOSBTYWx0ZWRfXw14jG73kAqYc 9p1ozxrbhg6gYgSngUIcGd/pTEC1TZjd9Oj9/Yok69KFdRBfJDo5xLhWe1+ANj4Ix9BwM5vDniQ AIDHBd38mWclYAl7H9k9+cifs3uvpY0= X-Authority-Analysis: v=2.4 cv=O9UJeh9W c=1 sm=1 tr=0 ts=6a426f52 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=3WHJM1ZQz_JShphwDgj5:22 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=pGLkceISAAAA:8 a=ZLKCIdW5I75hk_SXmpcA:9 a=QEXdDO2ut3YA:10 a=Kq8ClHjjuc5pcCNDwlU0:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: 5VKHqSD2d3UmQ-rvaGjv7AnZwiY3e192 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-29_03,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 bulkscore=0 adultscore=0 impostorscore=0 lowpriorityscore=0 phishscore=0 malwarescore=0 priorityscore=1501 clxscore=1015 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290109 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782739203692158500 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 Thu Jul 2 10:18:31 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=1782738911; cv=none; d=zohomail.com; s=zohoarc; b=XU5E9/FihwhBWdAEqwdpNJLwD+tBLz7MRsTrYWSYQ78vi5RsAhVzSIzXlgEEQ1ftmTtQKyyxtN25yeqYVUqCcizOt0aRAaqbgGMTOu9iZMh5YtjHCpUge6jFSZDbiLQS82NsSkyWPyGplAiagK/xBGsy0m2b8JFi1L6HGOGOKXA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782738911; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=ASoPM1GKV0qpqSLAkrgvo5QqvwiFpxIxiLl42A9L7uuH4TKg4PiZtkJSsRRuGz16x1VoYAz1vSEkpxTfgirJloR0IMOU4wCdN57EDCXA671YdMC8s3V43g9STIseYYnJx2uYKaq6UzIP/Co3Vomr/Ug3ZoOf+71G9ltDXvJK01M= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782738911712723.5847570587841; Mon, 29 Jun 2026 06:15:11 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1weBnF-0004Lv-OI; Mon, 29 Jun 2026 09:12: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 1weBnD-0004L7-Fa for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:12: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 1weBnB-0003AT-HA for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:12:55 -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 65TATKdT2656133 for ; Mon, 29 Jun 2026 13:12:52 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 4f3np7gxqs-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 13:12:52 +0000 (GMT) Received: by mail-dl1-f71.google.com with SMTP id a92af1059eb24-139871a52c2so4634529c88.1 for ; Mon, 29 Jun 2026 06:12: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 a92af1059eb24-139e78317f3sm28459106c88.9.2026.06.29.06.12.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Jun 2026 06:12: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= 3PJq1TG0I8TU78Tf0jGrc0eZLiVvKT6OxHA758wVFTs=; b=aeQI7omgk4psQU1v dklo1ZY8aTrlQ1yNluyHu1iUG1BwOvRDFdBgxUcPX0lUkTO+HFRo4V0i+fZVprGz KFE2vtakLYTBunxbnCFsSfZbu5GJivAgpIyuCu9YtfOG/R/Mr9clOSvI9SfbHQEz 1YPe4Tvq+V+l2w8Dujtei9LAQQGqVtsq0widppa8BN1QMFAb+oNEWVFSiRdsI0eV kaWlKGHY6McBVfXVs0qSbhB6qszH559DFi7K4W5Ykc1HOzLhNvPQMfozVY+dmPfW YeiDW9c7mY0t3hNte2KbxB3vraXyPDTvSjhp9mv9nE8YxlK9+gclwwQnCyIwUFZK R/RGLA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782738772; x=1783343572; 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=Hs/sSJq/EqUPASyeUA59GB2HNYLS9pD69sgDF5mGrr101qVA5XLhTH+b1EQF0jKeok dtm6/Zs2h/DvdZMP2d9nVwOFt9TInezUhpXynjnVFMJJk278LbscB3DlmEu/p1Nc2XM5 n9SOC+XxkrsPrADC95r9Bhwga8sz1boFAoOukxUUyp5bwnMeic0YtvsDQyxQ0bNsMDsV G253rBriETIuNBXCnLlPHKza07PmsCM3vwhLturwH2jzl9mAyTHTfJjGizf5ANCB2LkN p41GNePBp8XORLol8GXD+cfz1E4pf6eD+QJttHlReuYWr8QJ6Jpa2PQwbkSi3B5o4bfx 7KbQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782738772; x=1783343572; 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=fvz8sl9Y+67TpsE09xK1ZbwPJBd9BdOYUBWLO7/JcWt4RGTt04vGLqifvxl0RUPbEx 3FGxUiReLpiq38SA5V+CP8nzzo6ZovEYdBvIA8pVdf57pC2grqXvfWod4oeNF0J8lGHz g++yfGWvg03GkkoMd7PC8IKCUCA/3p40MZLltx0pPpITyhgQkrcRyMYQT7SoIKI1x1Am gWV8yJLj8ZnK9IZPxkM0Fo5m6WyNyDURgzSR00LQVNTY9dWIIvklOGhtO4RMFSGcSig/ 7TpwSYTUozAEsw87ygkFWZO+znlsbjw7OsVDrSWcWrYlV/+Bofj0ipGU3bVxLPBIammn RKGQ== X-Gm-Message-State: AOJu0YwpJ7J8IzfSfeFnGcV6pRmon0v6zqJnIkVF/vayQG560GCz0nim 3uWkfsIVHA8eAeyOc944yYoLifkqpZOYIRgYQXT8mADG18pxDBTWYH/Rf8BE5ws3XMz2cSL4QBP Klfku7MrTfDCASyLHtNhpi4pa5yB8Z5MI49jBnaH2tpjc/I2DtBhmAwOYl4ssl9RpZQ== X-Gm-Gg: AfdE7cmmbqIPB79B1EyFq8MRdzv7dnKaFfwprnzldADBFp5LdgvhgZNDyJPYSKy+4AF 5Rj1EvD8kqbZL8lu5KYEnEwS0mJ+/dm5jkziHwQtjAv8FOTfj6O/bQol+chWoG7zY+oIlA8BTjP hwSiiDzeKLENiCEFVTt4X1KmEo8ztJhLmWkRcSdubh7v470PTKwwnlGB9KHfl0YWD4Zr3qXzj/m NeKS2yqlO/EQLGtVcvrBd4JVxVS6OoEOGLgiNtQKHe3dgWkIsQ27Ogsz/czDwSll94n2y7WGnqs e086+xwqc98Fk5mkCzRfkLkrsgNs3jYNagmPkOAkGurD0sX/bIA3YzC9vxtQk8GHT+vihqyGVqd zDm6Mqn0F1VQC0AtJ40jdrDCHbozZ6MpiN21Bfs73YthsJ7qW5MR/Ak4LXc0= X-Received: by 2002:a05:7022:48:b0:139:ed5d:5c9f with SMTP id a92af1059eb24-139ed5d5d5dmr6287028c88.40.1782738771460; Mon, 29 Jun 2026 06:12:51 -0700 (PDT) X-Received: by 2002:a05:7022:48:b0:139:ed5d:5c9f with SMTP id a92af1059eb24-139ed5d5d5dmr6287000c88.40.1782738770723; Mon, 29 Jun 2026 06:12:50 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com, peter.maydell@linaro.org Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v5 09/77] target/hexagon: Handle system/guest registers in gen_analyze_funcs.py and hex_common.py Date: Mon, 29 Jun 2026 06:11:24 -0700 Message-Id: <20260629131232.2487780-10-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629131232.2487780-1-brian.cain@oss.qualcomm.com> References: <20260629131232.2487780-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: AW1haW4tMjYwNjI5MDEwOSBTYWx0ZWRfX84DlwPB9pzU+ GRQ9fCOc+LXndEbE4uD3Tcc5d7xoP92bKVdQ3OD8zThNxYIzKr6lB06c/gKqt5fdDQHRMcZSTgx rA0PVFs6jDr+sPZBokBlUr4X4qSKz7YYCiSRH7mlWTup+vIlNzN4OybcV73azVo0lMwd0tqgV5G Wr+tWG6zEj4MBVmnjv7H7NNfDFvBOHNA05B22dpM8S0r4j8TCEYqrBpD/+bq/VeEWE0euCwnypc GNkJFeoyST1100Y9NiVVZKcyDv9eavLBDNNuvUrMLZZAfNRRWIOKcJqkMz/hlmXQVH/KO9Te3TB IfbLyASxhLPojQYdPHiXEPCTCYO25ZNickTyzHHxvzfdiMwNmn5EH5tqAc5Map5UcDie7zRlp7I vjtFg62gAD4oXEPguRIToxhypFs08wB+lM8/YSxZGvVyWJOaDsc+igCe2+nl98nJjFZWrBMuu8p 5HwLwIEpDmx6r8XLpzA== X-Proofpoint-GUID: rpxZYRsU9Qv1_RS5HhpHOp7Uco9ATNm4 X-Proofpoint-ORIG-GUID: rpxZYRsU9Qv1_RS5HhpHOp7Uco9ATNm4 X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI5MDEwOSBTYWx0ZWRfX6SjXlMly7hjH X9KhqGLEsBunlme+ybkCvaRmFR2aHgK6dRFNc4y/arrJib1pT8zmZGrpXXZtKBGA0Y8udiltEoi HY/CD666NAWOepkzDMyL5LfnGM4zNu4= X-Authority-Analysis: v=2.4 cv=OcWoyBTY c=1 sm=1 tr=0 ts=6a426f54 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=_glEPmIy2e8OvE2BGh3C:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=-IRm0M9p1sl727KxlF4A:9 a=QEXdDO2ut3YA:10 a=Fk4IpSoW4aLDllm1B1p-: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-29_03,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 adultscore=0 spamscore=0 clxscore=1015 phishscore=0 bulkscore=0 suspectscore=0 impostorscore=0 malwarescore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290109 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782738913367158500 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 Thu Jul 2 10:18:31 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=1782738876; cv=none; d=zohomail.com; s=zohoarc; b=Ypt+3Rsf/5mxhZEnL2/f2J/zyhjoaNbvTTe/vdBFGLUAjLvKA4PFErkSUTskHQSp3C+w7T3CTuEl5Mh5jOfq3Y9CI2wZK0h5CwFJaopCdI7SjxJV8CIoMXTDLZoXqAfkG1mnxe02qaIANuJyK16wSS4mh+jYWET3Z4MZzlDs6lc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782738876; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=BwWOyOECK91nYDav2M2nyhRbRPhxSIeZWe1/C5hcBuGpvfhdUxr+xaVvliVoqwSFwB8E4Fc91LxfCiiz5EZiZKPBsniN84fxJeh43fUwvzELl+WJTGoauwDywbAu3U3GJWPoavtfH6Q38TtlNpa/ztdRbi3q4PW3JuFfOKMA0ik= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782738876605759.3174346136209; Mon, 29 Jun 2026 06:14:36 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1weBnF-0004Lm-6y; Mon, 29 Jun 2026 09:12: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 1weBnE-0004LK-4i for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:12: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 1weBnC-0003AY-KC for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:12:55 -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 65TAT58V2627904 for ; Mon, 29 Jun 2026 13:12:53 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 4f3nbgs17m-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 13:12:53 +0000 (GMT) Received: by mail-dl1-f70.google.com with SMTP id a92af1059eb24-139f2c46ef1so2030917c88.0 for ; Mon, 29 Jun 2026 06:12: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 a92af1059eb24-139e78317f3sm28459106c88.9.2026.06.29.06.12.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Jun 2026 06:12: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= lcxOkFKNgQXZO0voxWGA9hyffwnAo/o2WwcbX7ewzeA=; b=CZGgGjH7gOobTDbL OIgNotmIRniT0q9c/vHNLDlbfgtbdJf0X1bA5AKPsHVn5ulrq8len78N2chAj53G h9nxE+eWBWUyj7EaMHBFkFz/ONdapCt5kPGQWUBNJLQq12KFqHj8l/E+wyh6ljFD ZhEHVYsbG2US8YaIFKc8TCMTw/QusZJLAHFPxfgB/B7aRRkz6v631JaS7mM4nlvv SYul7BuCzEjA5fGv95Uxa5KiZHRiXJtavJucmhS9VRTAE5cOinU/AOi/H+FvrRhm 7Pj6vMsPZJGQuo/7jqmqOjyWWsUHkBRQafjAxb+9nK7/xFw87l3jzlDnaxDcXQNK N6YtKw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782738773; x=1783343573; 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=OpeHWME94nKMBrvYnX67a38VrRh0BNckv/L+U3zNxvdij8nQZ/M1cblfPEg+b4TzMC Fxcn3M2FR/yy6XFCahFZBnfdJeLOridGJiha6CZlDTZuhcEHWAPRAI7ezv7EuHJm6/2X D3Bmbw/rZA/gRHXw2mXIAGIOOB8Rs/2nTl340W3VErIPzqsoT8HQE78muWr8UnKGiqQe TZq5FfLXVMYAafkZQP+H27KNYrqh1C1k8IjMFfG96qjYFOfnsy42C3NxcQwj3gp98hRo sI2i1Zggt1Zm7sVTDkgrP48xyIH3XUMJkxo9LFPpEK4MkEI4ntWTame67Ba1fTUy2IEi c3eA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782738773; x=1783343573; 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=lsKihnvBMQgY/32igqryd9qvJAxQiCpTBW1lKsfakIW9mIkGMdBm8kRvPuB89DmpPK m2jQL15uJGlVRaFm/U2Cep1abrJa4EO0qbUqHcffqY9eB2DZl4iboxkG/g6mYGzvhQJL ybEqbN0E7D2hUS1BWIcN3oIrHWNcmledTH8bn5vNpahK8FpOLoE3XWgaKsODyf0o6DOl XYId9FFAis3zyv3/3SWJJqYmvdLjit/TgHeJr3qfT/F3slnn4SRpYK8tjeut2mYkaeTz rpyB3BiV8OXBd8609DfbHGJfjaXOQyQc2lB7piPF/8oB4IDVSfta6v5qC3S2Du31yxlM TX7w== X-Gm-Message-State: AOJu0YzxktSVdoTe7/jGSn0PbJh2IlCgNk+3R35QC0aSqTJrmZz98vQj ZIfiKkadTK5Mgtp4wWO3aJY+SWXE/rO+BmFMNk5t8Vnca+lRWEcVdnz4prhs4KbkPGOxMOV6emv /7oSfMQTRuW1INZerVLSTsQjPw4+EzikVZphdD1rc7mj73uvJkizkL/JBwvKayq2aKw== X-Gm-Gg: AfdE7cm85O2RcT6ZxCBu4gr0d5ZZvpcAbDgRxEW7iVnSjECjNeX2G4Jjh2I/NbOfvwT bVHEtxumiXg/3Eec1aRS4FaNinv11iaSIKserO4vaBeMt0xkUHOfhFyqYxmW+XM1evBBGOGe3/R BtHR8MT9U7yE9ozy1hoS2Mgm5SP1mZWY6EkD5B9jKKqBTaeRD1mgDKswMEKbXyK89h+4lZ+DSDy VVGns6400mRvntMwQDBTZebQuW4qclLvMn6k8Ix53j2WfWsxBO0n4DsE9W3kkG6kLJw0P/oP7PD TYNsC0PyQU5QuTAdT7LOrHrjKVujmY4+Rx+8JPyvQE03V7VFaIsltQ1wI0/glvgJkEgBq0bgpPC VZnoFIU2OO65/Utf19DXV+Iik6/SUm1STFtpXT8hyYsTcgZ7HJOwXIeCaVEA= X-Received: by 2002:a05:7022:788:b0:134:df7f:a5cf with SMTP id a92af1059eb24-139dbbaf082mr12365271c88.29.1782738772646; Mon, 29 Jun 2026 06:12:52 -0700 (PDT) X-Received: by 2002:a05:7022:788:b0:134:df7f:a5cf with SMTP id a92af1059eb24-139dbbaf082mr12365248c88.29.1782738772137; Mon, 29 Jun 2026 06:12:52 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com, peter.maydell@linaro.org Cc: brian.cain@oss.qualcomm.com, Taylor Simpson , Pierrick Bouvier Subject: [PULL v5 10/77] target/hexagon: Suppress unused-variable warnings for sysemu source regs Date: Mon, 29 Jun 2026 06:11:25 -0700 Message-Id: <20260629131232.2487780-11-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629131232.2487780-1-brian.cain@oss.qualcomm.com> References: <20260629131232.2487780-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: 7oLHrIgqpidXgHSHOd7PvuWk74QJaxUu X-Authority-Analysis: v=2.4 cv=Z4Hc2nRA c=1 sm=1 tr=0 ts=6a426f55 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=gowsoOTTUOVcmtlkKump:22 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=dvhcR3axvtdXbCCTPW8A:9 a=QEXdDO2ut3YA:10 a=Kq8ClHjjuc5pcCNDwlU0:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI5MDEwOSBTYWx0ZWRfX4JR0lXJXpCE4 ohGOJIMTx2Otu/wHWDq2pc6hQv7OMhBgiu1j6d22uM5gObQVIX3f0TfHGxykT+vCVOcbfCo+Cov h3RC4RZxmMGc+tzAH7LxD0+6rAkafyE= X-Proofpoint-GUID: 7oLHrIgqpidXgHSHOd7PvuWk74QJaxUu X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDEwOSBTYWx0ZWRfXxlTL3dvorsbk VJyOfFi3szU0DCpZTeY1EYTRJz1mCB4hz+scbhXLkfvYsVtArHTjjpjGgAS2eHvLI6BHDUgbHRE faU/7jA8gk5bWaa3J+NvW+SlpcV8VuPRAAZSnoKXxO/WzJyPgfg6zMkHCJtzqRDvKUfTiL9mxks N6+Yb3SVM4RmtkdOq45+ZVl/xjPPEmTZfFQ6Q5RMzihzS1ekMpqxv6bMWz09UF3cZvA3D0tIrv5 pgckxJ8z18rTEHM/nje+Qii+r5de8dmJmbRJ1pEjFSOrhCNvtQterUvjtUgxY7HjrehqJLuTTtt j/ijrX5eCpeGrhfpnf3cj0qwQ4TIRogBoe5aIeVbTqi41a6ILCGB7//YoRRDrGEDNXuHuRjwvFI WobmdLaUB63c76rhbGK1PvMa/mor+MN6nYYwPByMT4IWZnXPK/pwSdoafgOWd7sork+IOHgxfoL S/JBRtcWOnHv3BhDvDw== 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-29_03,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 suspectscore=0 lowpriorityscore=0 priorityscore=1501 bulkscore=0 spamscore=0 impostorscore=0 phishscore=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-2606290109 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782738877173158500 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 Thu Jul 2 10:18:31 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=1782738840; cv=none; d=zohomail.com; s=zohoarc; b=n12tdJOk1Ca4meG5FNiyBZLZu5IlrsxiyWumppxRJxoQlnq/vDfg8OPRbBiVZDAcXA9Ev5keYUEc0qX2BY24im9a8TvBPexyUWDgG7dl/+fEEPwPdtThnKqXRUgwjM8AmVSAK6GiAdaSE466e9kzhu9V90QxMmmTrCNjbCeGQxM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782738840; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=jrzB1LlFkTQXz+0GIBAsB6pUmyFUXqX/sTJqfYH/YjJOFBvnWPoosY0CEzoBt1A5Bx/rtd0o8oIXegKxWW4xueRht40Syyt7BcyEX47I1oOhbiEJud/xw/shsI0FtRjjB7NPI0UB+7arbXiVhH7+d4JmG0A/erhQxBy6ji3W0sg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782738840405949.921078288449; Mon, 29 Jun 2026 06:14:00 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1weBnH-0004Ne-6X; Mon, 29 Jun 2026 09:12:59 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1weBnG-0004Ly-BN for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:12: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 1weBnE-0003An-OA for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:12:58 -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 65TATeg52648345 for ; Mon, 29 Jun 2026 13:12:56 GMT Received: from mail-dl1-f69.google.com (mail-dl1-f69.google.com [74.125.82.69]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f3kyjhe3m-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 13:12:55 +0000 (GMT) Received: by mail-dl1-f69.google.com with SMTP id a92af1059eb24-1383723dfddso5333731c88.0 for ; Mon, 29 Jun 2026 06:12:55 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-139e78317f3sm28459106c88.9.2026.06.29.06.12.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Jun 2026 06:12: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= +b8voobbRHB+fEzV3OFcGYw0x0PvxvjT9mR8Wf/yF+Q=; b=eOY0Ow902TwBFr9u 8A9d2uSgAaRxZ6s9GiXz7AiYrXx12xJ/9FSnaZmOAmXbMHTs6HmR5Tzwsl16jtBw 20WI7IulnyRezL60KeGIcuHMMmPUfe3fxrOX2dwHhtPCznVnt/1oqGslNyHQODlw IM/2iJpifAQ7sOOjYHKweL/89rObx2iV4CVPIVzjAu02CVbJrr69cM7G+nfZohHK UJS2Rh5ITCT5Wa6pehTZBreE6cssp0dJ4qIdaq5nUS9Y0o4/wavreoJBAX9cfkis byeBxgcDNwoo1/IFBvPt5WoYxdr9DP74xofn5yF77rDk1zvq1VEgyZOogvl0VsWY HOdwxQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782738775; x=1783343575; 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=NW9NhoiJ7/e0Y7WK0YIpqYC9BKdqDJwOUDzgo/+A8r4sgYt91a03hQCtRC+rHbgibI HN4s4ET6krxxvKhZ/v+lIvXbRgXGi8tG34gCbOlN/9ccW635A3xirpWB1VcYMDlSdmp8 +TfKch+6RhuS/LmqhuOuF1ucAOpOEASZz6YWyG4kgHgFJuweF7pZChCL6Dd8KnpIs05y egQ+3J7gNcU7pT9/0ucB1BzU5+TzZkA9jh2Iu5mbeIiUFvsKE2qnPfggP4DBmyNCXNxC GF6hkIJNXA0/mE6YbJZwIsQdkzJ86XrSTo5i1OpjThqQeuuTcgvluk8+oaMGJ8cVu90R rThg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782738775; x=1783343575; 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=CR3pRMXfbyZRtjT72TirpRKfNQwf8NYVvmwifFOVWDOKuJsxtST5wCrwcbmsU+ymy+ vSB31M4uQjxke2oorLDQmdun7OI/oGUoNXolkQHy5JnwB4MLmxTR0gYUes90us5T5i0i bmYE6i6Bh2pS6umUAuO5jocaJbkFDUckxn7GjEt+W+EB+zYhRTtl6xWebu9sIreZAhT3 k0+GcpEU/37eubeTWknoGRg75zr3OTw6+RxWRArVlAygvSsh74nvGoNIR0PpRe947Ba6 siOAFrRFRKOO5WE4t2h2AbvSAf6TE5saXsPq+zAzR7pb6KtpDh3e1bP/UBksNmDWWSlA bG9w== X-Gm-Message-State: AOJu0YzJoJbqa7yD4zaJPFbDXjV0OiBek0Y10AQue7zHRY3KV8Hf6/i5 GbygqCj6NlrKFhuXHZQsBHl7dBBH1e112N4qiHCs28PoHcdTZm+cFT5oG2fmxq14d02Q2TtD06N GZbZkrIKSkIhMZzaYH/E9nsm9LsrQkBhHeH9/kOBQqbNzM8ZLsraEj+JQyQZ5dD1GiQ== X-Gm-Gg: AfdE7ckJqL1JnvkxECc9mOrWLw3Oxz8Yf87pEhT1o1NJFack5eHQNBuUdOBQlo5fjqc 9PDQ6ma6GMrVZikEwP7PN9lR9tLu3QYZs0ll9vpESUTqx9DrlOrwxL+lmlPKXpMZz0HlJBqn2/4 8JHxVn+NHQXwk6V7nrSNzYh3foiKgMMfkNRNcAmWGke7Hz0F0huzl7eLhjD9yicOKh5rjvrEYsZ 7SEIZQlz70ENNCb+//kiYAUIuQr+aSJ3CWFqQoMscaxkNVpJ1Im82bhOxgzDV3kc87e50XoFPO7 r/Uhj01pXnZhMsGY847qWdWSIpn50RbPtkEce2sH4BDD0x2MZBopsd4hNP628gyYTuUajnNnnRW 3HtfWdGTKsDs2+7JJ8n8GagcgnD/rPnmwzU/xU/P6Pg1jWSZsz9V8fwCt5hI= X-Received: by 2002:a05:7022:788:b0:136:c443:80e5 with SMTP id a92af1059eb24-139db9f6888mr13060881c88.6.1782738774662; Mon, 29 Jun 2026 06:12:54 -0700 (PDT) X-Received: by 2002:a05:7022:788:b0:136:c443:80e5 with SMTP id a92af1059eb24-139db9f6888mr13060858c88.6.1782738774135; Mon, 29 Jun 2026 06:12:54 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com, peter.maydell@linaro.org Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier , Alessandro Di Federico , Anton Johansson Subject: [PULL v5 11/77] target/hexagon: Switch to tag_ignore(), generate via get_{user, sys}_tags() Date: Mon, 29 Jun 2026 06:11:26 -0700 Message-Id: <20260629131232.2487780-12-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629131232.2487780-1-brian.cain@oss.qualcomm.com> References: <20260629131232.2487780-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: lA35tUISwR2XGTXMNdW49iJ-aCuqr9V7 X-Proofpoint-ORIG-GUID: lA35tUISwR2XGTXMNdW49iJ-aCuqr9V7 X-Authority-Analysis: v=2.4 cv=Ftk1OWrq c=1 sm=1 tr=0 ts=6a426f57 cx=c_pps a=kVLUcbK0zfr7ocalXnG1qA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=orAq0Iv1PZLbcfkgE-4A:9 a=QEXdDO2ut3YA:10 a=O8hF6Hzn-FEA:10 a=vr4QvYf-bLy2KjpDp97w:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI5MDEwOCBTYWx0ZWRfXxr+yDZXqZ3qq ohlod0NoTRaI3eN8uiN7oBpJNcXzd1nPcxBX9uqb6qPt2OsePGypBbkUGULEaDqajGi6+YAeE8i cdAUKRxiNoqDCR6bBmLPMCg57JiOKRI= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDEwOCBTYWx0ZWRfXxmorqNRH1bo1 3ZjsBQXX3ffETSZ4oSM9HNs/h2WIO1kTHA05NEILl8qvHtYLQwhZ1w1tT0FRK5NowSU1OVPt733 zSg9wH/LnQ+u0gTuORtLdmb5A8uMT2V1XzUeqKBOMPXUduvXeD69dBxWR/XqXgA42uPKT9BvpvE yQv713TDn4EuvDin23PP8J5jTW8U2cfbkX50SWtothaC1NgIOwVHPMp4pkSiySPOqiiDz4AMtls daIPCDmAHjYl6It2E9f3Kaoqe/YlHWkLvS/5JCpbDACVpuj4H1iY2PnPvDqr8IMO8D3ueL9Hz0Y bNIFDNGm6A+aorBZa04qGLeoS6mOaiusSDsxHDmRWcGM+w8YfD64PoDj92F8qZky8dtAK04fBU8 vzS+Lwlz0nRgNIaOrr5C+InDRAQxJBjxE1BI3KsTI4LXUrba5PlpUPjqnkbDeywykIiDcXw8uj3 Rdq281DbHZlOw+TwH2A== 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-29_03,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 lowpriorityscore=0 adultscore=0 suspectscore=0 phishscore=0 priorityscore=1501 malwarescore=0 spamscore=0 clxscore=1015 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290108 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782738840890158500 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 Thu Jul 2 10:18:31 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=1782738916; cv=none; d=zohomail.com; s=zohoarc; b=P4prleKgLUS4uyNbP3O/WYIfnIOoBId0fV5pTF4EJVRrZqHer/KoxxN92QiSRtymBCywJkQ3KPhU65b4jvQxSB006GzTGL54snz2QJnuLTyy1WjcO+WaUDjOeMYDa+4vtvRQZArxviaZ2oFaeTj4vGQFRZIdBhKZE0fSHI+JksE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782738916; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=WPqYisD4vN8e/XwlMwDhJ9Ake0XdqGStKhSlwTas9J4nP/xJKixV17pu+vKGEqFScrYWJzOnfLBsVPwh5n5DHpXvvGuG6KBdJK+h+Ds7h5d0E3GAguavXGOGwIoN1b+atfVVYIvQm9icKiEM3iJ0NT6e+F+d7fBKHIjodYpfhr4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782738916961376.7828769277586; Mon, 29 Jun 2026 06:15:16 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1weBnJ-0004PL-LF; Mon, 29 Jun 2026 09:13: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 1weBnI-0004OE-Dy for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:13: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 1weBnG-0003Av-Ca for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:13: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 65TB5GQ32728717 for ; Mon, 29 Jun 2026 13:12:57 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 4f3qha8f08-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 13:12:57 +0000 (GMT) Received: by mail-dl1-f70.google.com with SMTP id a92af1059eb24-139b70ca7e5so6897757c88.1 for ; Mon, 29 Jun 2026 06:12: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 a92af1059eb24-139e78317f3sm28459106c88.9.2026.06.29.06.12.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Jun 2026 06:12:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= U0YIrWOgJadDyhJIcIFlA8Ek4kYkhreGdWe9fXSI7qc=; b=O4MW7SzlYGBIEJrR SFu8foP1StgWfzt5n+RBVM5ib5/TJuVfgkYTK4qwtQGtm9YR/FBU2P4F+ChOMEJ6 pn+xIRDoFn6EZEOANRivSuVPlY8fIGf9CNK/Z6RL/t+ngqfl+7FjThB82bhY1LO3 q2emQO9uc4MnHQ/IgzUfb/faSfNLkLxGBvEwQdtNdNg1+KZBPc8HWczNovi9HNnU J69K2GQ7iosUqdw0jj9i4UXMNbyPeMKT56lsRJyIHlpUlKmAI2KZ8IVr5Y7oSrO1 11eJNFl/aLAJ/79qtaBSh4umgCOMnjlq9bTGCiR1q4ebguYdmyvIwKwZxJ45J4cP yCBMvg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782738776; x=1783343576; 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=JYOjO8jP+TCZgbosNJzNgEoQ7XBWbl6AFb2552+CZNyL8w9Mc+S27pF82taCUwVJLg 9c8Gyh/D873QRkUxq78jC8ySE4a6Dd5qGc6SbP8foulmLyWL2bVTS7zgl6yYHOaoy5BZ o72v3NUPzzXJKOM+g4bm5ERdP6YwzhwvN7qBbt9J4+NTWrIGDGOAxbnN5MbLWvOtEFmX sxdNTDDfHsSo7y5qmuAqLYGY8nA5sxh3Mb9Cm8r3+TzEoyMZMbdC3roC1vyTQfAXCqHi 8Da4ebCtctWaP4KEI9XzkDKbMGufyYMtYbZeUSBBZZuS0Ks5HsbatUAPOREMgNLHtsgq My6A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782738776; x=1783343576; 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=fWEAIMWSn1d7qowvob1lZHMMqTA9bH/Pt7d3SeaxI92K+Nr4p3GhT2DYYfZvr+CuD4 64DxmOVgXTsR1gimUmACkgUEsJ8bBq/52D9tJa8Q3CJ5hQr8ksYr5Vdm6bA/HcVuJtjq Ps3V/ogv2ABY5+bZfhCGIH/l8qWiLHqEy478mIPyeXIbhMrGw3Iu6XYuiSHrL4NBHEWM poFypwZ3nj5lpef5NgGvjSFmwIX1jgcCPWD1UXo6nsZmwswdqF+LJMZdncWpTuYTinXf fta94ON4Yh9tbB1omfFHklJuZG98l0EcYeEsOVOMSakdUwwuE6ENmFnJosopldILav4S qBFQ== X-Gm-Message-State: AOJu0Yy7aXqr1ObpKKCnhM+YUjy23TOGFaLpRi5RExqtWMNsSAKQ/q2X XpJ3A+Zq5d+Hu1KXfad8V/h8U9A1IHlE7tNHsfEQH5OhLoyXAx8b+AXnnXy8yEMideZfRKBhbyD LHtf78UY5hfKNp8wKV7Rzrvq3JNIZ3mUGV0tORyKDIZvvnAIEbN8oqGVqhalBZioqew== X-Gm-Gg: AfdE7ckXTPAtXkDdQfUjBKbLW9YgOBBxYsiAlkfvFz9+A6rS7n9BAQd67DP7d3YnTM+ YkdnkEt1WS6zfIteJzfhCiz3vbk83r/F1bKgiKgClhHNUL2Y491vj7hXMN4DaoQ2DYvX/0jfHPh kxHepYJ1/D1a2UzQ+mrb3cAD7m6T1iwWRkCw7OzmmVLZOFqiPTmf+7yuZOKa7bXq2ogFPvOONBN olBt/PEUXb+SSM7B0BoKMkdESJaGgzpP5mPKOxoWVsF9T19AH8NmhJ6F7H06ZIJEsW2WdCVvcLs ZntTpGe/U+JnTbsRvFzMkp2qcBlFHHnluywL2CFSLSuvdiRU4oNiedmSL1/jydJCJYRinPYGuWH 86rL5HhUsUhTg28vLjwSYArGwmOf28IyZY3GWCoxz/IrsOmdluT5r9Qp0Lfw= X-Received: by 2002:a05:7022:1b09:b0:139:cecc:7726 with SMTP id a92af1059eb24-139dbaa72b9mr12965762c88.20.1782738776401; Mon, 29 Jun 2026 06:12:56 -0700 (PDT) X-Received: by 2002:a05:7022:1b09:b0:139:cecc:7726 with SMTP id a92af1059eb24-139dbaa72b9mr12965738c88.20.1782738775738; Mon, 29 Jun 2026 06:12:55 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com, peter.maydell@linaro.org Cc: brian.cain@oss.qualcomm.com, Taylor Simpson , Pierrick Bouvier , Laurent Vivier , Helge Deller Subject: [PULL v5 12/77] target/hexagon: Add privilege check, use tag_ignore() Date: Mon, 29 Jun 2026 06:11:27 -0700 Message-Id: <20260629131232.2487780-13-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629131232.2487780-1-brian.cain@oss.qualcomm.com> References: <20260629131232.2487780-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: tMk8cRX2hvD3fxn5fr7ONqWsJkl3dg6l X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDEwOSBTYWx0ZWRfX/lTyyf7BOyqT 8px9PwaKMzJMl0IhPM+2GomJHjdrUDyp6tMMhIAc3EMM9eTIUZ1lMzkPixsnD/vl4O7xQWJeNvV 2M2QphVXoxFMf7kgWZrWHunMu1F3X7lVujQwROB7hdlvoSusboJyS/GQCVxVMpwcRbcRIDZm0eK vG02L8nRCttvFkMNhuOwtNYZhGTlxsZfEbndkqGDFSTqzodv6Mx7XQ6n5XToQZKfl6MfxvUFTBx ortP7JUbj8yrbMzlqW6mI9pIQkP/ZfEGFgK4MCjW8quLJK5qlhG8RYHgYTbsQe7HAKsRcYtHHPD h6dyg/rx6RCaNNl/PGY176oW+dfgDUwp5Z3UQ+MjnI12zQlZWCV0tSk6oVN1ZQIJJ5NzSWtYByT z83vk1A+zfO34RfSQO47o9lGj/Bi27pvAwmCDDHcxE+99fR475uFU3AHUTcYsN6MN4FdGGIBMsp od/ByRZ9nRK4HdftxpA== X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI5MDEwOSBTYWx0ZWRfX1l4dd/9dnfc/ QNg+6HUFidFDAYfhuknv7C8bExT9WU+82kTjKsZt+oHqEU8wO5sAcW/xgDpvA58ACrfO1v7B8yl mBTf+31dSQ+W5hJeQy0ABpxXc858jEk= X-Authority-Analysis: v=2.4 cv=O9UJeh9W c=1 sm=1 tr=0 ts=6a426f59 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=3WHJM1ZQz_JShphwDgj5:22 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=wr4TPrvmPTm06inSG8kA:9 a=QEXdDO2ut3YA:10 a=Kq8ClHjjuc5pcCNDwlU0:22 X-Proofpoint-ORIG-GUID: tMk8cRX2hvD3fxn5fr7ONqWsJkl3dg6l 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-29_03,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 bulkscore=0 adultscore=0 impostorscore=0 lowpriorityscore=0 phishscore=0 malwarescore=0 priorityscore=1501 clxscore=1015 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290109 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782738917432158500 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 Thu Jul 2 10:18:31 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=1782739063; cv=none; d=zohomail.com; s=zohoarc; b=Tr391W7pY6bCxmk8xZN7Y9MeZB//RdwstfMJBD4ghw1G0aROMb6fkNBb4aBq6eHw1R8JK3uddD+fk4oUJ+LzICreEp0fBEMgo8YdTHahufequo9jVPqfrCoUIWg2McAJ6z01n1sH0WuLXc7xDyiQ2nckgd8FMZ6wmwcBWl7DVqo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782739063; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=nE2C2nrxEiQCxZxaiIUoToSQFaACzrG6MOzVBMmSqk60PQFzbH9DuUY94y4co6moaI7VklgxD2j8AtfKJ1IMJxu1bocxbLbgqtVMhXNfpUOoCWyX8L2KlxOXX6nZpEWOtwN8zJlqB7M/OjbSVHrr8fw86S0nl9R5JNJi2jp84ZE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782739062989205.15986335416267; Mon, 29 Jun 2026 06:17:42 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1weBnM-0004Q7-3Y; Mon, 29 Jun 2026 09:13: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 1weBnL-0004Pv-7T for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:13:03 -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 1weBnJ-0003BF-Ps for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:13: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 65TAT6pa2618925 for ; Mon, 29 Jun 2026 13:13:01 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 4f3pdkrr3q-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 13:13:00 +0000 (GMT) Received: by mail-dl1-f70.google.com with SMTP id a92af1059eb24-13b0686d13eso1426326c88.1 for ; Mon, 29 Jun 2026 06:13: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 a92af1059eb24-139e78317f3sm28459106c88.9.2026.06.29.06.12.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Jun 2026 06:12:56 -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=HU o2eaH+rN1wlJ4HJpE1lRYzJB6hyJi84PPSCmRrG7ZQwzyRm+46vIRVPxO0obviCw vc2g4rFOUzOkyW0w7uFK5gUNhlQaRpyE29WhKVpWfO7A3YwgHx7F1PnJA+km/sYQ 6N3n0r/9KD6Y0k9m9OExHIifjZG1/OKF6Fnq7ZBVUAMHjb/QgufTGvSYKCL4e9e1 YAKkMNSiVMs3s6MPckroudmjGdgbQluT2E8YRqux23vufMahrpRB9qCQOG0B6125 +WMMWPtY1agKGWF/eMj32pmqNhlgVLiK9CXo/3aUyTHLVNbvg3cGUtEY1bib7oDI B+6vET26jxQe2H/5K3Ow== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782738780; x=1783343580; 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=h7P+LT399lQ2J7PPeAiULTAJVCjWjpnlPHAJmHqU/ODP17yP3VJAjA7VTxI0Cr1tuh lRtH/s0wynA8ATv43/if82eZ/LD3XWLjWZkiXpKdoA0Me7W0iBcDDEMvQTNdk1vwLq46 DyeoD1ABMG/GJQQl7hV8/WvP2mClm4Sdx8gA1lcoTMfjbANkreKY0Hpb6f6Ulje1b9iL uwVxKfUjTsXb8MEp1HFayH/1zT3gaF9VynF0Ynt61lxw6x/rsfzwSdtevHCKTZpUJUbb YLU3Z8eabEzabDWYXAcO6CcBV7bksWyz2ThqY/jd0ve5XAzl1nqQqJB+0CShwcFdowpp idCA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782738780; x=1783343580; 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=JnaJZk1aKn1zcB5HMifqVhXIjos6SEAyi1s4icBTyzOWPgDoaX9YpcI7VMZBCyyO7Q Emyuqgq+WDpx224xiNUb/c86W9CE8gOSCCoYcPFMc/d6eRmuky8vQ2nsmOkrhuOQiqnA kt5opR4CPsqZOjmfJNfqRfpokQ7223xXUQnAJMkemDdeWa1gixY2mfgtmNr14FZlhgQm RFkunEYVZsB4nP8oFpeHfQjNVf/S7eRNUdXXsMMD0azBNGkh0Z66sdiFUQeisTfM+KUa YIuQhf/grX8xXZbFUe8+tbqDG+H2Lsp/wDMpOr4EiC8BHbGNJuAJyOX7GD2OVWynKpj1 Rzuw== X-Gm-Message-State: AOJu0YyinYHO4205R784Ms6A0sK+T/L5msxSGke/j4NuTBHMBcoy+QEq Irg4/quRl0vUkZzEhaZWBDPuL7rIuuTj1sZy7X32vsVUa3kEx+LW3xknyUVZVMDH+/mK/PpXoPd mznsynJovhHIucBC7cPGnhit43hAx2dFQpo7FznEYNl+LOWXgn5iImWTarWENh9YKKA== X-Gm-Gg: AfdE7clqXpmzUQzQBR57WVnEJCXoxOVOM/cqonUdND0gpSyemIFL2jVXfxEbQbJMQdQ O9h4ljdu0K05pA3kKTEysmOmWJrP4h5n2rx7ITv9QdfYNvuN/ez9PblMiayfX88BiC42vzoCQFK JaAzRpQo9PzK/jr5BhmAq+xElkGqgIIm7HuCshJ+xMnlePi7VMGdCTalwSb2LA+a8faIgWZHeFz 2dPgplb88v0X5VuMESXn8UHzOizGtBDRGqIQ/7wiN3KjXj9aqkZR3+563wQ4rcjK7KEU0Z+EcSL fPCRosAWeT4APb6ZjsswYLYZjXoCzghtQgvQbULRvFDvJol3wdy3EndNkTanUKKe/yDYTStRcJI kONmlwIMG6lldG6f3BaSjqYdORGDPPG1MO2G/Gyx693c+xdSPpVOEigrKs70= X-Received: by 2002:a05:7022:21a:b0:139:f749:b077 with SMTP id a92af1059eb24-13b22731b49mr492509c88.43.1782738779966; Mon, 29 Jun 2026 06:12:59 -0700 (PDT) X-Received: by 2002:a05:7022:21a:b0:139:f749:b077 with SMTP id a92af1059eb24-13b22731b49mr492477c88.43.1782738779423; Mon, 29 Jun 2026 06:12:59 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com, peter.maydell@linaro.org Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Pierrick Bouvier Subject: [PULL v5 13/77] target/hexagon: Add a placeholder fp exception Date: Mon, 29 Jun 2026 06:11:28 -0700 Message-Id: <20260629131232.2487780-14-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629131232.2487780-1-brian.cain@oss.qualcomm.com> References: <20260629131232.2487780-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Authority-Analysis: v=2.4 cv=R8Uz39RX c=1 sm=1 tr=0 ts=6a426f5c 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=rJkE3RaqiGZ5pbrm-msn:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=KKAkSRfTAAAA:8 a=EUspDBNiAAAA:8 a=R5LHHePp8dzqxDYlWrYA:9 a=QEXdDO2ut3YA:10 a=Kq8ClHjjuc5pcCNDwlU0:22 a=TjNXssC_j7lpFel5tvFf:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-GUID: oC95Vu-CAIZsVEQxNuN3mn_fy4CMs61u X-Proofpoint-ORIG-GUID: oC95Vu-CAIZsVEQxNuN3mn_fy4CMs61u X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDEwOCBTYWx0ZWRfX6AwZQ0Sbs3sC n1WBktYu1NL4MpX0sBZ2HMh1DLMDVlVF5rg7IwyZdFafdPdKkApvAPfVpV6jfIeh4D7C7a1URXI 5yb8oHYDSt0wBCYlp2t9n4VyONh2IXMH/uuiwUrbXKAZjw7MY28Mp+WnMzoC42nFij0mPlthaqg 42KFsoWazxo0Z8F3jsMjjfWqpMsfz/2JF+hPxiMT2rfrERhPZP+8z7L9BrKpqB5PyAmw62NctH9 7AlvRJx90Lij1C46zregZ7YfHUIIMoRHK79WJAPG7h3XCN+xjAag9wO+kDJhRcmzmTQ6tGRTA3o 4Of5Vqo7xPzZD3k2DEuoNi2n9/YGkb5nzTUnw8TTpivBrH9DEm9r7IG5ol+NUo+jzvAsdiJA8sA aELsrRX0kZgOjwcRGrjRfUgBgSh9ezrc2EuKjJX1Eie7xNaaRXzeupSgBIlQ5UeVvP8oDHTaCYc NedzlysP2Jn47/STZDg== X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI5MDEwOCBTYWx0ZWRfX6n1yyeH6MweA 20fJViXJbbpKreeJlfifJUGy61bVc0C2DH0zy63RvPIlaXtBtll0tU9hWK0k9oxAu9NGV2uATal CDF7clf7I7ziEKQtusVfNmsIImiMww8= 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-29_03,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 phishscore=0 clxscore=1015 lowpriorityscore=0 adultscore=0 priorityscore=1501 impostorscore=0 suspectscore=0 malwarescore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290108 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782739064643158500 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 Thu Jul 2 10:18:31 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=1782738830; cv=none; d=zohomail.com; s=zohoarc; b=Ws7630bL8oJv8u8ASNgzwzmcOKLClHCQZPLjmavpHXxK120ygvxyLYulMNX2/MUH6Y/Z25cFa//h6Kuu0R2WKoZLOKegyMyYAB4WEVT7NqgLiH+OypsKtLapEhk82mY5cG5Jg6Dz+HPFSyQ3YXR8g+dQIuruuTcHd9qOkZV1McE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782738830; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=IZ6BoQ0m4uC/Q3iEof5vE00m9gxJhocxXInlmkVFKU+Pgr5irYEv8uCxa3Al6uD8KSXS9EbZKV2/7li3px84vIr/6kJpuFjEnzc7uNXQf+ChTsbHPjnaP+r/UCecDgJObazLygMtie33Q831ieNS4kduMZzTezfxcax/VDrLAK0= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782738830331193.22069404070442; Mon, 29 Jun 2026 06:13:50 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1weBnO-0004Qj-N7; Mon, 29 Jun 2026 09:13:06 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1weBnN-0004QW-04 for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:13:05 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1weBnL-0003Ba-Bx for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:13:04 -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 65TAT6pc2618925 for ; Mon, 29 Jun 2026 13:13:02 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 4f3pdkrr3x-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 13:13:02 +0000 (GMT) Received: by mail-dl1-f71.google.com with SMTP id a92af1059eb24-139fe708181so2255325c88.0 for ; Mon, 29 Jun 2026 06:13:02 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-139e78317f3sm28459106c88.9.2026.06.29.06.12.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Jun 2026 06:12: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= ThmCBEUUn0U8qb4sT7PqDbrtmt1EHLpETdzQjy89vaA=; b=h8dakk3EmqtrWXx8 c+SgZmJpqcYfYtHZU3QqPB5chJvs1R44CdlURKlI663bPALOR0N6tGkno1Gag5TE TC57nBkAlKoBSmda3mRYi/nfIHXp4fUFUjunFq+iTtpIczXNJTwa7c8dkq1xVuv/ n2Q93BvQJQneaulheU6Mzp1eSenGdX/w+j/RfDknOpHJUrVX98aXBaRv36la9//X Hh5HczAgc4NtApr9uQUNXqQVnE4TgXhFSzNVV6gpvlnR80VBUv+lGdcM8wMtP6uq sDRa4MAuQhpsqQjxq3YuvHpBLDV+/iqeUqKM9OS0jm11ozGjVmeFJ5tZi87iFNNJ FLY/Kg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782738781; x=1783343581; 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=Mi/Wbd5FttSkzJwwHavSmCxfI9u5mOXoBG/K+Of6HAGeXiDZPDZFm3J/T1g1odfCj2 kezDXTcR9DOozy+JI00yqIZFEfqTBwiqiQArSm8ogCXbMvqLU+2Nn3dz7KSyLC7hrxcN ff2BJvA1IAymmzFWOSAILKx7AEUPWccq83rghHGdBv7nvgQ0hepXTAEFnac/PWbm4rNl V9l8y2YIRMSMecZoI9JYJ4aUoQrTirKZ2TrGOsJ2ySIyLv/hIQAhljcLezuHDg46kXIy /eaGnARNWhp0xXlEZEwIuy3ChD7ZNZWPfA8R6pe3vAxpoSaWLdo1KRmouwPvgX/SSrIc Ky2w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782738781; x=1783343581; 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=O04IXIBAj6X/n2Sf2N++xgZJSBlQFuCKV/DTCrgDthsQbFECIyft7E5o0D8B9HwTzz ac3Nmv2WVKPEcZ1nHrzmmWta2nJi9HegWDpWJuERh+JlKzVRtVq4GdPHv59OJQ9kgN5d +ReKyBJ0HaZTLrEX5dZ806LCT6jss/BMVUxDmt127kVoBnegLAPiKU/+B4xaYovSeqgO KzwV9q7HlOQGA491+aILzfwcKvdKLsNWGeXAGlXkLzs/Rp/aU1/CZLwAyanrydJnTcsA cSiOZ5AWBv2R8Z5trDPe0IYgFAva5FwNvp64/MccSbci8kWP48B7Qtsp3SPZPyFncQy5 RINw== X-Gm-Message-State: AOJu0YzGtZum+0aHxsyyNMIV49Tirr0pS8XbUYcD7aJrL+ZTbHa/QPLw s7f69gNMjrxWQzQj6TQ+vfXfpG5EphSWUiaCKKo/Luvi0kMXY/Vqdz3ahn6Xt7kf3b1zLSb/zhv eME8W+MTsQXWK9xPupR0uufvMo1C76i85abZbkb5JZkHyKz+njGIE479Sas78be4Alw== X-Gm-Gg: AfdE7clNxItFmm2fcBlyLOH5RImmnu68P+jQjrFUw2qqoI70GmE2PB4gq//lTuH0ua7 /mLVUiKVUyem63GER8LiKbTKtB9bmPkk3mBcZQshGttbs0C7J7gwojKm7TMFcTQ7h/lxoXgMVbS 5KWGsCA4thvV3rRsDXG5UmWHE47mvjyRQcyjlqFGH8XU0f9hI3cxBNAC6FLOHcVwZWOULbgXB7b feDuzEOqg6kfBmTltGSIpyBIQTzstEBYvWBvV2GvLdLSDrV0TrCz40WVAYIKVz4tv8/2n77NFMb X+PpE84HPUd/3hwt6NNGxf+zr/rS9ilLf1ysotkX9+jh14Zlj57vn/vCu906ibUad9aa4ennm1s n5fxtbafJbddpRrDxbmLmFeE0cvlScp/e7LnJu6QzunZVRBj+DO0s4xUZ2GU= X-Received: by 2002:a05:7022:6885:b0:138:177c:b971 with SMTP id a92af1059eb24-139dbab88fdmr13025946c88.29.1782738781397; Mon, 29 Jun 2026 06:13:01 -0700 (PDT) X-Received: by 2002:a05:7022:6885:b0:138:177c:b971 with SMTP id a92af1059eb24-139dbab88fdmr13025925c88.29.1782738780868; Mon, 29 Jun 2026 06:13:00 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com, peter.maydell@linaro.org Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v5 14/77] target/hexagon: Add guest, system reg number defs Date: Mon, 29 Jun 2026 06:11:29 -0700 Message-Id: <20260629131232.2487780-15-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629131232.2487780-1-brian.cain@oss.qualcomm.com> References: <20260629131232.2487780-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=R8Uz39RX c=1 sm=1 tr=0 ts=6a426f5e 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=rJkE3RaqiGZ5pbrm-msn:22 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=pGLkceISAAAA:8 a=tCkOjFGBvLAhDY2OQcYA:9 a=QEXdDO2ut3YA:10 a=Fk4IpSoW4aLDllm1B1p-:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-GUID: bkeoO_PjjHb74JHBc7JTK62RAzlv8ame X-Proofpoint-ORIG-GUID: bkeoO_PjjHb74JHBc7JTK62RAzlv8ame X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDEwOSBTYWx0ZWRfX2rfsv+igq9EV xdLAftn13jWhhJ5yU9NDGv9rqjsOfT7ClKuGDg8pfP8cDzow5sotOE7DxB8Zb7MgoNHqUx5Q6od 9Tfpqzw2eVn8J4g0SUMm0N4Jk40te6NSl1dLFsPMwlgliAnzN2ZqElHXrL+87FagCizymuknXwK AFAprvGK0AeOJ6OD4d60ZqEowwstxEJ7LEldk1+HCegUOy+EcPSz4MQA5dwBaI7Iq8EEXnJSjQA Iwej9UOiJEpVV2RJlTB/rihCbrnrOfIT1nss/8al3vQT4X0MNWVtO9KPmGwm0ZnDoNAWatBA486 GCGqQDHxqCEvCXCR6PIl0XldvPFyQZO7iBrk0outUZ+GMBCou7kr5+r7TBcgRAjQOQNCEMkq+Yh /DzYHookFaW+/hkw3GHRO1zfqtPlvr8ffg8tJFUVLfY9ZrT7PAOXHOs1bB4rxUrOHbecnm6Kv/+ LesXsBtFw5hrYkA83ag== X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI5MDEwOSBTYWx0ZWRfXxtCFb+wjlI0h D/f8dn7CnLDOQSwJB7Yx2p4Cpy+f1hvYrqywIyxNqx7kZOkKmjNiZZaudUkTzUoj3ASirA26Xkq KRMgMmgWbeDp8t/AWzDiOa2w3LSo5eg= 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-29_03,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 phishscore=0 clxscore=1015 lowpriorityscore=0 adultscore=0 priorityscore=1501 impostorscore=0 suspectscore=0 malwarescore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290109 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782738830902158501 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 Thu Jul 2 10:18:31 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=1782738975; cv=none; d=zohomail.com; s=zohoarc; b=YwiiMl9EoBNTQf+dtt35m4uCfClZY6iF1kEfK+DZDPbSdUHa8SjMZjq/szmfmhmEFOmiy+8VwYxwqmf4Baujd6n62EKA5kiiL6aE9uFJeoez8Yv8I9J1dI0+3KliYdPmi7dc5uAGLyfQh8KkzFyV9E52KOZEv6FhmJc5DxwofcQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782738975; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=ilhBH9KWkFMgCyrkvp3ZoDYePjTQkNRcGz+Jz1y0YV5VKL6j7kdOr1hlQbyFuC/bBJmFZ1AOnOG9D+ATSzsxGQcbdKV764G4T5FZ45Ysyeq8u40p4C/O0gnwKs5mJtMJHR8X2i/TLC0J9GOQOlkCjh0KcDm5uaDZZV+ScE3KesA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 17827389750491021.551442493701; Mon, 29 Jun 2026 06:16:15 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1weBnP-0004RB-KP; Mon, 29 Jun 2026 09:13: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 1weBnO-0004Qv-Lu for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:13:06 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1weBnN-0003Bj-3l for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:13:06 -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 65TASuqe2640837 for ; Mon, 29 Jun 2026 13:13:03 GMT Received: from mail-dy1-f197.google.com (mail-dy1-f197.google.com [74.125.82.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f3n5s1428-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 13:13:03 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-30cb2bcbf7cso2889366eec.1 for ; Mon, 29 Jun 2026 06:13: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 a92af1059eb24-139e78317f3sm28459106c88.9.2026.06.29.06.13.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Jun 2026 06:13:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= X1535rWHbX3maN5NHx9P8KfIpPdOoals3VppoQq+RNI=; b=bpyyRje0/murKpeL vdQtg+tdifij4QDQ2kpymROimtkggMSVhoyaFJF0JLdx+SENvjWYmK9JYAv/3xlG VRTt7M+vrlfnBT3cdliZ5U7/L1WDQqDT9zVbTKoWFsghSdJzoV9WPEwMb0In14rq SGUFOO+bifedoIaVyGkCmc3apMN72RWyb0vzmeTFrwfMFu38bo2b86ddRUPH5fLl A5nGbp8qvawnN54MjJiTawzBAMS8zBtuykLccd7qIIvw5tIlENpjpphFyuXEVUiR niUp2XjGx3y1uj+jc//KqwPm4ooOTG1g3DuhP1sp6wsOVwLkjoOLcUPqIT3m8jah Ww4w+Q== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782738783; x=1783343583; 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=Rb8N/1Y2VeqO9OYSgWRYaq7OfBhfJlrsQiVFx9JCsticoO7z4GLNYp2D8QuTDn+9a4 /bdJKm+6NwWJC/UOaKASvTW+KFMa3LkQx4pavVopDtP+Lr8COfhfAhA3hZBCQ9ZwFK+i 8cx2MYfGj9XNaL/4w5eU9g98LdsMmF/0cJbHgadEPTB6yFgGSCeKWfMDtrMUNtO9gsTl GuxRFqJlU0PI3ayr+cJYdyfgFmsj/20SzB/T7o9OOn/UiYYIZv7gjYLiAye0JUv9BbqK cf/8MhAJePBClhT5ofjqvSCzcxP1s3mNx1nCda+Io4kEqogETD1rzTSjMc8CoR5VeIr6 KxuQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782738783; x=1783343583; 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=SV1boXYg0CelSIl816Xqb+fM6L1DLkDXw/RfcJX1bPZwyArmhwRMFeiH0JTt8EL7DZ 0hu7ribR3VgecrjQ7rTbG60WsumRQTkG1ORjO0QjDR5TS1VKlbkS8PlxLIRHB6rplTtg 63IQvzFdzJwxumklhA5k0pYsA04M/4nqL4aDgFk47zXYnrWd7aJWrMOI3gDUCn2QOqh+ pPeNTAPCZBprweZ3RbJwCjZvuScK+kRrjIMOt92MDnEthbq/0nJ5oxPk9AULH7nLYw7J LzuoxZpZjr86cdHf0Rynu0V2mWYxpekMrUPcwONEBydceQKQlKds5o6C7QCZCT3vkODU Ibbw== X-Gm-Message-State: AOJu0Yx9U4YI3HGlzSSStEejcgv3xhnFazR1DnQ2oOhE31AbU6VnTzCA Q0ekvvg3kdOwDfOy15lQVVrG2gU+h86iZGj6e2mRZRNExVuWkjOSwPhP//kRkACie4PCrQGdPNu Ty6c5tJ8sCV5QoIAwlA1vcWvKjFIMApnKkpyeGDeysb6UZEMZkJ0D/ObmEvpdYJcVaA== X-Gm-Gg: AfdE7cl7V/FaEI38GjoBFeQFAJCVdFQA3aLjBGMPldtrJoilh3Y/GjEweTT500zdQsi 0Cr4/CzcmMI/OwFRxcJy7TpUDgVxGiaRQAUlmgsgiYK5tkdnTBBj2eEITCLg1Fos/Z88mlsHB/r f3gR3lUrq3NgzcC+qTh8ryUArOsnziUvEnseOCGIuLpQYjzUh1aoXg8+D/ei++kC3jYAiG+a5Ea f3AOgK80eFmYjxrpeThmAE/6oKut3YsDCYucFtzreGgHulkiGThaIhJUQrDcIwt1TyvUTBONz2v ITLtRy5k3mCkbeJw4I0HpZy+Kl6kG0LNfOJCnt7D+rSmjMSwSGXOhkWpLfTqIsI3Mk1F/Pf8tvd 8rneLstCHhxKpaUFEE5c9jusF9DIMqAAKldqFisR+nTaoMDTZ8b7kVPibsVU= X-Received: by 2002:a05:7022:2604:b0:139:9e79:43fa with SMTP id a92af1059eb24-13b220da169mr358838c88.9.1782738782966; Mon, 29 Jun 2026 06:13:02 -0700 (PDT) X-Received: by 2002:a05:7022:2604:b0:139:9e79:43fa with SMTP id a92af1059eb24-13b220da169mr358817c88.9.1782738782445; Mon, 29 Jun 2026 06:13:02 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com, peter.maydell@linaro.org Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v5 15/77] target/hexagon: Add guest, system reg number state Date: Mon, 29 Jun 2026 06:11:30 -0700 Message-Id: <20260629131232.2487780-16-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629131232.2487780-1-brian.cain@oss.qualcomm.com> References: <20260629131232.2487780-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: AW1haW4tMjYwNjI5MDEwOSBTYWx0ZWRfX+j65/tccPAfJ 5caR4F4owTN6McyUAyaFAqTFAh1+SdV2R7A1hJ4FKzsEkkcyLj99UAd8UKwU7AmcZfcDr1V/8bi fHOse0OsuQqa5MKrRB+ujvoqzX1is28= X-Proofpoint-ORIG-GUID: rsT4DzWK9NeKyhoo5Vmxkw3_pepqQwo7 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDEwOSBTYWx0ZWRfX9WRUzadKIkqi H+HBxZM8SvuAIp73BG3HQYqog7VjfaFMexOa7e+4XlsVWnBHtg1Zvl0kq7XROWZi07OJ5vvHNOr ZTgvomFEHMTat1vNp3DZQQcYLrT5w64tqmL9Xx85QSILJ0njNFAsuNeOZ2RQTRAn1JYNJZMKLdU QjpQOmILmpoiiIfaX1E65NTceN2dMo1dwYtj4dU7PX0g/pPDomOOC3g8+M86ylZjwOidQZA6FSk Nc9L0wgYeShRabC3omVo0YcDc1qt7RcYMRlT6wpshgkIiZPw8oJFGPFgrbebhxiH4vff/lPGlXf 9XL09ZQrjzXz6IM4oLtK3YKpkDM5SWPT69UzcC6MqgSyzKWGlK54gJQcL1Npe2/ZlAKI79XzbYI ZxKvm1ZVkoGzZTEKi8IeG5qWxK7FWhT9huCVsxLMR8Et4D99yphyEJJ9bOUDMuOk8TqMGXKqhty X16bFGwCMZC83azPqjg== X-Authority-Analysis: v=2.4 cv=NZzWEWD4 c=1 sm=1 tr=0 ts=6a426f5f cx=c_pps a=Uww141gWH0fZj/3QKPojxA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=eoimf2acIAo5FJnRuUoq:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=ikZfMmNF8Hme0_TNbpMA:9 a=QEXdDO2ut3YA:10 a=PxkB5W3o20Ba91AHUih5:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-GUID: rsT4DzWK9NeKyhoo5Vmxkw3_pepqQwo7 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-29_03,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 impostorscore=0 spamscore=0 adultscore=0 suspectscore=0 clxscore=1015 bulkscore=0 priorityscore=1501 malwarescore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290109 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782738975817158500 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 Thu Jul 2 10:18:31 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=1782738873; cv=none; d=zohomail.com; s=zohoarc; b=J/NpUfcQnl3npcdPY5GughqdVNrYe3kANVAmwPkYl1ccdn94cpsEvt0RuDkWuFbHhq6izLP3YWw9gxdt3hNwcHqUNph4EqasGpOaG0TSOG6iAEFfJOF9no5MEpdLl+QC4Rs81iciSoJf4QA7fZBqfduMP5UABx3HMUYQNl2bp/E= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782738873; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=b+TsBFolXU6wB1Li935U5lzJ9Y0Yzy3OBnVqSeKc7u2zg5MD1n9q8lbH7SAtqz9yCmG3u9dmCk4dqDfi4uEPvS8DM7gvxxvWAZD6QazDHSC4prllvIefolKV6NEhnOf9+8PXqfALYYt7p+DLToxhTWdIdpWler7kA2JjvrgjfoU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782738873752375.0117146885085; Mon, 29 Jun 2026 06:14:33 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1weBna-0004bL-Pb; Mon, 29 Jun 2026 09:13: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 1weBnZ-0004aY-PZ for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:13: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 1weBnY-0003C5-AT for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:13:17 -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 65TAT2Pk2618764 for ; Mon, 29 Jun 2026 13:13:05 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 4f3pdkrr47-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 13:13:05 +0000 (GMT) Received: by mail-dl1-f71.google.com with SMTP id a92af1059eb24-137f3465368so3923134c88.1 for ; Mon, 29 Jun 2026 06:13: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 a92af1059eb24-139e78317f3sm28459106c88.9.2026.06.29.06.13.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Jun 2026 06:13:02 -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=IK zQq1rx3SnGrj2WkBUHeWt4noSTe/720v0rNi5ofpwGSKuevU+oRIqLPLHbQwJxfU I2IxxZFcmzspmgDJiKe9g26Q1tUNj2CGjM0TJ96Rn4z/TzloI0+g/uvV1V6kUDeu fDC6oQxfm4SiGGCOppUlTO/i4zwM1OGfA9XIxs+8hS6eLw4FZOZGRrL7xAXfmPBh K+FxIPyjtDnwPmdz7gLiv+udCOT/eJWZuSCEkg5yPvOPhxDrs6UNK59PahaH55Fy T4zcnsN5EvSbkCwbCvCxWXLcO0BhGlbXHDfihaQULHX/gz6lK1NkxVeoFz3eXfSB WxXNBIgYo0O8jXrXt0gg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782738784; x=1783343584; 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=Yhsmua+5J2a1xGt7yugHdAEsnRb08AzJvChIlozO3u0GRDU9c3ASZsP2u2dydeYvF2 bS9gEJG/IrGjqyxZw5BlPtforQRkgUb2ZRh18oY7LIPUYO1jT7HsxY7N/+x0yM1ACX60 oVgn8584GmL13MDM1E0R9tjMWnqpeN9jJpobr9SyEA7GROWvLJ0V7KNBiVnvq4KhHhHy rsMY5pAWZJsGxW7j3AfQNoD7vOw4Nq7qqY0sXkh9yob4ryuuDqAPO7C8eejkMkUUP8SW cF7rvVEPe7n502YHjcvOWxuttmzapOVb7VBvjdUdLfQelWfnCsRpASBnLjnTD9+zfg4x 0PNA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782738784; x=1783343584; 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=G3fq6+jUyQ2bp5srkUGtqc/t39gOByRlHO+CF7c551AUVPtb/bgy3XcgTJaWxQJH+u LCzwnPc+bFvPfi/S20mkngMqGcLZ6ZLNwyQX/+5bGK1OmoLl1XhiWXKs5BPgdzQZqTPh 8elj+GqbkgEXk5l0tVMPuffB2GA8afzwcwg/bynNgVTk2iP7kcWJIpEvNblxfheZc8ar L+5Wjduh68jeK9UbbMcU9c6V/OnGXWo90vZwydpZWUTW+yWzYV13VwCZa/TjS72j0VQc Ugp2xJSAgEF0uOTA/tzxohF+Cb/22ItieuSMTTforoCDZemkHoMt4BAntVC5Vn5p+4Oz XagQ== X-Gm-Message-State: AOJu0Yw6DZ5CMWxtq+zHM9ghu89qyj5TLaPX5CtCZm4AdcGRvcrf+KMP IysQLkEFw9hc7n/m22e99COm6l3GhAiiv0fJa/oMNmHJPcyoMMky7IgJgsKv6uQ7+AsJe0RWZWk 8uyvGJ9zsX4A6Tp1lRESpXlNLEWkS95JTSiGxwgwPNvs8HXrdVg9vdhEeaiuSDfGyww== X-Gm-Gg: AfdE7cn2vdWChWSAya9uS6cQuD1nyZpb3f4xV84NuEukAcaP/uFyPNUy6p+HiN64gce RPJS3M4qK9hSLEWtvp4RmyT5NTdTI9EiKLw0LTLtKtKz9sMj40lSTD1sJ+lwG9wACrohktAtHyd r+rKedb9sb95tKAoFpWgfuUPJFdwthngcn2k+cHHyBVzyDWejQ+11balwGhdEgFKJdMeKMMIyrs VzUuEqpfcUQJDY6fhWmEoFfRvaDu8TzU+9vgzMyTa2yMkZoLG0y32JgLXWmlY3as6/hiyjEDt9m C7Hy2lmB8+eEsoO+z4b/ZHLU6XNJSGiYZ6Nk4Dmj6zJ1bIdoC+90URjWk9WgXM1s02TjGG9CGdt RR4jg1jJ6CX1CzELdqlyUh6fLuVeM4fWIs/zJy0/qm5DUu3wFMmRslX87nvg= X-Received: by 2002:a05:7022:459c:b0:139:fc0a:f48f with SMTP id a92af1059eb24-139fc0b0622mr2910821c88.38.1782738784385; Mon, 29 Jun 2026 06:13:04 -0700 (PDT) X-Received: by 2002:a05:7022:459c:b0:139:fc0a:f48f with SMTP id a92af1059eb24-139fc0b0622mr2910803c88.38.1782738783831; Mon, 29 Jun 2026 06:13:03 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com, peter.maydell@linaro.org Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Pierrick Bouvier Subject: [PULL v5 16/77] target/hexagon: Add TCG values for sreg, greg Date: Mon, 29 Jun 2026 06:11:31 -0700 Message-Id: <20260629131232.2487780-17-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629131232.2487780-1-brian.cain@oss.qualcomm.com> References: <20260629131232.2487780-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Authority-Analysis: v=2.4 cv=R8Uz39RX c=1 sm=1 tr=0 ts=6a426f61 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=rJkE3RaqiGZ5pbrm-msn:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=KKAkSRfTAAAA:8 a=EUspDBNiAAAA:8 a=8kp5zrIFwsha1M26KQwA:9 a=QEXdDO2ut3YA:10 a=Fk4IpSoW4aLDllm1B1p-:22 a=TjNXssC_j7lpFel5tvFf:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-GUID: cs_HGVPD29biufxnWgE9ljYMV7WwWL_8 X-Proofpoint-ORIG-GUID: cs_HGVPD29biufxnWgE9ljYMV7WwWL_8 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDEwOSBTYWx0ZWRfX8Chbeoc4JuQA /AfxStSaMQYHr4Xlihe/u/w3cZaNJnxcbDCn2t9Byu5J5zHvI+dEBselxIa7BXNYcXcnduU8aW9 T5/PZKd/tFOx1/5IQoYpeSQhM8RBCjAy/LwH4yPII1iyy4M2cEWMQ+Gjbft1iRww1mCbta8rO9M /sOcAj9OC4MBGD+9axzvNkW2q6/HY0R+G4eSTqPcbfhmce5uDUhwGIwi+EqiyKdATWTykX0LB/A JJU04D90PEhvP/ERzdbBlrNnQFPI6lvYYVcddHtAc/+qT9dBFmZRZHz5RgOWWaMHCxQEL/oLNWK e7NAHpFrkxtD/UgxsxVR+W4IlOqc6YyNYFSPVfr6hb4JinwVArrvexHaWk5yCh+ViByg6wSLMDJ qhutdYGGJ9pgXbTLRpAN4NtiVujvwl+COkg9LoFsWVrKx9ldx5OM8C+ulmcjZ7cMynNWmTL/zyG stPF9rlVLGp8kGe1MxA== X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI5MDEwOSBTYWx0ZWRfX9WsOXwtdN5gR WkvmWaVBi21J+AqWGcYkCnLpbM1E35UKdhgKBf7BQd88+gZW70boYP7OB6H4CFw94w5clcJAtNb 5rB3IRCujZMaKlMDkNEEt0aCeAMnGUw= 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-29_03,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 phishscore=0 clxscore=1015 lowpriorityscore=0 adultscore=0 priorityscore=1501 impostorscore=0 suspectscore=0 malwarescore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290109 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782738875273158500 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 Thu Jul 2 10:18:31 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=1782739118; cv=none; d=zohomail.com; s=zohoarc; b=ehI87OfwDBGSJuf0c6RrbtOxlyIowd3zjXzIJV3SdnoXvgfWO+Js6+tqcqLR7M+1dIyPOzgp5P5J25vSPhfhNjpFLZ7puZ1AMe9cZGbHKwkEy7FVPDUxxQlsjGUBMUpKcJHyGMM4g8C9ygA8PtLNMZ6PH/P8sMdUvplxH7Yd560= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782739118; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=UvnouArgiebplmd5N5Rfk4OwM5hAfWoEIpUGVZyscZZvGZiZ0bUlYKCtasDf0v2d+zBoZq/lhAKr8V7XeZKAVyXG3sxgAq5KZEnLbv7McHWsJir8AQHn9rvQh1z+nsPz9sPuGYtLvMFtkSlmqPtCY3RlHnauEPa6IySQJgdR4tE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782739118821357.6388004354187; Mon, 29 Jun 2026 06:18:38 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1weBnd-0004cQ-Bi; Mon, 29 Jun 2026 09:13: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 1weBnb-0004bm-DL for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:13:19 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1weBna-0003CG-04 for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:13:19 -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 65TATJaV2656107 for ; Mon, 29 Jun 2026 13:13:07 GMT Received: from mail-dl1-f69.google.com (mail-dl1-f69.google.com [74.125.82.69]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f3np7gxs5-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 13:13:06 +0000 (GMT) Received: by mail-dl1-f69.google.com with SMTP id a92af1059eb24-13980b6561dso9100938c88.1 for ; Mon, 29 Jun 2026 06:13:06 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-139e78317f3sm28459106c88.9.2026.06.29.06.13.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Jun 2026 06:13: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= 3FB08ozXJ75KuaQ0Uu8ai6pxj0RZ56tBJAjvVwXnq20=; b=eyvW7xfXMuuvz3eP 55rHD9g2Fo14PQh1l/OrjDN5R6jCPIlViE7CqpYfcLGKzw2hvxIOwHNoVFVTb9K7 Zji4GV2z3YtTIcA/sIFXl6OamK9WySgPK6wUkmJxv2TqZC0NqOs/g/cEG2TtX34v vKzJ78vIvenIgLpa2Mpu8osIxuzB5G7lyv0seTrRUP7Sj6+tr/YjTOYlqZEM+c/e j3ujmCsbo+SFaKcE3SZ63vlvuHU2VFxVeCXUA1jzDAl7eEwy6UNDx+j3mec5jset KMvgmidlfKe21Ymy0HQwGqYK6lqtLGIzzo/yiAdQFy3GLQ80SLrPWIS7G5KCMz0b LRGy5A== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782738786; x=1783343586; 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=Np92ifm/8hyCJehdOXXM8+yZ1SQUELUyLnBI9N4CMsHAskR1zqVwjWtZgDqis35KEx jc5HPWu0RsADV41H4K+7ub/vL3neENKRYnj9adruq1rTQOuJJpbhEV8xkuQcmiHjL9D8 fTrlXtK145O/l73DaWFIncgLfV5pJtOCYsvrb67LQVkzBBukJNOPtmiofzGQGKHUiF5H sR46qVQxY/QeQH+0+tVKxK67guTdAh2fySmEQCBB67Fv4Achl6ZfJwdRGP8MWwFMvLax 4RmG0LWG15NJoB8yti5kIInDnk5g3yh774jD1/VKI1+CL8Ixy5OO4Xaf+CyUyrFiojkJ vDzA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782738786; x=1783343586; 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=oO6DUQu4g76TlAXDHTPFHWYdgxTFcmGQ/MfKOTCVFylaQLiNLWi7KKV9LrKSuzkSfh 8b0WC/3/rYiEYE9XVGprejkpO7/ifUEU0V4faMunkxXrg9kwzBhA7+6TKQ+2Ip8V5w1e HzAsOBXGtOMxDM4j4/Xi8FMUQKT68uz6ZlQDN7EibHKe9hqmZlKW0wsFVgMFoOAZ0iy2 HubNXgos3LmyEeMselINHPWgjY6GCNGO+1VFfxGNl6ovgmx9VTFIJV+49Y21y0AaQdTn IP3XKdKPo0Xg6C9aSPez18clG7e4+zl4pKc+wadnqOzpQ6SRRscmdfNF+212Plxsw74M 5Dew== X-Gm-Message-State: AOJu0YwuYKTURBOGGvSKltBUycGh/Lk6ZLISf2tHBRTG7v3+QDpGJ4RG Hla7f+bgkYrZfgPPRcP3WvGTLl6Bo3k1+b7BfdUEXTNv/lX6PTptciLJ6/RzJLJ3u51hkg734zM gvwijwQcBRLqDaTfwRvCw2Q9O47EVkJT1ylyWex+kIQp1RTTGm9zBH6jSmju30arlXg== X-Gm-Gg: AfdE7cloSx2gXWuyic1Bvq1to9196/ZpHDo2XOgDAkrfgT49DiFQZYKJBNJrx6YyqtZ A8JaK2aabGfpcDcO0HXGRDIDvXib4mt3gVdG0kTq8qtMIFi1PcpqrlxSA3/ZEUVPrtmWogwTF3n V5QJFRy1CiiIM1sdqTIeOOk1ZZDRxH/MDbKlPeYLSqWt+g8jGiswACR8h6Uir2rcR9HX1+KnDXp kp4hTIofytSZ/TqJgbpHkJL0TImT44ox3VhndHQ2wwoOACAOj53P+jQ4OeWV3Vyr+WNgHpMuQdE dwK++aEY3HDRMwB6PkLG+LvfWLwzv8I0Ky4zmXwi1jA0KIR8l0VlCeC5DkdlubxHse+lj0laGKV +lfvgJGYt5seYPf441WADPsgg0e0eVxvqggmDEge4x7S3i0JE1CzH71jYVnc= X-Received: by 2002:a05:701b:2305:b0:139:ed5d:3a6 with SMTP id a92af1059eb24-139ed5d056bmr5081277c88.43.1782738786013; Mon, 29 Jun 2026 06:13:06 -0700 (PDT) X-Received: by 2002:a05:701b:2305:b0:139:ed5d:3a6 with SMTP id a92af1059eb24-139ed5d056bmr5081253c88.43.1782738785460; Mon, 29 Jun 2026 06:13:05 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com, peter.maydell@linaro.org Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v5 17/77] target/hexagon: Add guest/sys reg writes to DisasContext Date: Mon, 29 Jun 2026 06:11:32 -0700 Message-Id: <20260629131232.2487780-18-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629131232.2487780-1-brian.cain@oss.qualcomm.com> References: <20260629131232.2487780-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: AW1haW4tMjYwNjI5MDEwOSBTYWx0ZWRfXycZoua+uUs7y ZZD/6VhicfDZ+P0I9me9GWn+chkuJPce32kxhxJ439QX2MbpCNJ+/5fQCKYCY2eTrlRWEFAqRPa QpfHeiuSinDkRnM1EItA7ht9+kHYXAtdOFczJyMh9hf2qcKqfCzt4imEFXz5M5+xnWX0FwVWmXM cBYHGmSs5NvbL4VmXZIOksLspWo7kitzMjFg6gyJv3UpI5fMzvZ7Ac1343n4RINrLQLcCMjRdRz fGK2mxy9roF2vrNx01FQpgw/Yw/yM4azdszWoJMx7EqiEdPArqwQFN+2V2+9lgxMIwTLE21YLOX kJRupIZy/hR8aHFNLudSDhkf5Y/uXKxvyrg74MDlpbhdDQQhWaZ6UGvDamomkoBwAXEE+6S3UTf yfm9IfrZbFGProWWHwAGJVnf+mKvn9yvrtbM7Z4bjBwRpZsXIBhdtt/G6OEyGKpw7sP+4kJxRTy 2l5wC0P0k6LF+n5mmrg== X-Proofpoint-GUID: -3DykZymnDAf_xfi2-H200AvY1UVxqIn X-Proofpoint-ORIG-GUID: -3DykZymnDAf_xfi2-H200AvY1UVxqIn X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI5MDEwOSBTYWx0ZWRfXwbkG5Wg7+B2a FnCoUD0csF9ivAPoSxcp0y20lsWnq2BMAZfwOxhlkKaXVWkmvLi3n7j/+2ytcBkfaVBiEbzU6Jr yMjKzc24BXLH5n7mXmcS4GEIwIxEXKI= X-Authority-Analysis: v=2.4 cv=OcWoyBTY c=1 sm=1 tr=0 ts=6a426f62 cx=c_pps a=kVLUcbK0zfr7ocalXnG1qA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_glEPmIy2e8OvE2BGh3C:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=tdgd3nfel_K54e3JQaMA:9 a=QEXdDO2ut3YA:10 a=vr4QvYf-bLy2KjpDp97w:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-29_03,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 adultscore=0 spamscore=0 clxscore=1015 phishscore=0 bulkscore=0 suspectscore=0 impostorscore=0 malwarescore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290109 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782739118988158500 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 Thu Jul 2 10:18:31 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=1782738963; cv=none; d=zohomail.com; s=zohoarc; b=f2umWYA//i3/MRSvr+Ynp9VhwP/dxMVaobpaMVMnMJRRhrLuRr2omQZEnC46MIYvaVuzpoH/8HSaGVyxtTT4az2Elt8mU6/kE8hhxAKjOz8OuANa1QX6U21IJ1fqxTuLSUFsYwC2QVg22+WjpjRbkn7VLNpRgSvmw9HOxSmsavE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782738963; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=I8/8YSYWtAYZifmagBU0DXsO/3NbDsO60cYkoanwVqVVOp4BJi6ktvvLj6zdMWuVaJkJCM0X2u6VABCxJ/f6r+ECTG2JqeqR/Lml3NDxS3pE3iyx1OS9uOzuKRaToCwMTw6q6RhD5BlT9CBdUa+hKHOL3EjjISUsG1JdyujL0WY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782738963311240.7963883608469; Mon, 29 Jun 2026 06:16:03 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1weBnh-0004ec-9t; Mon, 29 Jun 2026 09:13: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 1weBnf-0004dN-0T for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:13:23 -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 1weBnc-0003CR-8v for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:13:22 -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 65TATE8G2647844 for ; Mon, 29 Jun 2026 13:13:09 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 4f3kyjhe4f-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 13:13:09 +0000 (GMT) Received: by mail-dl1-f71.google.com with SMTP id a92af1059eb24-139b70ca7e5so6898180c88.1 for ; Mon, 29 Jun 2026 06:13: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 a92af1059eb24-139e78317f3sm28459106c88.9.2026.06.29.06.13.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Jun 2026 06:13:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= hhoakWVabZ7IJR8eGDuXPSShTsj/f5bhJiXKe7ZTYNg=; b=B63NAvPStorH1v1e UAdF/dYkUykgwSdOYmI0pzLKH77W70I1lV9zfudLtcnyQR28XxwP477dR0Uy30pF c+yoQ6TVjYldxoO4RkjIngffscoEUsXZqkIui5Ba/xk+YVdhiQjATt9D0r5s6xZ9 kivOcLpJa+Uwp0NMwDlAIdQ4Y8mZg2MEr+VYbi4l+6M4LDQuC+9isnzeZfLt3sQC EChS+qSmF3zPt4wPqnNbceWdqWdM8HeuBxXP1efCQCiBP2yG7ktnXtq+wCMmfo3t w/dVceQzy3XUqUh0NM97IWce+wlRmmON3/5Ofp7W6j9c4zH0De/6QTa6dstpjCD9 Y/C2jw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782738788; x=1783343588; 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=YPupvBrql8CKEsuN6oSExYQtAaKaK5PowjWDehNhy+3OPptcwkcNcyPxNdBcu80TR5 TBH+rswUigZQ9R8qbeheFM/8lxBKcbySuxY7kjYyFzGo8D+4U0x+3GstBHEETiPvFQbH iBeFuibaxoOwKc+JFV4EBJdhIWulBku+iiKYMx3cVlqCBekqHspo5Z4IqfnCCG8PQZUo Q7ZrBBi/alVxYeyVITSxole30ERFt+OxhRfIi2b42t+0BOHFnAC9knw7XNarK4elGGFy EhCiIzUB3auMUETjKuc7z5gjkeKU4QXGRdaL4BCnXkObu4+EKS8wAkHhB9CZ5Kqiwhpl 76gA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782738788; x=1783343588; 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=TeeMiAn6uaJDXtktHaG/QNsbglGCxgbIeo4+Y+OjoLvnvX9zVV1U4cvg9kjSQDnL30 FYhTrC0RX+/94TvHbWnUh1itdPE+/bGXGPt2ib/437aTl0S75cO52nbcL1Z8qo9nv19A 2P8iq1RL4cg0LXfb9okcHnK6l94ps0LyNzK/hD9EP8FKDoIcaWSg4gEEKuGiX08FRzoh iZ/jiizfnV/zk9LL076IyLTAo7PfPF6UXQv2DnFp7mEY55sxgjMgo3dxQ81qiyEYlc8U EKvXQghBhVDxg0bPJnh6T8B80cPVpLM0dMKdXhsHQJf4AGo3Q7Ow5OpLfOlhPdiij3ab SrwQ== X-Gm-Message-State: AOJu0YxoJDATGrwh5VjISu+2rgb9LNtchr3oX3o6F5iUaMx8XB45ETRJ O9rZxdCdxQZWmItfZW5pi78mQvmBW7z3VsBDSgh+hR+JmA8k0C8Xx9qmhquz9ughEKv1Ut06kAs GmfJRu+eZb+RKINrfla+gjkaWhkuo7iN+rVetresATebLAfCmZ3JK4DwpNN2I/1MAmg== X-Gm-Gg: AfdE7clYBehhCvfP1089ilKXiOKGGGxlx0sRKv3BBjJ7xKp8qQ1IPht5PeKj4j1rua7 fMtVnlEae34mDLh+LnJsVR5CKXIbp+QjfaMrFEq51OUovNdp8aMTmDKXc4y+KeISWRr0Sj8rdFY wHDoLhSEz7q+rzugUAP/jiBadKnyDs6tp/DP/j8ks3PU4GBVD+eEmmUFaDKnUyn9slia20GzV+w x6xEur87tNkXqHk/S2OihZWcMoJ2n1Z6cC3vbpkGfgRE87gJ3DCFgFYftGjXTu3upQOO6zSbONx Ea+uaoQMt87dZoGJiIFNkfXZ3Sp0hxzjNNXPGZOhStELpx8axI3D/ciNHQvgl9B1WyUehGKdNJz tEBdf3HNpIdjEM79/7RY1i+nB0N7oaoocxcXiDswSwaXOmTudXI7BvNdrS+Y= X-Received: by 2002:a05:7022:ef08:b0:139:ed5c:768f with SMTP id a92af1059eb24-139ed5c887dmr6640666c88.40.1782738788026; Mon, 29 Jun 2026 06:13:08 -0700 (PDT) X-Received: by 2002:a05:7022:ef08:b0:139:ed5c:768f with SMTP id a92af1059eb24-139ed5c887dmr6640654c88.40.1782738787351; Mon, 29 Jun 2026 06:13:07 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com, peter.maydell@linaro.org Cc: brian.cain@oss.qualcomm.com, Brian Cain , Pierrick Bouvier Subject: [PULL v5 18/77] target/hexagon: Add imported macro, attr defs for sysemu Date: Mon, 29 Jun 2026 06:11:33 -0700 Message-Id: <20260629131232.2487780-19-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629131232.2487780-1-brian.cain@oss.qualcomm.com> References: <20260629131232.2487780-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: 7epwg1DUC1Elqp9_os1HPWbgiPRPUQMr X-Proofpoint-ORIG-GUID: 7epwg1DUC1Elqp9_os1HPWbgiPRPUQMr X-Authority-Analysis: v=2.4 cv=Ftk1OWrq c=1 sm=1 tr=0 ts=6a426f65 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=ZpdpYltYx_vBUK5n70dp:22 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=9WelToRRDTwRCstGtewA:9 a=QEXdDO2ut3YA:10 a=Fk4IpSoW4aLDllm1B1p-:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI5MDEwOSBTYWx0ZWRfXyoNLRIkeDt1W L+tVlWfeAt7v5bPQR1HHtt6OXJJkRCkR1cjDGnPoFlBmz3GLLgs6fPHrl8Y79PbL4CQwag65n/5 bqb8ve+ECbOWJXFtvYNj+iZv3D8ABp8= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDEwOSBTYWx0ZWRfX1rLMfcPK08AZ jTjJEkhKG3LtdK1Cv3el5IlcUt0NuQkukXna09fOe4nWbo1shvL2WrsZOv6c9fbZ6SiEHqdFMuT TdJXw7c5XzFccvDacbiRspn/oK9vhf1v+h9riIsuyy9kASdnqnvAs/V508cRREDsMgie8wUGD1E kee3BFD8rq5tq5szlf/fvZ/WsabAyhxhpyKXTI6uVsaejcGiIbo2mzbMrtxYdoOdSP+YTioRe0Z D+C6HgLH2x3kMkqhyxlUTno/s61cOlADKrD/JBQciUTJPyXPQdQuPpFZavb+4eoVnBD99dxaRYx nRY8I+xf4D9Xf1WKjdQUI90NjU6kJCGqa1oucHdf6795qMOs+HoVmWormoGTuJFWBoD/0WgKBLS WUAfMXDtjk/fWOrJWnFV+8D+y4g8TY5oyaO7X/nI/H9f4Xl2bI5oEmPpxyj020nViJY1qHCATIT B3En3Vtk6bf4tRU8ETg== 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-29_03,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 lowpriorityscore=0 adultscore=0 suspectscore=0 phishscore=0 priorityscore=1501 malwarescore=0 spamscore=0 clxscore=1015 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290109 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782738965882158500 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 Thu Jul 2 10:18:31 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=1782738859; cv=none; d=zohomail.com; s=zohoarc; b=CP6KAWw0I7FHeV9dB9XD8WmHwxWKsB/yOrZrqlhYdoPHG6M6+SBD9yKXFfNSL7vAyGpJX0MmHi3y565vo0CO+mJyyAGZWdzr8HcmLilVUdZ1nm8cW7lheQ9symABzIEqvaBvVQgesykDrW5o4AK7KP/nqoSoT+dQszR7ClImxrI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782738859; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=PSc2Fd2nk1tbdslC0noemwZ7Wm1V8rz0FwarUn/vYfFVrRvLNl4M6KXf6r1cUH95HxQj3QT8pXLy05RsRSU3//Ad9WRK5mMUk7+EWUPrLbeCsXeAzIDohyGHCXGdTNMe+9vm4XG9/xesAG/rTKLwNl3xfzdmQimZJbHkZYeOWG0= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782738859088297.9678589530853; Mon, 29 Jun 2026 06:14:19 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1weBnh-0004ee-OP; Mon, 29 Jun 2026 09:13: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 1weBng-0004dt-4R for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:13: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 1weBnd-0003Ca-S3 for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:13:23 -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 65TAT4oO2627854 for ; Mon, 29 Jun 2026 13:13:11 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 4f3nbgs18u-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 13:13:10 +0000 (GMT) Received: by mail-dl1-f70.google.com with SMTP id a92af1059eb24-137f3465368so3923331c88.1 for ; Mon, 29 Jun 2026 06:13: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 a92af1059eb24-139e78317f3sm28459106c88.9.2026.06.29.06.13.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Jun 2026 06:13: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= QOPCxfzT1avmaDDfh5FOnklE9vds5SWBGBuv99jugao=; b=o+oq/MukSAY1ymCo FIJpwEZino/kx7Fh8IOHMtmKk7+q5D4pV5lvDnWfLgTHPQf+8R7N9HMLIW3jX3Gr WbrbyykoRjfTytiXR6eZQHQY+9UpNf4HbHoUli9gQywzB2760oos/huqSDIxVefc pRI0jdp7nuat7SuqY+ae0XHq2r9RjB0uYMv9V9/JCamUy5zllXm2NqkUKwL7VmWp s+4+FF1z7jUVQ89yvYNJBq3FBS+8CfZxrw7pV17e2G0vP9lwLYu8m/BauLxRewl8 b90Sl2wfaDrTYdD/f1XyK4G154MYyiH7KjumyS6qQdscNwQRfEM5vlqvx9wfch0/ ToFMQA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782738790; x=1783343590; 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=XuZndsoT+ztJlXqsKP2MSrXNRtPXWmkZq/oizEYmnDcvxrNf3mOc8j2UHADjsSh3sL 5iNM4SD1c3XWc/RrI+rgvbtTiF/1VJ/LeXAoAtlxTFtV2FOn/JbMdOOFVe6XUwJSHSkC RM5SANwh2aowIVvOkvh+AGu3p1CvOJG4xgMhdBtRnPkBpzTaCOyYvalZHlkgVguxobbe MktOKhN1inr+2BD3E3NxOj0kSQkU99KtSNeqWM89iodEGGgG+bT9HKJ7N5JKxYEGGfZa OLuw6RS2Np2NKejHuu/06SdEDe/7m6Zvflq9Bc3jdqqx/YVdbQBoOkSmKCpOkczR2ydx EYsA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782738790; x=1783343590; 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=OSF0+sD6ZDvr7Kmtn7Q7wxbp2B65BtTxUcVam+eK+3xCh47C0Trow5gTQ7aFJtMRyt U5Vdj3cSWMafhQE4QtAmTKdxLI5BZUv2cicEng1YyUhq+vmmqhz6jsaM/QtxTGkVm2AQ ct0K+D3L/FEVIbiHwhgZBVpp77SOFuI7anLrgDwvqiR86JKs696oijsZki3agIIWsBVZ opq6EE5z5H4WQqaheCZR3Di7JrONowQxDulhMQmasEu43pCFClpUVtT9PsXioNpv6Gq5 zcIj3tPeLw8KTlrHwQXi/hLQ6MwKsi3KU7UwROno42/q0gRia2AtmH3nhoYz4ntsEiZp eX+Q== X-Gm-Message-State: AOJu0Ywm7sYYAp/xXGTx1QKZ7S5Sd8u3ZZJTvoDwRKYy6C3AWHmgSqlN 7CmqeMkGqCxk7b4I9HCtnEfDl3jCZcpw+2zK2wzrxbpCJH/l0dDq3nhAaLkKv1kSecqFFX6H957 tTZGj4bVacf4R1cJxwXQXICKpDstcwWq3VurqvFVqGVKf2tvIEYRtCo9IBGQPGHFjWA== X-Gm-Gg: AfdE7cnjIxkekYf1kkWdbd8SKvEY/26OsmqBZgjejHEJhV/6lC+r1X/x9NrDWLjZPOu USFaT+TI+Bi6homPC8rGHp2TMR6dVasu7sgXDoUuX5Tmux3kBMNlTFe2VDlCpQQ8mCYieaBTRqI 3MOIhyGnmSPXVSa30hspdEXny5/xg6YUxhpKW28ebyXgOqiLmDd/+zrbwF23pJu0noYkoSacx9T ipQqF+hnz/gxIjV3Q3HntTIGvPBkwjEOpbam2Aa+CEqpysPyZJp2YIepEk/xyRh7HGH1Pg090P/ 6e8+PH8WifegAihDbgQL64X31cVHoVGH0mnU5bz8p3J8cUvPalksPb0ggUIoVLznM8XcLf7xcqn dGBGkyRvtdFnFCRvy0L3JeX2kxkNkb915SH8hG9znvmaT06MnnWKT1p52rDw= X-Received: by 2002:a05:7022:699c:b0:139:ed5a:eee9 with SMTP id a92af1059eb24-139ed5b05e5mr7936212c88.40.1782738789797; Mon, 29 Jun 2026 06:13:09 -0700 (PDT) X-Received: by 2002:a05:7022:699c:b0:139:ed5a:eee9 with SMTP id a92af1059eb24-139ed5b05e5mr7936187c88.40.1782738789112; Mon, 29 Jun 2026 06:13:09 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com, peter.maydell@linaro.org Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v5 19/77] target/hexagon: Add new macro definitions for sysemu Date: Mon, 29 Jun 2026 06:11:34 -0700 Message-Id: <20260629131232.2487780-20-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629131232.2487780-1-brian.cain@oss.qualcomm.com> References: <20260629131232.2487780-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: 7SpVoP5r6Qv-7K8aoVha9nu9pQkXiou2 X-Authority-Analysis: v=2.4 cv=Z4Hc2nRA c=1 sm=1 tr=0 ts=6a426f66 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=gowsoOTTUOVcmtlkKump:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=VoFV4bgUeqxKQXHmsMYA:9 a=QEXdDO2ut3YA:10 a=Kq8ClHjjuc5pcCNDwlU0:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI5MDEwOSBTYWx0ZWRfXwq7PgdbRbPwH OfY3GrJVU8wiTdsnoXD4RdIIZuR4CEcJe702RbPPv6lXFWm9cKDPWPYGOu6heAqqYK/Kv439uc1 /Zj3aBnOBRd3dWGQELyDTN9FcmyeY9c= X-Proofpoint-GUID: 7SpVoP5r6Qv-7K8aoVha9nu9pQkXiou2 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDEwOSBTYWx0ZWRfX2xvvnbsCJx3j +L98eKs8d7Pdy7nuctQXpxsKgzAD+cSl22ly8CLgSyq4kA+teNSiIfvX0D4JtsI/BFHJmV5wlBk 45DOEnKBYaoR+6EXYNt+bmMDN9z+sV9IZyb7xyI1Y9YjsA2XaYHZqK3xneTmNCLkA9SNrk95+F7 HLckxDsYeunqt22n4w3rssdzIqh6gnPQDQoJA44cGi2G4/A5iUJ0s3hD7AESceNNSLsRhuv7uWH rZYFbR2EHfpL3HzVT4BMesbAMRTQYPkS3kj1082Pa1VrM1JaW/mSudwyaD3tVvOJczFnFqhdzOE g1RIXiOhE7o5Ah5Khl7l23iAEbWVCZ3Zm8/nmbSbg0913BUrbJxm0Syqtrd3BfcqdpcGDGCrS6Z lJw64BmgUOx9ghXTAWzkydhBMFlrmydKJVU7wpAALj/HqKGfdb8jJJJSVv5KVHfYoy3D10Tdy2G x+N1jvp7SAvZsb4gxjQ== 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-29_03,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 suspectscore=0 lowpriorityscore=0 priorityscore=1501 bulkscore=0 spamscore=0 impostorscore=0 phishscore=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-2606290109 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782738861034158500 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 Thu Jul 2 10:18:31 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=1782738814; cv=none; d=zohomail.com; s=zohoarc; b=MGkvRYKkD8fOds1+IzvLM1wkP0+z/MxYO880+N3yIKebsr1nwLzbyqkiSGGeCe45mLCOiz+8AFH+wTzcjfKkWuv+ml0YAwYRmjLY9jn19Zpr9WS0dSsFrQv/gPJA8JL2ZwFc9YjYtHZj/dgKGBvhBa3ZW3ddJ0DMP62WB3l44so= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782738814; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=oJri2oqGXvFMQqsxJW3IUlxwYsw2Stt083C3hCGL6G8cf9Y31U7SoXOu7qexIdnY8kBJV5l5Mp69dtu8GRiOxqyoZsMl3PMfVWvteOE0dcji4woiMRdD0+vZ3E39PhOLVqKP9kxRFyapQdsizkVkOH619eVgPSbVfl/9LkC3Fiw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782738814245421.24203995279413; Mon, 29 Jun 2026 06:13:34 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1weBnZ-0004aD-9F; Mon, 29 Jun 2026 09:13:17 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1weBnX-0004WS-CJ for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:13:15 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1weBnV-0003Cg-CP for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:13:15 -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 65TASuff2640832 for ; Mon, 29 Jun 2026 13:13: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 4f3n5s142s-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 13:13:11 +0000 (GMT) Received: by mail-dy1-f198.google.com with SMTP id 5a478bee46e88-30ba395b047so11796342eec.0 for ; Mon, 29 Jun 2026 06:13: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 a92af1059eb24-139e78317f3sm28459106c88.9.2026.06.29.06.13.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Jun 2026 06:13: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= 93NO5nTkqSLKhLHTshorCnrOXtq4w0A1wRQSw+4IeFU=; b=KCUGljieLCsw5q1d aCjwO9XyZAKqEEuOKZxBW5Zn+MYVCC8tC1jW4e+PLy47LipD0Hjb8lbh2HfSHVDU sYeMhKLQM9cixAngY4M/gi1sqdPukK5Ar4qmF+bMJ1c4rPcerRL3l60nt10ofPXM LzoVutL9vdOzW1l224X2RA4FQyjH9pvj8VMKvS3qffdCW+i7rZGH9N3O16dVlZDo LUAJo60h5faudP/LJUU4qE28+yMjZ5DqvRKlA/C6Ip9VdfCEVfzBggky33pi8fQN tr5nUrse9bo5l5JS6pMTRi4b32sYerbBOTK7Gm0xD7SzBxFNhHOmN4rMxfiBNz7g tzZuZg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782738791; x=1783343591; 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=PEmQgH3/XtuJs9tuHtwyxX1zE4crV6BFsTBpKWEoTW/QRKy0+WUZPL+tPIgU3pibnc DMworxpx14A25pRw5IGXEjX5yv5xOPwLUQWMY67Dg5RcXxr+l/TB8uxTm1SiMbRm74SK rCWUdtHv7OK2qzPYHyp4VlWfP6KXYp+hEngmAGufZreE1M2ed2FaNnFbBH3sBr5vGDg4 T+R5hN4V8QAGdUVV3VVuv/aL19l2Tp5bAdx7RXHfcj8LYhkXQLIsFyrxdluVUeTJVe2z u1t2fvDm0KyghNDuRxvrkyEkT49G1liCtdpMJw1ks8qu2JpAbaWTDp7Bv9aL8QSG9TbM omDQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782738791; x=1783343591; 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=rrPQ4FTzhDHBC5cFryzKNn9dw9j6cD9nKbt+PYCu/BA2xYZBTuelyVeIqJWBEMHTEX yK+c1VCXwB8TXc3Ha0PRxlIMw5UuofQEuTCHXo0Jb3HAraObCHrmfJnOOntZ1xYGC0oW tvPcgRcIWF/TuXpKD2k6411aZJbmKCzmbiOcklXg2ajTmGu3EFqd8NJIJzjHakOwHV1Q onMnUceJM/skxkwp5ChSqVxOBkagCOFNLtMnpqzDejAa/O7UUnN80Izq6s/UM3bSk91f Kq880mJ1D5z90UHAYFXli589XycnJUCw+d6ii0+byT1LW5YTtUiPYdvCtS1QpNCdH2GD jeBA== X-Gm-Message-State: AOJu0YzAgOMXTq9Du3OpZjl+lD3WaeUY/hFrs3dldtBEbfFU1Pfy9Ck2 Lw0/xgPMXb7xLqZiFTscHtmWA9h1cZATHcUdYBtK66XHF2kIecFAs1QvVLpxO4vHEXZVmMq6feK QjTwNzv4EndowfTo/I7Q4ccCy/W1Z+/j/iQqYgeoHTbZ8SSl7tZQCSq0G483pt7zR6A== X-Gm-Gg: AfdE7cl0vGgOfpV+O3HT+g9Of5liuP4f6c+I0sMWlksIabs+ez4SDO8nNiVnHrI7+nJ ous/8XxO+QGm1HvNXPIWW2NuVpWApF9XIDHBfRCLQeZTnjejDUhKFxguQwUq76XItOIfGvS//pW w0UmtXBgdp9S5cZumIoL+up70bYv/iOGkl4jUr0oblwQIvmNJP0+iGOHuS0+w58AuDsTGHVGMCQ G9I77yJBOr9NtF7XC8jko2sdHLigpzjNNi+voTEf1LwCCOAZI9J8JV5gWaIiYX4QlToL6HQbOqa oUTZXBpXRDJSUXShL/Jzu5VyI8wJanucgQigLa0DISSLprHkx8+7Yme/DU2ODESvGvHuej+Tkh9 MgyT+Q+mG5rrMO740lQ2i/QWqRXN3yhoMNUQZ/Z8B0YxQSkEbRar5jHSNjGs= X-Received: by 2002:a05:7022:689a:b0:12d:de3e:cbfe with SMTP id a92af1059eb24-139dbb6146fmr13940894c88.37.1782738791029; Mon, 29 Jun 2026 06:13:11 -0700 (PDT) X-Received: by 2002:a05:7022:689a:b0:12d:de3e:cbfe with SMTP id a92af1059eb24-139dbb6146fmr13940873c88.37.1782738790484; Mon, 29 Jun 2026 06:13:10 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com, peter.maydell@linaro.org Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v5 20/77] target/hexagon: Add handlers for guest/sysreg r/w Date: Mon, 29 Jun 2026 06:11:35 -0700 Message-Id: <20260629131232.2487780-21-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629131232.2487780-1-brian.cain@oss.qualcomm.com> References: <20260629131232.2487780-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: AW1haW4tMjYwNjI5MDEwOSBTYWx0ZWRfX/gw3k3FSNvMj /4u0MlFyikd7sA8mUVVZ8Li/ZW46qQEeCB7XKDk0awVj7V56W8y9ZlnjsGVTgLXbESa0dVsTg+T vLvTHNXE5wb6zPXTmC5/0cQBY4gVSXY= X-Proofpoint-ORIG-GUID: rVjXrHrz_5U9-DUeQDk9wjkCeKizqDid X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDEwOSBTYWx0ZWRfX14lWLJqDtjlb Na9Ebp2lhJ3KYBDEXsUdeqawkGoWYDib5xkkG7gwkhx7c/BZHbAmCWAYQ/EkIXNsiyD37TkS+o/ 00QcHIJ201/bNUltg/yqdbSDU7q6Np0UBDsdMjdjhNttwm3o5SNxShMBQUrP5pAhcxuEjOrkzWa BikDwbkwgIeKu+uwDNuYrtMJd60Ycsmm0L2p0hk6u4cNnIE0jfc1iUBaKUgPZbxd+8ITCV/Wgod +yxe4VHuZBhM7Uule20756TcoQ67Q4VjJScXGcFThpSBHB4UfNoua/piZ3MSrZxT8qVj/NRrOH5 0zaqmG8q4Abwr8JwGDy/WtdFhRk77Ah51Qt+vNLRrp7KXnzSGyGzA8LXnINvhRYMhKtFeJWd/IK OO87GS1YycQkzrTc87QjRr7k0neFhoCP/C9ngZKpnnoF0S/bHzyEJ0E7f9WeqQtI2okmVbj5T/N yFEVXlCLalewwB9EDkA== X-Authority-Analysis: v=2.4 cv=NZzWEWD4 c=1 sm=1 tr=0 ts=6a426f67 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=YS0KV4ZxTOLzYV__0jkA:9 a=QEXdDO2ut3YA:10 a=bBxd6f-gb0O0v-kibOvt:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-GUID: rVjXrHrz_5U9-DUeQDk9wjkCeKizqDid 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-29_03,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 impostorscore=0 spamscore=0 adultscore=0 suspectscore=0 clxscore=1015 bulkscore=0 priorityscore=1501 malwarescore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290109 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782738814830158500 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 Thu Jul 2 10:18:31 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=1782738843; cv=none; d=zohomail.com; s=zohoarc; b=nd8EWGFdZXeGb4jYEJeE14ifSqWm1O+4WE+fiFb7o9yPKcNkTv29wrU5EimM8QEmwVVvfzIQQOn5z6+Mv6zdW2x+WRFtDJQxdhEIn89Cgcow60sTu94Thd9uo4Cb2P9r1abLOlfN7iXnsygNgyCY5uElZBDcH9l7h9JxvbJHOhI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782738843; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=BJ1sdy1YIFdhIUybvhHHkBfy6HR4zPiTsNpZ6S1GzPWnQOZFGENAJdAzTy1EGxvleD7J155W/XVRDJ/PH4geY+TM05c5gjKjO++/FI1WuwIv6ii7l+XOlGlKJ+YUnF4VYcbnjNrPpxzOY6sjQuI5IP5OVJ8EfB1ZnwHRS1z38UM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782738843077382.0895561158145; Mon, 29 Jun 2026 06:14:03 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1weBnj-0004fI-72; Mon, 29 Jun 2026 09:13: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 1weBni-0004eq-9q for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:13:26 -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 1weBng-0003Cx-NU for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:13:26 -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 65TATKEp2656157 for ; Mon, 29 Jun 2026 13:13:14 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 4f3np7gxst-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 13:13:13 +0000 (GMT) Received: by mail-dl1-f70.google.com with SMTP id a92af1059eb24-13b0686d13eso1426872c88.1 for ; Mon, 29 Jun 2026 06:13: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 a92af1059eb24-139e78317f3sm28459106c88.9.2026.06.29.06.13.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Jun 2026 06:13: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= wO8Hpccix22tZFHgyU0VgMmMK7ZQOufSmnr3QdC9JmM=; b=SlVyx8cQZugShJxN cBZCMKLuSQggvAoTev/7z6zCwCfpK2OsDaQ0sAiSjSqK3PseJGU6Qv6aL4ttzYbF FhY44x1v7DOg9GG6w4X3Qr6rhrx/OfAjv9+jODvm5w02xdMgWQ1eH/O4Tli8AKbF 9yAInxnAHuhnlVJbpPJ6FIlq0j9tjCprj8kT9ESpmrOxpGFslkwFbIU3kXt6PDV0 2rTy//F/Usc7MC/g2GsLu8wo7p7s6g70JNpSkFZxcbRfu68/ZV4nMaOE7qxKz1Xx QgLP92RhzJlLodwkVq0XHLrFtaxcfZODAshEcE4CY3pxkkZ68h6lB6iyRxzbnFzZ 35gleQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782738793; x=1783343593; 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=AMB784grxGIIHbZGh2kXHODkABBz1TfD9h0hR0An+axAdGhcW4o3RSlqfB5ZI/5mbL DcA0XvEn4RZ13ynXaf92OuqXHmrbtoz6CmLEvB6d2CTjGW/N6dj5vcZItSwR0kesF5Vm dakZU/rlvKntkQzY6XJzFpdiQsQj0KMFetSHoKkIRBDmpERkp2OCBU+a+RuEFnzmfwPr vZ+VYrpI8rkcWbeN6iiI6bcGrXA23zgT7jsDKclZibbmtM/lhu9sYy6YvF61erc/cEGh f+liSBjYYrLC/0ifkCsl89hDGKzTs7QUO6LEOeXC7SlS+Z/K/sW4Aa0kagsWt3JLMkrA Nj4g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782738793; x=1783343593; 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=Cn7swCTwvmTzLA8SRYtMOtITvwWLWxRYojVOtdFZTVEfhlPEftCQZ+M+E+evtVayP3 woXfnEAmYMqCx26+I9oF2A/hRM87xCHto6X/hPCOvlJ9U9vT+lMEc9Gb/pJ+q9XDfY57 4zrJG0fNwulhIF/5aW+2t2e1HJ0WFqe7CnKMEb+Lhgl86v5FFSIyhwS5afS/OzTDvOYg zY0OYL3SwyvzMCOKXW15TpY7mOjwNXm79StZaWcw8r08O5tqJo8EBpVdmLVu5dqmKGGZ Y8BnM8bzoFudS+d/csmXQLw41vr0agQHwu0G1hwYt4EZzahgVOhSSGNtC8HPUscBocPC v8xA== X-Gm-Message-State: AOJu0YwzLJxfhFEtnAg3i0hW6dCUlGMf5siE1YnHp0GqckOB5BghsFii rFm++OBYcxvtV2OBJkbrPhN61EoRgaQuUsuxuy29gI0nQkbi2S6iX6rJnF7u+65WAOjQu7/W2lX M5RGdczMuf57c5dzUkTIRRS8uzne4PEa3shVpfBWvNczrlwFCyglMZgCEDs8tJi3ENg== X-Gm-Gg: AfdE7ck3iM850KFOJZHheAHnw/2PnqC0RPsUjeaRQ0h/1CTYHKIdKLX4A1TuZKkx4L7 EUrpAGFPFld3PW+mLlao1jz9tffvE6k5RKpoHz/YGU35sMQFdOpwax1/LDB4MmoBoWxIPI79eKx ENMX3yUU0Rl4ZxXN0e4fq+wpeMXU5fhoUCIvMosIiJ4XKGtcDHqPzTCcDaRs0/YnczEJeoBCaAW 70pAn535cYy4Kpcz5lW0sAcVm/TrX5sN7rOzKh8dOOraWL8chBz+N7M6DrwBVkqY585NAVjd44k lvSF5k0+oflbUWhQlitv3JJk4/TfVqMd4EEhkfeMm/+Jlypa0JG0u6yFJ2KbYWGGpGn6WbtsXHA 2ab7YKNpRhpktphc6YsXj5fZ2XbP/40/hwautqWhQDV7REuotRQYVbbkXHGo= X-Received: by 2002:a05:7022:60a1:b0:13a:225:e191 with SMTP id a92af1059eb24-13b2271d3a7mr432311c88.41.1782738792763; Mon, 29 Jun 2026 06:13:12 -0700 (PDT) X-Received: by 2002:a05:7022:60a1:b0:13a:225:e191 with SMTP id a92af1059eb24-13b2271d3a7mr432287c88.41.1782738792126; Mon, 29 Jun 2026 06:13:12 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com, peter.maydell@linaro.org Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v5 21/77] target/hexagon: Add placeholder greg/sreg r/w helpers Date: Mon, 29 Jun 2026 06:11:36 -0700 Message-Id: <20260629131232.2487780-22-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629131232.2487780-1-brian.cain@oss.qualcomm.com> References: <20260629131232.2487780-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: AW1haW4tMjYwNjI5MDEwOSBTYWx0ZWRfX27zhxcUjMDY+ ZakQx81l7QbgxLc/GbYH92n3/3XxgqOAJbAS2dPprpaLdUfJp4+L4XUGYsj9Q64wMM9hthn50Tz 110x9BqJ7LEOrNTqXaKa/efhQd1AKz/QCI94ogUNGwJA8yO2Vw0UnywwSmQFTOIidKe5pJ/qgxV lzyj6J7G/1RwkPdE4h2duNhMPRaljFz230Wu0sTu1aNkwq1ZEo7MVgHUkwEo9R4cjZHFFQiEkYx 5oXhKzSL4zjwAniE6ZI15pSpkzq9x24qbQ6KcFYy6UqJpv+aTLDJ6LuJAVYcsXwcFiLBtitFLDr 1KXHJ8xl+Xhhds6+QbRv7nlpqfHt2nGixueixolXEIf5wrsdFAVlADiq14KKqxmZNzPGK+WCBez I7BZiamscOChA/8c5AQRUp0A20whkXz/8h4EY9N/VUMKwxnFmknBBGvw76MBWVrTQ8lqpKC/wl5 DNQIPgO2ijD5elEBjTA== X-Proofpoint-GUID: r0hl-_IUvnEJeyfADWmTm1OUzMpiZ0B1 X-Proofpoint-ORIG-GUID: r0hl-_IUvnEJeyfADWmTm1OUzMpiZ0B1 X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI5MDEwOSBTYWx0ZWRfX5SjvqJeEHvuE rzLpj1G72opmaOQMWpev2Y1GZl9LE+eNWTglZvOpTbKApMvfDykp1fEGHET0/caThJSKAwQfOZ2 Oy/35WFIlqqYLsbkZpKv+yMP1/9bSpw= X-Authority-Analysis: v=2.4 cv=OcWoyBTY c=1 sm=1 tr=0 ts=6a426f69 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=_glEPmIy2e8OvE2BGh3C:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=wA0rHRt5QP8iJxr38i8A:9 a=QEXdDO2ut3YA:10 a=Kq8ClHjjuc5pcCNDwlU0:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-29_03,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 adultscore=0 spamscore=0 clxscore=1015 phishscore=0 bulkscore=0 suspectscore=0 impostorscore=0 malwarescore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290109 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782738845940158500 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 Thu Jul 2 10:18:31 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=1782739205; cv=none; d=zohomail.com; s=zohoarc; b=SaiKbyr0ZIX3jELBK7tWCZQo4Pq+JXu6bVpatkseZueiA2T1LbfY5DIaj0DJiHFULAbc+RWHczKDvIF2s66RZqpzOqPXHkZEAnXA8dlvfrkhVuzDN8t01Xv58/DRzJ6fJWHVr3VuAKBFWiktfwyG6VgG7CimArspKREs5DKEwGE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782739205; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=W7DQJ4Ls4fAqedX4zLEn95kHN8G6RQZP6iJogPmUJZ5pvq71xx738xKYktI/vVvUoJicXDF8P7DSnPRQRGWKQYqCwd5WjATrH5RbLzFKv9i5uy9boZz0yz6lqlXQ+uA4KyGLznt3CXELN61QFLjFob8RiGNon1kBQj8ccuhO3GY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782739205409993.2634040587654; Mon, 29 Jun 2026 06:20:05 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1weBnl-0004iD-BE; Mon, 29 Jun 2026 09:13:29 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1weBnj-0004g0-Mf for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:13:27 -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 1weBni-0003D9-2M for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:13:27 -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 65TAT4tY2627852 for ; Mon, 29 Jun 2026 13:13:15 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 4f3nbgs197-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 13:13:15 +0000 (GMT) Received: by mail-dl1-f70.google.com with SMTP id a92af1059eb24-139af2bd2c8so5629563c88.0 for ; Mon, 29 Jun 2026 06:13: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 a92af1059eb24-139e78317f3sm28459106c88.9.2026.06.29.06.13.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Jun 2026 06:13:12 -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=Ty r3de0iNQmwbPzKC3Ib+cYDMNvYzKWSK9M5mQ/+PlbEqRaBf7paw2KA40PUMlleej qslwzosYj1GQvaXUNlqhfGqMStRS5+EqubZTMvL/eIfqgdmbD5BHthtqvO3XzZRs K2Wj9/rFjMxOPGpt0f4wLXXGd40MjlahQSNY+qLjo47iTkNCo6a1ytp2rRSLZ/yW oupE9RlPw1dpuRlB2Gcum6UqywpWoan2N/ouEPyvusoQ+VzFoChT/mw2RONv7BRl COX5IN90WrqKbKWhzlYmiwJ/8KXr/dyJjGqDWEzfK/sk1n4WPrM8xZ6sIHWELlOb F7nVaREITBISEEzR8EQA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782738794; x=1783343594; 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=dI7bnpdMxvN0/B+dqah0DsUmXglCcJ9GfkkTAEGNbnxh51qv/MXKS8OylzAnzmWS+6 RF/ZMBGv8JOYGK4K5tQ1juzHiLTym94ZwJGqk8f647vurS0d155NgSe7FFdwoVBmQpDR AFA5ynFuN3nBAY3leImQfbaapzBuc5M3exrU6fv9TqAJddnJGHyYdZxhpUOhOPfiwzvC 394ey12n0r1lTyAsADtoqe4Fy3xbn0onywjEc6utCYlJYgnPDjK6zk0/OeKZd2qQQD5U BIqIX3tibxsA6DiEUZD4TQ/n9A9+AGlf1KedpqVvoyBF1Cpta3rgScq8gSrvn5eZqypN yG/Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782738794; x=1783343594; 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=BWQJmzrAfbZTJSaM84zYF40j9Qtr3IrMXQrEaK8ZAyYXMOVwJnMb3H8Z2aFvuz1O6A RPTdydlL60hxGBYLK3qqhx61zPg99tqlN3jpdHGuzXaMrh09pDh9bloWHEpCzsLA4oTL rzpX8TNk+Ftd87KOSbh38gjqEEOIo8BAE71HgD2M2pQAgvs7bPOocDuxbZPV2Lo7mrER k2U42rSqe4HsLhzTKMaUtTPdbV/SaYDRnFsMnti19DHX0Hmt4wvGjP+298438W/CcRUM XJcEukqiRtBeEetaRjDsi2v48w8ZVXPAqL6Hvjwok6C83A5IZFMbH/fRJVR9kHaFYx0f emAA== X-Gm-Message-State: AOJu0YyZMwfbqSVxEqwbv89qsvN+nkD54e2R7Ypurtl/GWoGjvhk5phv oSwghUSKLpkxO9Ewgb+7bGJhjimdW2VcqylkOa98KV8wZTBWFsQbWAsBLsdZwaqMuGdILXo/His OEw/oxxVg0ipJ0BM1lMv9nrG/lP2pLOFA0ZERZkdAg99SOA28uZkQR8YMM8hph5tF+w== X-Gm-Gg: AfdE7clHb0k0NnXLSNyAOdIBQN6PmNiDtI8HYwUuU4DqBnhI01pp73+jGuj/COGc5ZX NVRZHDmx2TkqKJgjRkfPTdVVox3jFwmMFkWn0IP4Dd35fuM3EdFrhGQ5GISCc25tLMEzAWfExIl 9j6MkGPKDvv8IrmHcva6KPsNWrMKhRKkzqEyH6D4Btgx+yl2n5rsIJcnUMs+aQHPbTN3p1V+wo9 nkZ+ecsGW/hSxda1Qct4vq16GfDqyx6hVBa9wpvCMeBRDNPjCf1C3E2+p/TOblsAyqNCwLq57gr 4tkum/gSCXLGKWjxpKrOYmqSFzeTV73fsQ7bH6dj0OvKDHgEcnP8XtFygmTP/E4gC2K+P0igjbX e8gqs2DCLfGiLqAfM4fhfn+N2x9Q0qR9qhXI48dlFc0rO/gNBuQVSiPm5SMo= X-Received: by 2002:a05:7022:e998:b0:139:ed5d:7564 with SMTP id a92af1059eb24-13b22730539mr383692c88.43.1782738794070; Mon, 29 Jun 2026 06:13:14 -0700 (PDT) X-Received: by 2002:a05:7022:e998:b0:139:ed5d:7564 with SMTP id a92af1059eb24-13b22730539mr383666c88.43.1782738793525; Mon, 29 Jun 2026 06:13:13 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com, peter.maydell@linaro.org Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Richard Henderson , Pierrick Bouvier Subject: [PULL v5 22/77] target/hexagon: Add vmstate representation Date: Mon, 29 Jun 2026 06:11:37 -0700 Message-Id: <20260629131232.2487780-23-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629131232.2487780-1-brian.cain@oss.qualcomm.com> References: <20260629131232.2487780-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-ORIG-GUID: aQ7CguCJAM9egE0J9lSWvEZAZoPifV8y X-Authority-Analysis: v=2.4 cv=Z4Hc2nRA c=1 sm=1 tr=0 ts=6a426f6b 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=gowsoOTTUOVcmtlkKump:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=KKAkSRfTAAAA:8 a=EUspDBNiAAAA:8 a=pDBHowQsxXgegazyqkAA:9 a=QEXdDO2ut3YA:10 a=Kq8ClHjjuc5pcCNDwlU0:22 a=TjNXssC_j7lpFel5tvFf:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI5MDEwOSBTYWx0ZWRfX/OUn7/p6SC3Y 43lCMI1Yb0Hm3RnYTMKZblY8B9yRtbjyw9b2rA9vfNmLTcB7LE7pc0/Fa7OCWo9sSZixndulUpr 4Mq8HhCb/ZUvZOnjmrrTP2yw65ugIbU= X-Proofpoint-GUID: aQ7CguCJAM9egE0J9lSWvEZAZoPifV8y X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDEwOSBTYWx0ZWRfX8AG7gtUG0yxk dI0hDenj+KRlTXGD+kT63PJEU9CUJEgY9XCnALTF0XepmfqjSgmAKcnl+g7PBFDtS+7Lgat3/YM D1+0iqoN8+x8dL32xuQuOsGptnfKT17lm9aU2/SAXtB3+ayvHuKZ5y1drKeUbSiZrV1CPw+Dsdc 138vxicdSZWVrDsc520FVNiZY2EtUkJQAU1Eq7m32vS6NAfbt/kasZ8LbGfjcZ03lrdcp93MQ0t iXWgi2dwRCZ5DaSNlRM2c6kDdbPJhML1PRS3oFTb6nnKKK8TnZPdgz87DsP15NpgobM+grdqF49 /AVm8MiV5HbpBiD29rP5x9JznUf4K3xRTfOjPBzDA/6I8NXbmEL/G0juuhnT+B7TL6cH/EKiRxS rZNCdC9zM5i/IDz9vAJhXVhUFYjCVNXTOdcFeT8z34T8F6kxS1ZFgOeseVUlIPTMWmEegC9VDlQ QLG2gMw+mpWInEyOXtw== 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-29_03,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 suspectscore=0 lowpriorityscore=0 priorityscore=1501 bulkscore=0 spamscore=0 impostorscore=0 phishscore=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-2606290109 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782739205682158500 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 Thu Jul 2 10:18:31 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=1782739140; cv=none; d=zohomail.com; s=zohoarc; b=iI4syGmCkD05MHnzKrwOr1KFc0cFlWD2udGOK9GEWxR/sF4nh3+qfJRIum+zS2+BfpQ6VxPqc/SImOGY7+n/urZtisfXeVgdMdXXRZ91Xji+X8Fyo6yYyKg/wBcFu6tXeXdKbttFGI0+V9K07Y8TSXMUxnlWd7b+Qj6Xc83To6Y= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782739140; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=lsfAEiy6h7g40d39SOGcdO7n0AYTucl51cdkBufQkZPdrqV62NoXSfOp5t1kxNnY1J3WumPXudoxHoAQVc+y/om1SonEbjH4Zygh34ce7hzkNwFosZJ1/fyCkN3Wjlk4YveAVPXrMLxM5HPHxAODq3gS0gN4YiQ1bSh5YofS2Vo= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782739140606354.01999478335404; Mon, 29 Jun 2026 06:19:00 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1weBnd-0004cP-8y; Mon, 29 Jun 2026 09:13: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 1weBnb-0004bR-2y for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:13:19 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1weBnZ-0003DZ-Id for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:13:18 -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 65TASuMq2640872 for ; Mon, 29 Jun 2026 13:13:16 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 4f3n5s1433-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 13:13:16 +0000 (GMT) Received: by mail-dl1-f70.google.com with SMTP id a92af1059eb24-138acbc0e69so16085131c88.0 for ; Mon, 29 Jun 2026 06:13: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 a92af1059eb24-139e78317f3sm28459106c88.9.2026.06.29.06.13.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Jun 2026 06:13: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= YSGjopxVE+rdAilYCXMYF1ogegIN4PeOYEB5C/MYTiE=; b=JPRRK4+UrF+l/Rne Uw7Hc8GQ+DJfv2hajX6xsdkm5+kF/sUP1cv8+YOnYJsiQKHlGjRB5kuCw/D4RMK0 V/G7PYv+XYOFToKBymsxHrHYBiRARBF6QHzrEQbXAhlfzaeImr2CqzYOlSUd5ERJ J4Kq0Ehf6oqPy0L6GqQqKuCr1++Hin8krFTlagbxgUNzecIBAT1VspYRyWa3ZIId I5jVPJExOczAM+8vWAy0eqbL6at5ihgXgFdoupvrWZnxehoWpI3JQBDXRS4RJX3g GlNO6vpt5bL5msOBsb8BlziPZM81Jl43y9kBkOyjlyM9ovdhB/yhHanHQukASfGE 7KH6Kw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782738795; x=1783343595; 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=C9U2Ry1SlhHjhg3y0i6dhNHKX4qLFPgceIT4a1sIqKV7g0D+3+SDnYE5EOQbVNixFX Y0f4gX0Xj5100GpFYSzexWIYtKcp4ABoE3VFL7f6+q42iy+iBwtZbr3RGOyl81PeCFvI YJCfju+lck/qlcMN+n/qxfmLV8IRczr9qRFwSjKet0tmi0QCTrppYeBRUdsyo+Sqz/i+ /UnHNMEcnzgjT6Vi4yrJwmccWhs5ssDPHGrnKaSjWvpZqFkH5INh9d8BEFNTB+b71pzc JKU/7f7alyiJxPCF1S2f5fTcai8v/nefNt5V7mU/Grpen3BgQTo1VTd3sF3i4oY8bQyu OuFw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782738795; x=1783343595; 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=XAuSzSj4/P/R1+sccVArKZ0118YVYKNswfiSco4Ey/5BVX3WDlJkngz88GXwncu2k3 7Mc45RLoKMuAg3WEwka1K0XCrGQ0FZrD6sa9FEyGzc5UC2U5CnqRZ3oZ2JwEiV0Qm1CA VHz5ZDVnXUBka8lpNEkMuj53aSL1QH+ltyj1aZwpAk5x0i6CzxoD+QXkjsFogAh6WcO8 9fg6N0sYqxeqOkBSK3IPMS8YYzjdcu/b9zO55Vys7kr2ZGbRGe+VqyexvJAu7Hr3EURP 4Is42VB4wEDgOco7V9ENZEaTpTFqRAjkqzPZQXqX+DXAhxaSe/1TrZ66HqvJcsOGGVc7 LqIg== X-Gm-Message-State: AOJu0YyRqxsK8C3Jag2dH1eqBqpqKYeVz7jozdDf8R9OSh4Gz1yIwf2/ WHGYRiDola+04RtiWO8tjK4EqxQ1tTITq0d8kt6WxHhpQYBjirJ8PLgdRglF/yhvVK6O4CfY2TW jPwLgyaMqL3vpc61U+5OACMfPj/wmUp80P2TeKNGCOFTQoZwBrjb46XOAfNtWxtt80w== X-Gm-Gg: AfdE7clYCbeR4OFpv5LhaEdhNWkEr/Xm/WVFo26vJXacgIOOzblRYu9hc8talgR3UpT g1cEQW+HMIYCyGP2MXoEhzeS6CjL6g7HrVQ5t7UmOVh512XgCw4y4LFH4wh6LbMDK111s7FdURa kmNXsE7woorTLItH/lb9Mm4PNMOibWcaclKoPqzZnl5unojTLMLYjEW4/4agPgxY9FpMYlWgpVd HdOm0wkXZ+VCTQk8gW9zPYv/EJ6cz77QflntKJvOD4g3Y4ex0ePA8ayBmou9niWSKiiQsEh8BcJ +vdKkg0Ce3bLQv9Bxh6A5u44QXoYWGuWw2CwcpRuukVovoBtuXHp5Fu1IMO+euDdFsxkoUBZ35W 5HeF7rlfKcPeGr4rS4WWXaCyG5yTGCB9B++S6h/sqbqr1lSNClWlkJlMKgLo= X-Received: by 2002:a05:7022:f85:b0:139:d923:f8f7 with SMTP id a92af1059eb24-139eb131a68mr11196963c88.4.1782738795558; Mon, 29 Jun 2026 06:13:15 -0700 (PDT) X-Received: by 2002:a05:7022:f85:b0:139:d923:f8f7 with SMTP id a92af1059eb24-139eb131a68mr11196934c88.4.1782738794974; Mon, 29 Jun 2026 06:13:14 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com, peter.maydell@linaro.org Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v5 23/77] target/hexagon: Make A_PRIV, "J2_trap*" insts need_env() Date: Mon, 29 Jun 2026 06:11:38 -0700 Message-Id: <20260629131232.2487780-24-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629131232.2487780-1-brian.cain@oss.qualcomm.com> References: <20260629131232.2487780-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: AW1haW4tMjYwNjI5MDEwOSBTYWx0ZWRfX4IMp0sCwtKi7 j7Fz9zUA/k7P8+WthUlN5ShMiyVNBccvPs+q4CXCNVui4JRymUaczm99f0ogS33PgHNs6U+aws0 MjR7mCQX2YJvFyWSLk6TnVTeDni+oHA= X-Proofpoint-ORIG-GUID: xfjXwftVd6DSPnTqIu1FRWswrXiwm6r1 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDEwOSBTYWx0ZWRfX4ET2mRiVDCql B2k8QVGmlDeElOTYvOdNZSfCKcC9q6o3FHR/SiBDfLzEDgNkwcHLTFPsu7DfhAYbmCHxQo9o58z tIXrb57k75BTOWb4h7FGDeMXUJvYgWz5cFniGH74XGq4hz/sg3Ehvh+LgEBHOslZU04WJmCtJfz NbsKSde25TTxqI+7oDvhh3PStUn6SnHmV5PSXf1H7OiaQe/kRtBb/dortX/sq5iFsLqHijOo/C4 PKXJ9mq80n50lvQr68ti+oQmnxNh1vy26Ya2NS8QnpwiNfyIz7g9HUvE55ZZplymgS6YZOX9Xvy s8JXmrTOJRUnD+UPc5yl+mUUmvmRxOju600KPeBk95FuRaNDdrydX0hPkeLMt3nRGZJ7+S6LIha agcXWCmOLd0vCVaFh72u+VG0OWH7x5B0MG9W/TzXjNDaVI4Xj1yZdyajUHHY/H8PXABbPUkeKqs mwflgd7nbUDEgGpByuA== X-Authority-Analysis: v=2.4 cv=NZzWEWD4 c=1 sm=1 tr=0 ts=6a426f6c cx=c_pps a=SvEPeNj+VMjHSW//kvnxuw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=eoimf2acIAo5FJnRuUoq:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=923NME1-z-asBZaYXDoA:9 a=QEXdDO2ut3YA:10 a=Kq8ClHjjuc5pcCNDwlU0:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-GUID: xfjXwftVd6DSPnTqIu1FRWswrXiwm6r1 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-29_03,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 impostorscore=0 spamscore=0 adultscore=0 suspectscore=0 clxscore=1015 bulkscore=0 priorityscore=1501 malwarescore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290109 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782739141163158500 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 Thu Jul 2 10:18:31 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=1782739177; cv=none; d=zohomail.com; s=zohoarc; b=QkeKyxB0RTlDo9sbQrCvRsM8X+yzeAPyg9HjNFCbJuthWa8nmqRCRuwY8KqG0s1TWI3jvYvG5ONIjsaAZVM6DPco/I0RWGtMncXGfR0oCFyvfKtHIR2frKVEPb7jBFN3grwu5epxI0FrmapHlarG1TFjTAnCDkryyIwkGxDaHdk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782739177; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=PH++3slqV5ZyOCjgqogmwRYMDayuwuDHz4hf2UVJ06mztvUquYH1WJSWCCp+RfQowA3n+nTIZ9nwewV1rbICmuuveYvLPCr2Bjf5cO2JTRM3nTt9loLEXR+yTFBOJMA8KweNiyY7QoIiIfpitvdZ8fpR16UEQNOXEMvht2+eOQY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782739177175650.0606418496951; Mon, 29 Jun 2026 06: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 1weBnf-0004dr-Nk; Mon, 29 Jun 2026 09:13: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 1weBnd-0004cR-KT for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:13:21 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1weBnb-0003E7-PC for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:13:21 -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 65TAT3iZ2646903 for ; Mon, 29 Jun 2026 13:13:18 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 4f3m4tsdm9-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 13:13:17 +0000 (GMT) Received: by mail-dl1-f72.google.com with SMTP id a92af1059eb24-139b70ca7e5so6898456c88.1 for ; Mon, 29 Jun 2026 06:13: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 a92af1059eb24-139e78317f3sm28459106c88.9.2026.06.29.06.13.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Jun 2026 06:13: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= gR7dx5FAHey0hvTHweaG0/Fx4UXE1mDGyZgCKofpSwQ=; b=pZk5bmI+VVWLnshr oDlq2EPCxDeiAxEzpFAKcgaTW8peGQqt59TPrI3ZAui3r3gLZCoszHepDn+AI2cB 5PX4UlIk/wiSWiuJItE34ci92Ap56jbHlrO6PO3bia12OEL+Q9UQnR4f42OPt4Y1 M/e8uUvC25nqsiFfOQl/6wCf3DF6X2l2gSVHSyR19MOKpqwspSghoW6rpgRYmYzJ UM6k0H2vCLHZaBY069IzZZGaI6IY/xiYQRaKDCxtnsXvugPfGX8GHgtEHh78FIa0 3vrssshsTtVaxdzaVo5Rvj+CEUmkw9H/jZ8P9hCltMZmK4nqGt+0nT5mtan+HgW9 XUDLLg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782738797; x=1783343597; 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=jWV/lohUk6BY+Z+/rVoZGWQq7l30UusxK2iU3x0G2+u/GGnNx6o49TuDNfzPvCfhNe ERf4SVInQ/UgdGD8/VjtP8DMe4dEibtD2LnS8yevThqfP/HpsqLmjWtoOixB5p9wALUZ iZf9wSrkvNKahlOZPOZBKxfON2avJGcO+e4kOFlRxKWnKdP+ivUUquxyDPq9DFxd4JrY 7yvBasTcfsqWN+LHpZKUM4ruj90cvyMli7GwdAUdXIt8ATYYtFkd9QtphkchspNYozZw DFlhz4UQgzNwQzHng3F1pARCjnOMGpdEuPUqR4+B6mwwecrAFfBTJ4uh4mrMNyqKTK3P kSLg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782738797; x=1783343597; 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=Yg/1zVJMgEUE35m04XCje2lvDXt/jRo5JRpxgXSp67H1QOHcQyEJC37r1IQvYEj/RS 1A2Mq9Di7/l8vCV6SsGM0dLTXv+bOrmRUTS0gTpM/aEF4Y8+xM2SuA6j/+kynpXdajm0 2zz6GgO8sfFB1Lq1/bFf+f6DLCAM28geovI4MNSipSoCrpT4s0atCHVW/hzLjwIMY3Wy oElcgLCQAsKxnVSWejt+IgsC3932ImdxdWi1Gon0FSMImc8QYGErEZErNWtCjokB8Ez8 WFQNhP9ANgXwNFaKdBueBT1s4olhy4gCFNTY0rosOetzJvTKbrIeU99oGxj2Ac/Ng5EB 84eQ== X-Gm-Message-State: AOJu0Yw1RFUGLWomy77DG+QHgPr6/3KZlnWpQVa8ocZLvXd8BX5VQ3hz c73RuBr28bT5QPIYz/bjIIqUjXkvbyoWNvmiHiV1mot2YGX1v1+ahhpPNrr+OzC2j9sZ9B1H4xl aJAaWXvtHlHL2XSN1j+LQnBk8+zkMLOm1jgX9Opn0yOsrKCDCNZl7s4Y5032nQgI6Ng== X-Gm-Gg: AfdE7ckM/z5XXxU90C7Z9n6+ebcxOLrLnKrti89kcPx06iMmr44x1dwUSNGrDJIcs0p aavJE4XD689gZijHQJILqMKh8XxrIAmzLOxJVv/m8wy4aahKvKgPgE8xnbWd9K2fj6xr7n4wsZ8 /iee5lHZ+cKp7y2B5aYKN/dYhoFzxhbUBZofendMHnrPRnNmH8lv9RJsZw5z/LFbQpz5TvlVp+U kPYj3zNhV4upMVxRUqbkcfQvvJCSEkQ4TVjdwy5OzcIwfuDc0EeKcINJpUe4Op7fjg0kY5nhIyv 8LDx51RXSYmbQlTj+oK8Er9BtaPPXZBORHVD8Pu6+1aL+/FV9xQKxn04qZxUFZSr4ZoV1IebIbo NSu68w+WDLccu8vDhS2g9w7ZwEjhR5bLVZBgkIwZAapIioGm7zc0LuSPCaZ4= X-Received: by 2002:a05:7022:69e:b0:136:b67e:93e6 with SMTP id a92af1059eb24-139dbac9d7amr12990994c88.37.1782738797297; Mon, 29 Jun 2026 06:13:17 -0700 (PDT) X-Received: by 2002:a05:7022:69e:b0:136:b67e:93e6 with SMTP id a92af1059eb24-139dbac9d7amr12990968c88.37.1782738796581; Mon, 29 Jun 2026 06:13:16 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com, peter.maydell@linaro.org Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v5 24/77] target/hexagon: Define register fields for system regs Date: Mon, 29 Jun 2026 06:11:39 -0700 Message-Id: <20260629131232.2487780-25-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629131232.2487780-1-brian.cain@oss.qualcomm.com> References: <20260629131232.2487780-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: AW1haW4tMjYwNjI5MDEwOSBTYWx0ZWRfX6j2e6Vgs0O2x ppi3Rb+a403r17Gtf39goMOy6ddtubBYpgrjiGjF3/cj0XHQ+weZPXLQ5GRXpK6MDJHOTxKtayb fFQiUduE03Y1rMB5NKic1g+Z3aCy3JhUy/CIXZeFVEWEEAyhDTqlqm7ld+GUM+Wr3IWuSWYr3S6 o+dt3QDk8dvnhtxn++M1IHWBpsJxXI3tS8CCoFL3q9pf4SrHqRf3wXEP4oIzPpsgKZ5NObbA3Su tfQHIcQwFBbNtxevxT/TWGGFXC8fP+SqZHe7vbvpuszztJGXKab8i44xshSHoIKqvaKpc3Oa+N1 fv9e/Vnej5sHJfLkYMx3lPARMflXNO0Rufe76qn9VixxtLUPcZnrp9a9IT+VfcZFjUTBop4awvY JH9e9gBzv2KkYSDku04BdigQh9n0jHlABuxoFZ1pJphIYw+CANhm0WXDWLInFzgLya4Z1igqcLC xky/4R/nkJPrOTtQvow== X-Authority-Analysis: v=2.4 cv=R58z39RX c=1 sm=1 tr=0 ts=6a426f6d 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=Um2Pa8k9VHT-vaBCBUpS:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=mmKuwxttERDeH49ycpoA:9 a=QEXdDO2ut3YA:10 a=vBUdepa8ALXHeOFLBtFW:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI5MDEwOSBTYWx0ZWRfX/lVWhsad3JVo p0YfqD99usP+X1VEbd6n+ktFcUEg9ikOjxhq5vIH7MCm7h5o6HkqSJmS+8j25rv04Rar67nT04P 1zY1JT6ft8oAtt21p8jMHwfdlMp/LmI= X-Proofpoint-ORIG-GUID: XZwpFlNnGmsYZ4F10w2CjIyqfysdvhe0 X-Proofpoint-GUID: XZwpFlNnGmsYZ4F10w2CjIyqfysdvhe0 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-29_03,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 spamscore=0 suspectscore=0 phishscore=0 clxscore=1015 adultscore=0 malwarescore=0 priorityscore=1501 bulkscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290109 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, UPPERCASE_50_75=0.008 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782739177454158500 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 Thu Jul 2 10:18:31 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=1782739150; cv=none; d=zohomail.com; s=zohoarc; b=fOqZjOuQKbok4eQzNChcgL3Xa3XnD+KW4edUsfCcf3s/aFlX3hNaukKvRyPC2C1jNLK9kRBVBcHKuQTadKJWKJGgt2XbczWujS4NnjKUC+x9N0U/rAGUJL2TfT8YUa1v4hN633pzu4bMSI4rWNMXRfhB0J36ihzI+zzAIUTZi6c= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782739150; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=JvxvqQA6NzwFPp6bYqGTdEMMi13+TQrQwiSYxCVs/pM95RnjmVA2b7jDNliqLEXHn+/YKst0kexVv6MxoNYJQskSMMBJb5IK6SB8n6+z3EooFAlk8j8jv3rmmI+kvFj0vKzhMJxGWDobSHahEBFLJwsaTi0pWtruxW1zMmLeGs4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782739150641271.91238623518257; Mon, 29 Jun 2026 06:19:10 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1weBng-0004eN-Rh; Mon, 29 Jun 2026 09:13: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 1weBne-0004dI-Qq for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:13:22 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1weBnc-0003EN-Ot for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:13:22 -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 65TATSL62579625 for ; Mon, 29 Jun 2026 13:13:19 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 4f3kp7hfrj-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 13:13:19 +0000 (GMT) Received: by mail-dl1-f72.google.com with SMTP id a92af1059eb24-139c6673856so5196847c88.0 for ; Mon, 29 Jun 2026 06:13: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 a92af1059eb24-139e78317f3sm28459106c88.9.2026.06.29.06.13.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Jun 2026 06:13:17 -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=T5 1VIIVv6jKW55w0i8eNodrEcBpDDaFCBlhB1vr5CikZQx7uVsDssOVurgtHTMMgda AOrhap67sfuAdc+XdhZ9fYstavobYRW5hgpP/cdtcm1HanCeDkRtejKSpL8JNs2e Civy9XLzoEGKVRUN+quA6XOpf+SQype6JwGK3Qq5bLjA3QClsUels/IXpQgTFChV bVGvFpn/Evcjr8ARqelhouYHM3JqcYv41C0ThxcWCsruo5kGkGNuSFvFycYBshG7 ea2csnM3y8u41m6B2+5hA41MYTKPeuo5pBr5ZMEkJpEU60UQGULT8fnD9dZfRIUQ HJ9VC1hBiPoQJp5K/NNg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782738799; x=1783343599; 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=ULWNXk7gQ2BsxNQR3vvwgub/T9FySHYKgfuFvL8f7Wum7t5PAthwNZSjuH9KOCUcHP 2aajVFHZrImBedZbD/sAjYx4XOE7xyMaUvHB/djP8pBWpzBgzpkOoCZh6OWnRZRG6xxG 1H4SYDDyiZErHs2o52ElCKeiQ7hu6CG0ihTsMaTU27yv3cKkgj8acegXSzpFmNONZjkM HPmQBH+FEOVsmYip5JnW+PRcayXyHq1b3uHKxfKNotipmGf19a4QsTBMrayKU/2ToFmA LK0qhpvpqD96FIz2bd+b8tghSAvUtni9qnRipmATR4ThA9qiKoEp4Mqz2rwH1oL752wK S3FQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782738799; x=1783343599; 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=n2+8OEBLmCF/Ud1fRo1oxaBcbEGgbJiehmDqDvVI2cGgKEe92FuQ0U4+VYRJaz4tNT oyuYIQvk3TN/WOBFdo/Hbvn7SkYa3mB1UWQrlB3nj7RYTHvqxdDHOzVpR/oN3HkMUfQF n550vbF7eBrAiDjJ3MgGo1mmCCT/Kn16B2L5Gr7dMQu7WJa9saG+VdrugncnVKeoJwml rYa34Pd9ZeyyAU+uKYAiUn5hZS0eMUCe9YhXn9J3FA9zBDSjSiriXw11ISvlxff+IDhS QvV3t4pjsHVAOa5qJPFnHac54rIOFKKGiexpP5h/EyGBYLLo+Vdqtac01plnz+Gcq8tc SMJw== X-Gm-Message-State: AOJu0YxidaErvmb+UAnhtdFmQDpqHQ8nMDH/yTv6drEPffexUYU89mFH Jnap8tw3xFyYhAY6slTEPnl5izjJkip4Ju5Oi5JhW/02XRUrkIH39inwu4SvsAjJ5I6eB5lk617 n7Lze3r+y9vGjL7JWrAjJOzPrQcmt4bRDlosg2F0M/CcfT4aoJ0W5ntyqVw2CPppqzw== X-Gm-Gg: AfdE7ckWIsNJjs8r6XLFwSZ1hj7sQmKc+eKstsXxb61+mgcmkTngo3TQ8ulEksQE9jA gwM65yJoH+26FysGCQAe6vHYdrnh7bJxLNS23jRKr8O8grTNcjZkhXOExS5xozaeNd+TM4XvriD dW16EAV4idb8Bf1+KnMQoTMGqMOZdYWCovL4fx8n0I5dIgtEB+HrGvHKUuIwqWWTw0rkJJ86hI8 vkjn0uW/0oOT3rN9JuVSyZhoSXif/vuK8fIVytgi02csmXV6sw6oZaq7IVwUqN8FLQ+ZCIziqrp WlODlro9KmT69e9luCQ7r4Z6jwObD7rAn+vMQMUheb4ojjVL4289gPyu9RksWOaxeWtRq4BYz0j zGW7ZnXkRQmK9p1fZTGp82BsWrZxrflHJbhfQvsS8u0WMDLTzEIlCeOVqRdY= X-Received: by 2002:a05:7022:1b02:b0:137:567:14c4 with SMTP id a92af1059eb24-139dbab9cf2mr12354362c88.29.1782738798665; Mon, 29 Jun 2026 06:13:18 -0700 (PDT) X-Received: by 2002:a05:7022:1b02:b0:137:567:14c4 with SMTP id a92af1059eb24-139dbab9cf2mr12354326c88.29.1782738798129; Mon, 29 Jun 2026 06:13:18 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com, peter.maydell@linaro.org Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Pierrick Bouvier Subject: [PULL v5 25/77] target/hexagon: Implement do_raise_exception() Date: Mon, 29 Jun 2026 06:11:40 -0700 Message-Id: <20260629131232.2487780-26-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629131232.2487780-1-brian.cain@oss.qualcomm.com> References: <20260629131232.2487780-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI5MDEwOSBTYWx0ZWRfX8vbm6A+b7t4/ MsmN+Gxu2sAozKVU4dFeo0N0aNyn0s/aprNy920Vcka1lUvjzDTgCcIvZf7JpRrJHfRJp0H49D0 TVrJJzN250U4pQVCR50jd9kBxEHHrv8= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDEwOSBTYWx0ZWRfX+r4MpYvGxsHj Yd6AMwt7GpRv33PJBLH/rXPBf5G75FInMo+cCi7MSjavEbg6yvR6pfcMY//sBoAFdxWzQaWovlb CAeywqRIHONdBuCwCrOF+f0vm9LjU9vPitGFrqQ7o5xikZ+UE5+MwgA5DARtb8I5CPzdgTryQhu 9k77+ZzPmTr2r3Jl8oDqtMsUoTg4s4x4YFTsZnR5aV5Y9jWfNMyn+Q8EinGjIkG0FnBk0NtIul9 N0INNCzIUtSwDQ/V6FfYZeGHVqduGRCYCWQa5Ly7PdZmpaJD4cdU3SeNdoRSSec8ugR5tt7i0ub ghVSUTranf1ycA25SSQvOkBkdIaIP4zMw907eBcrd/aLHX132/nT/8l1PI2vqzfoj/IJoruyrzG gdf4cjtxXqVKLNA8YJzIIHRPCXYpPaKquxHrYdoda0NpQjqRh5uDhisTzVGiaw6OzwdKbr1k621 LAbyk7qw4yYiocgFvGw== X-Proofpoint-ORIG-GUID: _G18k6H0jyBI3Z0EtNglGkKUh9WJZj9P X-Authority-Analysis: v=2.4 cv=MZJcfZ/f c=1 sm=1 tr=0 ts=6a426f6f 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=DJpcGTmdVt4CTyJn9g5Z:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=KKAkSRfTAAAA:8 a=EUspDBNiAAAA:8 a=hK29HtBGQMdOITfcgGsA:9 a=QEXdDO2ut3YA:10 a=vBUdepa8ALXHeOFLBtFW:22 a=TjNXssC_j7lpFel5tvFf:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-GUID: _G18k6H0jyBI3Z0EtNglGkKUh9WJZj9P 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-29_03,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 priorityscore=1501 adultscore=0 clxscore=1015 phishscore=0 bulkscore=0 impostorscore=0 spamscore=0 suspectscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290109 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782739151335158500 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 Thu Jul 2 10:18:31 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=1782739126; cv=none; d=zohomail.com; s=zohoarc; b=j2KoepWQ6C5tSRhQfFndUWep0FszKRYxrWUiJYKdpxLBylpP6P9OQeps/ZedIG4kWTNL0brOCWgPAn7VSzmcEHl6/9265T7M7quUgGiPEeD14A/q2dZLVDK8Pl/vxjpNeNc6XImQOKeL14eLzQs0jVDp0jO3GLAVh0BkqWpQ+p8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782739126; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=gneiPQ0wnz+ql/gGwGCZzdFDTQwZlK2YqaaUha7G4tdi78sPiEKDAt2in/cYXn6hivuPlgd35rHvjoJDx+vxvf5V5IDFNZJKSGDg2CtUaJDMbnmeRYY8Arxr395Iz4s/eEp7rin/FMPnyxWMrqQ+JVmxiHxmZLAk45Dqb+SO0lE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782739126698534.547554969157; Mon, 29 Jun 2026 06:18:46 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1weBnl-0004i3-3o; Mon, 29 Jun 2026 09:13:29 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1weBnj-0004fJ-6Z for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:13:27 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1weBnf-0003El-FF for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:13:26 -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 65TAT2jJ2646837 for ; Mon, 29 Jun 2026 13:13:22 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 4f3m4tsdmj-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 13:13:21 +0000 (GMT) Received: by mail-dl1-f71.google.com with SMTP id a92af1059eb24-139c6673856so5197003c88.0 for ; Mon, 29 Jun 2026 06:13: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 a92af1059eb24-139e78317f3sm28459106c88.9.2026.06.29.06.13.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Jun 2026 06:13: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= SMYZDYiUGejwU6Mad11x7nCVYujld7nQh+MefWVhoDU=; b=YsvKvU4TJBcKg9O5 QoRPOaLNwiH2Y6upUaODajL10n9VeaXJLl3xp9BgzzyDnJQz9nQcXSU/fbFnsw/Z 2INjMYsMVZ0SNrmbEcKi9uix0Ly3z4/bJ1gAthLYSXUmVS1M8298EQJjyae+ySPu QdIKHhkklsnAymarYdeBnQFXbCjdoBCLoefCxxRaAIMae28SPgh923VsRBvHV98R zeaJANE5vPM7KNOhcGGMbwUoa5hLFmr7oSVwE55bjpiVUXibv2DItOv2IAp3qoMZ DMphNBDzRgCgA5xnQzzP7YKGbU+a8oAK5oilUP0TVqLdMRC5BHKqEtFczMGNeSIE Ixm5ag== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782738801; x=1783343601; 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=fH4lZesnkm5DJER80+T1Y8ek8mKm626GcjcWqeobVgbaodtJWabb4tDXDe52c9QjPW XAtWOm1exk4nM316mfbvUqOFF/GiWzkqJrtycP2Gqcv0wHHsG725PArVWNOOivWEAcVN O8X2P05HtFRrxthTLciOrE+fvmP4drja4iSX2f9wJHXmqRWrtovC1fzMHtRFfozkqFxM y6vlvHYeZD4+A9KclrWxXi1Dv2DTgC5m4e/eOkoTThSGy6anivxCRYOirGjisyj2YScX sunmZMqA2ghMhfajj159+hKdSfYoY9/iE1ZZuSklTSmBSklDnP6dCaZbVG1yXPwLRRDq yKIQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782738801; x=1783343601; 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=FBCUyZ1Y20h5DLSPQk4OUtTad53qzhCXUgQhNLyWW5n7LZAbEsmX7bmy+TtJr4rv6H dXIHsKGb8MKRC4QojmrYpjNfLacsOK3pNQNb+Muz4DNZ8d8DoVGZnM9k9p9Ugo8gZnI1 +tWJ5H3sOn6o8gGe1FDdl5FcfURbJqeYOvjgf/CxhE6RUIjkDR7pdd70mu72aYw7UVbD Fb9iVd6miEZXAbMDTKjV5LNtkcae9fG9h3LACA2uCt8xXqD7WflkSaB0hxxysZgpCtv0 C6YROrWXgxBGBRnIcWauV/OLGDsB8gcXIeI2MkC5Ssos4TmTgcN6oNdmQv2o3M4Ma8b2 Iy2Q== X-Gm-Message-State: AOJu0YwZJ9mWl7Na0rEndzGvZoquJ3t639ddUvwRbA4O8wFBQL6FImGM O5zk9jCPSSooDzhrnmsuXyjhvKOy5f0hmOSxNFr6SU9xFumovglQZqJyjQk6Uq4B4uIlWJlxfkq a5pZj3eg8eSZRT9+aq6XJec6/RuxSN+rCUIO5kfp33wS8+ez7n1RjI2ja6F1PDY64fw== X-Gm-Gg: AfdE7cnBiT/vJw/D+4GZXEXAZqRtGtP1HAVJh3gBYlJldf9NP/U0632d/fgzCLhIFhw NioBmzxqsSDUOFpyuMMZ1otmACjEiBUip+S9H+a5XjEUPFA1QDebKuoNcS+F8dsY017YAPCbZY4 QVW1Tl5UdLLJ8/CG3GdiVj+Q+Du3LhS+Ry2UebAYDlu//aLXzQ8wQoHzuAvs00o1XJ1vJTI8uXy 1vzocGqC3HbWI8iFi1+aZVDMJlWPpXWApcTIILimwKKaZDjD/cQtzUfmDQ+tUCddYbqrQYbTrfK pph+yXdjdB8XeVh4SZh+hsHb+zB6ylnlkFuOGjg+O9DVb9yuMtDCuyZ2pH9yusKugmZvl0SGHKn mSarRxRiHKJglX84p8iwFUyRy8TQn7BlMgcG8qTbB3G+0UTtJ1dRMAr8sEdQ= X-Received: by 2002:a05:7022:69a0:b0:139:7fd9:a29 with SMTP id a92af1059eb24-139dbac8d8cmr14674257c88.36.1782738800827; Mon, 29 Jun 2026 06:13:20 -0700 (PDT) X-Received: by 2002:a05:7022:69a0:b0:139:7fd9:a29 with SMTP id a92af1059eb24-139dbac8d8cmr14674214c88.36.1782738800066; Mon, 29 Jun 2026 06:13:20 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com, peter.maydell@linaro.org Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v5 26/77] target/hexagon: Add system reg insns Date: Mon, 29 Jun 2026 06:11:41 -0700 Message-Id: <20260629131232.2487780-27-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629131232.2487780-1-brian.cain@oss.qualcomm.com> References: <20260629131232.2487780-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: AW1haW4tMjYwNjI5MDEwOSBTYWx0ZWRfX5oa2W+eXjxIZ 2hf7zktinDOcW88NUQzCpjJXI/5y5AK25GdKJzxL7sfaQSW1Jh3L5lS02CmZ0iFYrir9a4vdcxx HGYn0/YLPOOsyuxyZOqTAz7zerwGZ4sQlsUM9nBsOP0irRhmXm79ER3NmASyiV+RAjUapLClbwf jc1pPU8cyWaZV+dF/TxWa54d3/mo+X6ZsjUuNpM3Vs7DRJ/RnE4vftr7GErT2NffnVi11aKaJ51 pG+f2E8Hf+D1nj3c4gwwfA24M9J82xJPCg0qHj6FLbgIottIDGl8aL7zhmy5dGx8aNdGy1RArZ9 nj8m99JhWcray0WOmsx2y95U2C2ddkANuBddQO9dc6tPccwrtTGGMzhp6ZtgHqt4UjKxAMq/3XI Teq2ohi25SQ2GHJdoR485FY04gDQkWfbV4YS7jTUCE3Fcd8WIKTKWjJ8zplHigM2VAqFQ7JjqA8 sg8pf5WIuS4ROQuyw/w== X-Authority-Analysis: v=2.4 cv=R58z39RX c=1 sm=1 tr=0 ts=6a426f71 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=Um2Pa8k9VHT-vaBCBUpS:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=XudKOxRI_tdk19a2JVQA:9 a=QEXdDO2ut3YA:10 a=Fk4IpSoW4aLDllm1B1p-:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI5MDEwOSBTYWx0ZWRfX6EJyVtQ5zF8d TUpZrzb0C58Ee4paEguYWEYPEzGq8DERKdxWbJSL7z3jB7BjIkoVXPK+Yl6C90tFAFC+TclCaTr /mdASkigVDW9IuUkP68LTA8oyNPKh4Y= X-Proofpoint-ORIG-GUID: o_CVTWWqBah_ud-dPm96iUcOqWL0pR8Y X-Proofpoint-GUID: o_CVTWWqBah_ud-dPm96iUcOqWL0pR8Y 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-29_03,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 spamscore=0 suspectscore=0 phishscore=0 clxscore=1015 adultscore=0 malwarescore=0 priorityscore=1501 bulkscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290109 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, UPPERCASE_50_75=0.008 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782739127050158500 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 Thu Jul 2 10:18:32 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=1782738980; cv=none; d=zohomail.com; s=zohoarc; b=FJPDtOpZEgE4yPEc4wEer1dM7m6foDPiaONEdTKTAqZr0DbYYW0wGccKt0mVFavkZ6UBe/cZa7MmJR19bJG7RP/8PyY3nQizTCvB3uJfjpx4Jy1eWX1BayKqyijqeEY9BNQoJ5xs9H0ZYSQE/nJoC0ZdcGiVCOxZrJ7Hv+nyK1I= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782738980; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=Y3PdvNzBIlompeNErDvC1rl44WU+2TcbHEnslkXrZxHXQ9tYtIZ9nxdGcg367LsXgjWB400Kdk5EbZOSpF43AtGi8JE2JGLpLCK2HD3YEo3EHdRcNp8ZFNUqE8VDGafuGod7oxSoA3W1Jo+9Y5+qcBV/G0jG8WRV3OkScwwPIYs= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782738979994269.52420535959925; Mon, 29 Jun 2026 06:16:19 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1weBnk-0004gs-Ke; Mon, 29 Jun 2026 09:13:28 -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 1weBni-0004f9-U3 for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:13:26 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1weBng-0003F4-PS for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:13:26 -0400 Received: from pps.filterd (m0279864.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65TATE6k2579076 for ; Mon, 29 Jun 2026 13:13:23 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 4f3kp7hfrt-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 13:13:23 +0000 (GMT) Received: by mail-dl1-f71.google.com with SMTP id a92af1059eb24-137fc6f8e9fso5834916c88.1 for ; Mon, 29 Jun 2026 06:13: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 a92af1059eb24-139e78317f3sm28459106c88.9.2026.06.29.06.13.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Jun 2026 06:13: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= /VupIGXlaT55BiO1M+rRAhb74/1Wio7tg5AsFBlbUDk=; b=OjnfeflF4sRW5rfy oaMUKqWug5XrjJLDa0pC0abAww5GZYAXMyrDAWRBxt0MoOoKagLKIY3IYOS+muqP wQS1qrTFBoEb8IThHfB2HTYbrm1ts+eSYmK6QDIy0iCNdlkEMqjLnaNZJRxIhBzm 5TbFwed7hpfCjs+4Rpr8vvBTV0KgPrDIvmmIBRLArxexpaKhMHSVfReICHKaI9hf szL26T1os1PZzjLbDECIIRXdyUhuUNEO5hbUsjJvnao1zJZyTKqDkdSBQI7FzRkQ FN1RFme7jT8ZNr7x3UlHH9asNLcPdLoY9QjEBBARoJzUB7PvOUWNJfjbCNzcX2om w4w2wQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782738803; x=1783343603; 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=G8lSn7BF0XWNRhh3ka7yCIAE9DuvTDRR8vtsA+gKzUIKORS9ZT2ikuJBIfdxqVSxFA eBlZKvl2aPdaPSip03j1FDnudzlDicnXi+H6G0fDvWkt9BwZdfSFw1CC8etT1m/jxOYB SGMrMeL+cA6So77lKh/5Hj9ENm+g6I3iiq4aUcvCH7Xn/DWhXv4r3Hw1XcR2OJCMiadd RV5DleGqD1rN5xHgK2qogya7PpQ2SDT5qyPOhPgOxvyA9ShI7pM1I3xlZJ3J7S+xuznU cVxUAHiu5lwiPp2bli3OCu35kDd2jjJvJVQCgceOm6Ulv68C7lOn/OxCgTk49pO5QKh1 Aprg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782738803; x=1783343603; 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=E9Zd7YUtjXRT6nHnwV5O6PAO5ebKVBFTIYfA2hbFXv4CwW1TYOFhC383VfZZAUTtk+ Cv4NvZVUnMAxAZybBEjLchc9hfWXi7+5AGgsm4gTcBiPZqTVlgzjiwyCO+TE/rHDjMXM LsqTpokw5ImI7aEXbKsTwlT35t79IDMekXtnjV8YBjbqvtyCUjt3Z3ZpAtP77NmOmkmY Ok1V7XLDMzxBES9kg/ZqBhJSCa8wQZZNpx6YfvEoY3GF6cKvZcW1hFGmGiXsBUyNTKZ+ dpV61O4JP3O4QIJ693uteFvpOLGC6Z9VuJBCWffJhiVHrNJILWSAmtD9Vkh5ufoFq1J5 S0lg== X-Gm-Message-State: AOJu0Yx7GCY+nOc/e84MpfeupVHtQLUWiy7XAp98WYJXcaI8JtVyqVjo KENgk/60pnutrIDaKZz1fJg5/GQMvt8cC6ZwfH7JXBzDouE+EXI1edC/QnmfPCEkBIt29VFaIFl zCn1jCh9gzkfQnd/BQS+RtecDHwHha+KUQWm8BePZTz0gIZczunxcMT5yo6X7ZNLX1w== X-Gm-Gg: AfdE7cm/66OQar7rRyQyKp+aRK/3v6hkyd1OXi/pjhLStC9/bNk5sLw2pbHnDtTFGbL m8Hl0IdeiJzs1IekxpKF/Mox9GphKA+hr/C8eq6sHBMUFiv/lNkv+HO/eRpZTV5RorpqF42Uhhe MYtBGOfGdWEphqIFzABMSPaN+dW+2soo4nFxHoZbBzYBQxKeIrRk1y93YqCqCxUIr4f4Xa/Jtde HYmZqCKnZ7q0BwKc+DGiyxgcPRbQtH5D32hxSyOy4XKyqs/hObEVS4iGvVWuEK+1nnEsaoG2j+n qdsj6NDafAAgCpWkI4AUtc99u7Pt7bV/ZELT0qpNVweG4sH1nX1ItDOt16/2CNjF1IlzRsxJuJM oRl6IjyQVw0FgJ40y3IrGzi5Hv08vU8UyMpzFFmnVBhHDugkmG3cyP/6J5cM= X-Received: by 2002:a05:701b:2319:b0:13a:f1bc:b0fd with SMTP id a92af1059eb24-13af1bcb4bamr455864c88.25.1782738802433; Mon, 29 Jun 2026 06:13:22 -0700 (PDT) X-Received: by 2002:a05:701b:2319:b0:13a:f1bc:b0fd with SMTP id a92af1059eb24-13af1bcb4bamr455849c88.25.1782738801709; Mon, 29 Jun 2026 06:13:21 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com, peter.maydell@linaro.org Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v5 27/77] target/hexagon: Add sysemu TCG overrides Date: Mon, 29 Jun 2026 06:11:42 -0700 Message-Id: <20260629131232.2487780-28-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629131232.2487780-1-brian.cain@oss.qualcomm.com> References: <20260629131232.2487780-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: AW1haW4tMjYwNjI5MDEwOSBTYWx0ZWRfX2+5nPlb+fenK 0rd3nonpL91TzBQeHV5u/463C8FgNl/X2o33CAxqdHruf31y7O+lVX+8V8oEAHFT3P8hzhONpF0 1fT780NP6SGTU2B1fQ/938ZDHXzpLrY= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDEwOSBTYWx0ZWRfX35mdHTNiZege OxRkwLL7XTRc0vCvilOyLP5Ps6EahDJP6qPm+OBGz7yLzfua9GuyeKORPpcryfePTbSy9uGzzRJ M0bFJIb6jOfLQzI8BzWqQEvur6lcv5dTJBzbp0Bl4Ytck5qI7knN7haa1WvCT/CYAWCGoDlw/n8 KkXVNf4rlDaCaK8hg1pnVvdjnHNM9CFjj1AdIaTNv3eOtQk/oULEWmbr/MhIYQFHNs9Nwa1EbJY FBQ7S//l80ta1fxjJZrcm33k9da4v8f/HXzbTzhZhbx86FtNIGBqRyrDopJ9Jk8OXwJEVX2Yh69 l6MXCppcFLzwX2vDI4ws51eZ8tj8zDP7n3yWaN0j91FfAkdZa3MJA3JM8ot/dlXE5B3oFdhZ6Zh qez7+QZES0/iCISxKY6l/snf1xwEInizZeHpByhrroBa32ROOr5zZ45QC245hiFvjCjutSJCsOd ADzrRQWbmbovTn+qiWA== X-Proofpoint-ORIG-GUID: xUeNTKRJackPEW6mVRkGiBe-bCxMb135 X-Authority-Analysis: v=2.4 cv=MZJcfZ/f c=1 sm=1 tr=0 ts=6a426f73 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=DJpcGTmdVt4CTyJn9g5Z: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-GUID: xUeNTKRJackPEW6mVRkGiBe-bCxMb135 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-29_03,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 priorityscore=1501 adultscore=0 clxscore=1015 phishscore=0 bulkscore=0 impostorscore=0 spamscore=0 suspectscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290109 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782738982012158500 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 Thu Jul 2 10:18:32 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=1782738979; cv=none; d=zohomail.com; s=zohoarc; b=SLhjEJUqBGsPDUhXdIa6Q652U5hfHwc0ylYgK0ddaOW2wV597fktHpVNhPdRc0xSd40+kocNH6X9+TzBnWkjCf6fMG/lzT92v91QULLqQrqgOsdK8m65J2tEx7adRES1Xiuknd1xG2TXZmpJgfAMp1eDKp9aJE1QO7letUCUSAg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782738979; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=jzHQu2mTFWc6V284R/W0xjM+de2gG0ORfeUpk/nakMedDoEzCKVCl5jBAg9M0PVg+aKe4CqYOM9X8hjQXBsju5sD0QuNnpNQSur59+un9oR8JkHHKmMuDtpZtdqu1dKqXDi2Inw82jJ3dn5QJLXEFdzHIe3tcz8PgRlzNl+aMQg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782738979935401.5181182453774; Mon, 29 Jun 2026 06:16:19 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1weBnm-0004iM-5l; Mon, 29 Jun 2026 09:13:30 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1weBnj-0004fX-GQ for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:13:27 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1weBnh-0003FF-Tn for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:13:27 -0400 Received: from pps.filterd (m0279865.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65TAT4h32646950 for ; Mon, 29 Jun 2026 13:13:24 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 4f3m4tsdmq-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 13:13:24 +0000 (GMT) Received: by mail-dl1-f72.google.com with SMTP id a92af1059eb24-139b70ca7e5so6898801c88.1 for ; Mon, 29 Jun 2026 06:13: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 a92af1059eb24-139e78317f3sm28459106c88.9.2026.06.29.06.13.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Jun 2026 06:13: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= A6hX7dXQXO1+fIeZgKUska/ZVbxUwMZyizq5wXsBD70=; b=ITrPppUzeidfbKVu KcKG8eJnMcqlsmeJ2n+/R/S3vWz2Rt/ZHnGZaye5KgPRE+uDsPyCDGz3MixBVimV R2Ya5+T+5LwqOuv+0hmA2527fcIzRHgNCNYjCeEs7qTAmHztfaTzONOzwKHF7dU8 PfC1b6YH2JwehoONBiHRX8iZSuteMOcXs+6bfBup5w1J95HtJt0Xy5Ln22tfVExQ lRIvX+3mkLpKH6CWm+ZkBPZmxzPXYnE41J0nYLgywewZgCZQ0RyrY9Zi6a+6FCoo 9s5tPwUrmq7Z1TLz9OnrwUN9+QTCQ2PaO+6DmHmiI4bJpblHUyaATfgKv+QJ5Ddk 1POaVg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782738804; x=1783343604; 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=VcbmLbi6RNDmZL20IGCLJGJ2XHVfYO4s+dsIoJebe1SAAV1qzyYmWQ6iJInr6Fmny4 NkoDE4WDyIj2vBae8LiKVoMzeT4TPaB7UGySDa++QMf57t19BePiQlzCcKe1KfMZVfq7 Vq+GZzKgVJ0Yo30xbjMxSZv/G4tex2VbD0vQTOk0gjpj60BNdzOUHgIBsL8w38a7nVnT d3Xhp935UlcvtEoqhLE7T3hSxql42euXCgOrMVXgo0kr6el35AGLIal3DMGLeDu+Ofsa jXBYwTS0ydbUwxk+wOtFRO1GVZSrk994s/xMN5deKeyhawoIFQLbaYZP5kRYcmnYkSxy u4tA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782738804; x=1783343604; 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=oXCLQlFz22A82c4XfQe28OARUlDK69iLYqRdv6C5mJXCVefe/t4EviEuJmPOoGpccz KkzoPjyxfRRJcJR8SvRkgkSITGK6UUa9wTuZHazaRgymzZWf0ipb0HQxBwxE5wVuo6DY 8Onvz/rmH1+9mWg9iqMAuY3MRTQ5cCzVN5QcAN3ziCROlEpAB3nfj8IcuXJ2Pp1O/CBU prBJfuu6IMqrY7RVn134iemv+f7LK2EL4KC6UiFTBFjzq0WtGkTBoItbjmE20C7aYYFl g5TYfkBue4ywzAzMnNOYF2u4eVDkht+RNn8fC1URtIL0m4iLd1Myz+jYjOZkZZJ4IzgW FVuw== X-Gm-Message-State: AOJu0YzecB4/gs2T8gXBh3nhMhHgfK9v0bfgshSVYJZdxsFGFJ1t5wOF l0ew5iZZZIhc/dxjeB7GO/jKQlPKnxq1Vc1p1keSDsamyZz0hqaAzuYxBL8yEwC6ZrwDCWgAN5X Fmc6XCGLHxE1Q5Df6SXhCGIGvlNeq40wTN4Wtu/Ug664oJr+FlPivGihq4WFHc7Btow== X-Gm-Gg: AfdE7ckzhmbqRg2Eh0DJclJrG4NdQE4RnUBTiOd8D5o2diD5nttoliV5uwk38iPeVJo NaCs0mq50z6d4rwbpbMPrUPm8wnX6PPgO4FH+XsQY+boszwfW/lzoV6MvRBnWABDwBpm7EQcjJZ KP3nfnp4eNSyfHK4qgsoJ7GQWuaBJQ047V818XeFk5B2lt2DM4+BKrZstYzNgVP2fBsIjYATXOC 2hySaFdIXYWveM+2CCMwJiMSnSIEISTJ/7z9awBkaK/jqQk4rS90J2VyqFITUGrPCOZY2SsMhiM ICyUMJ4dmjg7M+tqWv+p0GAdn3JeOeMF9vqM9limXBKsrX4Dyb8ESmrkShoa6XzOzHPdr9UCh+I D9i4XvPZHHAifq384Za3E2V9leJiJrRYVorCc9/Y9csQrJj4PjE5YxFAYZ+4= X-Received: by 2002:a05:7022:23a0:b0:136:d237:b42f with SMTP id a92af1059eb24-139dbaba184mr14445251c88.32.1782738803890; Mon, 29 Jun 2026 06:13:23 -0700 (PDT) X-Received: by 2002:a05:7022:23a0:b0:136:d237:b42f with SMTP id a92af1059eb24-139dbaba184mr14445235c88.32.1782738803386; Mon, 29 Jun 2026 06:13:23 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com, peter.maydell@linaro.org Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v5 28/77] target/hexagon: Add implicit attributes to sysemu macros Date: Mon, 29 Jun 2026 06:11:43 -0700 Message-Id: <20260629131232.2487780-29-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629131232.2487780-1-brian.cain@oss.qualcomm.com> References: <20260629131232.2487780-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: AW1haW4tMjYwNjI5MDEwOSBTYWx0ZWRfXym4hOHqQ/eMF aH2GH22XKjx8Jlkx7Day4Rp8t+TNzrAVxI31WV7EKYix9RDvNsB0Da4hDgrnWZ7ziqjPw26zngt UO17mcjcCahZorC+rw0qPTOAWPAvgkd9qTDPnbVJGUEccOvH8OVHR1/TWC8mtVD/klE8rgmE/xE OLy6D4VC3Ax0BOmg4PLPfrB4m4exr46qeRvtEAth9TnJBi2abdAcqae+rQEJ4oBTPzv0AdzsqMs xbowppEMskQYtNtJU5FZ27C9BrboTj7eYw7TK8sXnXcJrYvQept2JHOjz/oo8ZQuvhuz7Yx1//y Lpyc+GFGyyDmEb0N5cA8UCnoXwdv310E/WNWRuYX8k1uUWWLycFb6bHDoASgntlo6b/Qx6JbnIq O8g2k/q1acZTZkIyMrxzmEQAEjy6Y3LsMQVJZJF8abNpIYAkOoLSYmP7yNd8bsioIROOEibixH6 +tsfToierDj49wrtIuA== X-Authority-Analysis: v=2.4 cv=R58z39RX c=1 sm=1 tr=0 ts=6a426f74 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=Um2Pa8k9VHT-vaBCBUpS:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=jiUnMIOmsb6gMTORg9AA:9 a=QEXdDO2ut3YA:10 a=vBUdepa8ALXHeOFLBtFW:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI5MDEwOSBTYWx0ZWRfX5km7JcgoU7mb 2YDiMEhkjOMNOtVkD/xxyxWBP18rHk24xpJPHzjOWS5wKo7Akf1EeReoLUW2yje94kCgM0XJ6FQ q9lcBzKQXi1bjJUPxw6HcL7yi/fFztM= X-Proofpoint-ORIG-GUID: _gWD0LviM7OD4ah0sQRqZlmn54BHeEwh X-Proofpoint-GUID: _gWD0LviM7OD4ah0sQRqZlmn54BHeEwh 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-29_03,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 spamscore=0 suspectscore=0 phishscore=0 clxscore=1015 adultscore=0 malwarescore=0 priorityscore=1501 bulkscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290109 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782738981861158500 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 Thu Jul 2 10:18:32 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=1782739130; cv=none; d=zohomail.com; s=zohoarc; b=PEW0jVwvkzXnPx//47Pf/DClHGcRBDcBIbBZx9ciShyisT4QgEtZt3TPkxej9honNapKamFW7FTZeHSqTdP7iBdso5uanWpEHXh5R5aGfvdl1e/NNHvLtRj2fHl5D4ovtvJ7TajuLCNsWLEevGYOXHbIStwwsh/EqhApMCL7QPc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782739130; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=TQRTaqYHtaPRPe7+dLVQxbmnrmVmhWXywmNo3DQN6nzt+QjyHxQWyGNjsYxX+AAviK8hDqW+J8fKk5YqSOGJJp3PClEy2Vo3bu6l0vBcLugNetN3T/qWIcaJjbOuJ0SN38EnfLQd1vZWiVuSUsjIU71jRvARI+ffZaHYlsCqyuw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782739130517123.21433800564807; Mon, 29 Jun 2026 06:18:50 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1weBno-0004it-6D; Mon, 29 Jun 2026 09:13: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 1weBnm-0004ih-Nq for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:13:30 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1weBnl-0003Fr-0B for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:13:30 -0400 Received: from pps.filterd (m0279867.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65TASuqi2640837 for ; Mon, 29 Jun 2026 13:13:27 GMT Received: from mail-dl1-f69.google.com (mail-dl1-f69.google.com [74.125.82.69]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f3n5s143v-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 13:13:27 +0000 (GMT) Received: by mail-dl1-f69.google.com with SMTP id a92af1059eb24-13b0686d13eso1427513c88.1 for ; Mon, 29 Jun 2026 06:13: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 a92af1059eb24-139e78317f3sm28459106c88.9.2026.06.29.06.13.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Jun 2026 06:13: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= SxgjDN8stbE6SIBeFPtrecas0sgHajmcu/RG683JGPg=; b=WsusiH9JaYZP+KGk QV0/0hGY1s9UJqSADnktKRDb0lcqivqvmwSj3Y8zS5Vf4TFr5wtbdLinKXwgQMSP yjFgE3LpvByi4dqWeR7DtmUAUD8q+GdFp8NzIb+f7dPSEjN/+2V9msx4YrxCu4tT 93Pk88Nfm9KCuu/UowaQ68dimanDjXoCjWkuI8IqNukjwHPyuV3P2zAlFgUrbIpj RRpUgo9qInQ3KMkEdUU7mtnFQ7VCHfRgHRZjd5hppYqMB2I3a6eWybt06I2Rmxb8 L0nI+0y4PCSnAJKFWUphj/TU/TvD2Hkn4nwHb5Ua/icMWKDTqEpVJuJk4L0EqVp6 k/zj9A== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782738807; x=1783343607; 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=eH9z69xOyoRG4NxmfNdV8/N5ImOLad+iBwmg+Ksqd53WLdccuduRwpCsjeM1MIGqDN 2Z8w2G5Q1PMfa7b0SekPYLmOl6cTQ3mgkdKUaemhReer3QpolTljtHyhzv+3FuCLexDu 9wCctWmrgJq/jhKLMjZDEjUEnXIipgLsO42UuZiU6YMBGTLVj7tkh+g78awgaWcghSpB /rdF/RkkvSDVFXWh7AbymSnpTsltnp01V0WLeeKeu5PScw/+9oSLrPKuFkErLnauw3ul 3p/lt5av6JLvnRC1zTfoBAR5rtiUQjO3p7yeKa93gLMNF5Q9lmUMH8eEIYem4jpCZtKs +NcQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782738807; x=1783343607; 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=DxPnkWPiEHBm/1lh0H3w7JMHjwAcbjUKzx/+Ivq/5l60JoiIe+9nx16YqtI7dTlB/v ff0Q5Sv+FOcxCndbXvxBNQOB80zOszsgL40dSaDfsaVFNW/82ySXkm3L2UYSpUxegCA8 11qnR5SgBjfR+w8v3LQDpLIUmhEq4z/DCVthBQ1dTNAAkxQsKeL0XyQc6yGgdHJzvQez BJB+uc1M1cjbf4ln8qtvRnqD0Tjx45Vz3yB97921XUKtuQfBXQrIxxY6Iv3ntK8hDcLN wXCuM8RgxCkcn9G4DhOXunaqQaaGD8fYsxF0KJ5i7qGTVJ7mto9jQtGtVZAOCmyb1Fq1 QvBw== X-Gm-Message-State: AOJu0Yygvz7kLLZ7WPSvdVefPN1B+v7sgv+di5zfQJBGbFwtUAHOuD5r /PUAtUOAqu0sA2KgCwMcTKChceA/7z16Lbz3lhd6DDhsZK5MODrn70SqY2unAvi26N8+8SyhsxS v7LDMWuKsLK1DR/yDJtDccDM+GgAyczR346vqtu5/5z2EIxFtrFZSooYnxRN2EjaDwA== X-Gm-Gg: AfdE7cmVEKzKxbEFED37LEZ1gxhowTiu2FM1E2C16byMChYLszfb2943nLVoIrz6BKr pNlQaK1IQ60zeOT63rTjcxhjjxRONbVHpKspPYvXDrIXVRUEWluDGLsmUQontd4tlGRefEYNgGR LbunkZKy1gtgf00+XkKrSBj+SEAmPqt5Adk0IjSxRnGhbBViRzqOo74FusPnTa1DpjvLCbUDcd0 Af06ZMN3X+WZRQZ5pU6EGobHI0YnDCqeV7wd1IW19ZDY1trrJ+gNUTy4UuH3SZiP5NOMcZPAmkK UcHMzHzFnp4CUQEiHv8qi0Y5s3cHMMGMX5pS5ubWTlLbzlEqfogvchoolEuuHUKFJXFTOwPEJ1F J6eVD3vBCNGis1zbs5vgfxri1BQR4LJFGFVpyxXCIt3Rr2b/iI3EHQnww8oY= X-Received: by 2002:a05:7022:e11:b0:136:ac69:b0f7 with SMTP id a92af1059eb24-13b226b5ac4mr455821c88.16.1782738807032; Mon, 29 Jun 2026 06:13:27 -0700 (PDT) X-Received: by 2002:a05:7022:e11:b0:136:ac69:b0f7 with SMTP id a92af1059eb24-13b226b5ac4mr455786c88.16.1782738806433; Mon, 29 Jun 2026 06:13:26 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com, peter.maydell@linaro.org Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v5 29/77] target/hexagon: Add TCG overrides for int handler insts Date: Mon, 29 Jun 2026 06:11:44 -0700 Message-Id: <20260629131232.2487780-30-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629131232.2487780-1-brian.cain@oss.qualcomm.com> References: <20260629131232.2487780-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: AW1haW4tMjYwNjI5MDEwOSBTYWx0ZWRfX/SeROTPYJATh UWwJZ7fuYSHFGyZfPe1tvFQLdNNHgq+ywNjrsxOuwJFDv5yd2u/0aog0HlYQjDHN1GMsrmuCDAs RcUlei+fEmpZ3Zgi/+4YFcoWpydmLgM= X-Proofpoint-ORIG-GUID: bf4T1qRT17SFNgEeyoi6PFh7ZljP4tLC X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDEwOSBTYWx0ZWRfX1L+hU24nHwYr L4qrNwrOP30/Kr0pb8D5XtuehZ6rkf2lMaJ0qgDiQ9o38J/nE5UlLDYaQw+DHUI12vprKXYDOIX CWRWdfFJsv05jW+oHzj/lB2H0ALcZzzg+8unIrHHX8hCJwjrhmJiojzkQe+brePTrnHHTLYHNiW yH0e2a8u43oGAobHMYn0XbDrshy96yCol+o8hYK4SYzuG4USuCSb/Q2enORqZYp2fW6GSJ367NO ry3N4jjHjNfJKSq94nxM3QK9TPys8PY04OqScSI3C4PBqe2yjgy+uq2DDZkJnzVfZDn8oOHe+tO RtLoIIOBOPwX9mOFwmjL/ydjjaXsn0R6qZvgPW4ph3Xg/74rwEjCVPL27VO8pd6Qzx57uOJses+ IqBFtd8sNyOCM+fkrwskeGqhb0nbDOf3FJALzpvezmXLcVJgyuYyZWBIoV0qgzDtN9IdjgEoRLM tMch92Y/OX+m+KOk25g== X-Authority-Analysis: v=2.4 cv=NZzWEWD4 c=1 sm=1 tr=0 ts=6a426f77 cx=c_pps a=kVLUcbK0zfr7ocalXnG1qA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=eoimf2acIAo5FJnRuUoq:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=ncxFUDX8U6Z2rYVbhVQA:9 a=QEXdDO2ut3YA:10 a=vr4QvYf-bLy2KjpDp97w:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-GUID: bf4T1qRT17SFNgEeyoi6PFh7ZljP4tLC 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-29_03,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 impostorscore=0 spamscore=0 adultscore=0 suspectscore=0 clxscore=1015 bulkscore=0 priorityscore=1501 malwarescore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290109 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782739131051158500 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 Thu Jul 2 10:18:32 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=1782738873; cv=none; d=zohomail.com; s=zohoarc; b=lk6/4m8f0tFuClgIna30j9sR0uiJfWBEQziihyxQTs6TwQ1qLhZff8F/B1yxV9EqjP+zhtxEpC3JWJ3HAO0va8W6/m9FOQnw3C1DwpUaY9KWzVy1qNLyHQU6dKP+UMzjOt8gvR/PjgPS4E5yUGbM2uHFtlI/nSqr5GCTD96dG34= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782738873; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=oFJAxiz5A4iyuuMhEzVqnFQEMOB8tNpZPcuTiZ4YYKwjezhdqke4vVEbCidSNJj1xts0IMU+sAXMTiXr57LPGn+BAkCtZUfFLd1mbhr7l/PpfI+sgO3Ybx/TOZg3xxvuWPKOWJxQnh1g7a6uWqTAlxgxfKBsDZm56h1sr2Vhb6A= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782738873119728.2267715127085; Mon, 29 Jun 2026 06:14:33 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1weBnz-0005Wk-JG; Mon, 29 Jun 2026 09:13:43 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1weBny-0005Md-5W for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:13: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 1weBnw-0003Fw-Fv for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:13:41 -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 65TATpUW2656706 for ; Mon, 29 Jun 2026 13:13:29 GMT Received: from mail-dl1-f69.google.com (mail-dl1-f69.google.com [74.125.82.69]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f3np7gxuc-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 13:13:29 +0000 (GMT) Received: by mail-dl1-f69.google.com with SMTP id a92af1059eb24-13b0686d13eso1427600c88.1 for ; Mon, 29 Jun 2026 06:13: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 a92af1059eb24-139e78317f3sm28459106c88.9.2026.06.29.06.13.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Jun 2026 06:13: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= N0iAGziQ+4iP1vKIbJyLWLa6evXdgIMUYRbL+wxICtw=; b=Is2SCTgbQq+pORGb X46hwvNsGut/Y9BdiXk/jJtWjRMW/sqnt2kcCh8YZGRXP3MQodr1jH9G5Px2oLvy Cxos57mWyqX3hu+tFOqKeLXZNyV1XGBBlLiGlETLO9+eEDsghCVwCwN/jgsyW1mo XZ53jE5Jww9CXj4idZZPDmxGcO9Nd5cOxnEXoC1q04/aKziPylaRm7WZ5K3xDajU mSE2sCyI3NCaQljTWqybnQ/v/rxiIweQm2SoWqCS2FeA/jDfEoGquEa9+R+oTFvG +J0xDSwAUKrh2d7+1TeV3VuDkzOkCPrfBEXj92H/M8sJ9h2NX3UeUeHOfnHX3OI3 29t6Mw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782738809; x=1783343609; 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=U9bCykQ+MYOWZ925u5u0f+JglfBfXC3+2sXLhomxe+RpYwPvtDlCQeynudCvP3R4F6 nbC7M9ehTmCNwaHY3zrX3YXYbd8xB7agtGT4b2PGyA0eUI5kJ3kDFOB5yA+ns+KQLGd4 g98FZT7Q+KZOjY/DFFoI43Rxe2Rx5OiA5fc3tWAXQ+FmHMSGEUSQY0lchfPDPZJCkYWw +ykKEhtGC+uN1xAK2fnwVo0WP3iecHoDfrp7Q+kH4DVrqb5rN7AeLyec/P7RVRGWpr5L F1bdNTChgitpF71WA3T9tebdABfnmsNFUql/65oE97aqouqm8Ul3UkHMGV9fuQpgxSpj B3/A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782738809; x=1783343609; 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=XcAhELQ1Mxoo6g+6496MaaHpQPQ4CdmXtjwbCgjaoRrEB2tQXSLLruhkPOjfatOKSz iE1EoHNNEq7THlGJhvbFM4l/JsfqiuXwO5Jb93KTCiXY2Z2QZQWM/vpnsKtryJSgGaHs PpOGxonpVWYHt2OI260oaj9arY7i6sNkVvG4rHyj0mfeN74hSY/snx+c80mSuVnfb4ZI YuugM39ZDVerk3AnAjNxyPx/3rvMz6FWh+AxqpBAtEI+lqi2nwzAb7iyDM1/Ly5XOpb0 TcYIpbxWbP93bx9hPoCDuFP7iWU9DBIC9gZ89G8P+vzNiACKXUYoUYAQZA6qhKt3BKo6 OUXw== X-Gm-Message-State: AOJu0YyAP62d3KzRuK6LcmDh1PWqWysrjOR6OUKWFobWr1a+Su41V1Ce BuYaC+S0TtW2jqsaE35fGJo1fw/pQpCKSO+6dYHFlFkfASSr4jyojL36lrMl2gjPKEtk/AYmIII Gko3qkCG7tY5S8R+NV5lrws5K8FaEneIDfe8ihpR2FG14BlLA3fDUw+NFhaKViA6+cg== X-Gm-Gg: AfdE7clr/dQlT01pPTjr83J1aDkUbiUzgllH2d9bPejiU9Zhk+7Tlam9QUsu1yaiGvE 1ip0ajzOE42k5ITzNDkwt5ZYntwRc9b+Cm97Hfn6cXfDQc2R0RfgbEnMMaQV1MLupphZtljKgM/ Tz6vbzggZArNhNR1qIBkFq7WbTX78g0g/tmRhUImk6HZzqxpYPCG7fh4fL3RTZ7T9UHLfuG+SVt 1DMQgna1cdzesmbaEp4fWaFYHmlkosIcF/OspOeyDl7ms08HSFndMxpZuOBHGI3s3gjIlkADiiw CdfkzuVXrkkk9Gt0sWIDVnsVExxcz9UfrahnR9/wYxJxOfEFF7BUE8H/1HTF+i1eXdKdr8bB5pL DNW6Q24acmEXcO1iZmWXcbNIWvpJUG7ZtEIYlhMrFnJfnATGdy+8QOdqnQI8= X-Received: by 2002:a05:7022:60a1:b0:13a:225:e191 with SMTP id a92af1059eb24-13b2271d3a7mr432816c88.41.1782738808572; Mon, 29 Jun 2026 06:13:28 -0700 (PDT) X-Received: by 2002:a05:7022:60a1:b0:13a:225:e191 with SMTP id a92af1059eb24-13b2271d3a7mr432796c88.41.1782738807961; Mon, 29 Jun 2026 06:13:27 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com, peter.maydell@linaro.org Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v5 30/77] target/hexagon: Add TCG overrides for thread ctl Date: Mon, 29 Jun 2026 06:11:45 -0700 Message-Id: <20260629131232.2487780-31-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629131232.2487780-1-brian.cain@oss.qualcomm.com> References: <20260629131232.2487780-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: AW1haW4tMjYwNjI5MDEwOSBTYWx0ZWRfX5B4DYfwKnqpk ALp7AyLHYUAAiLjBuP96kbunpYeIXo9kUC/5Xcqb8rKYX6yj6yGPZps87aqVGgnW2MnGl9sQFCt bbe5Z56ar3EcdzEA+njeYHO1MlDbEF478Qg5npaIIUsVIb09UJi2D9prclZR6JPPbczU9SLNSF5 VWKZ1crN/Tnn7TjZb1XDGcMjRhcbhuoVyjEbNn8fafOWtnkkWyZ+mR2Y7DcvvYRlytBy/5qC8UY ZKS/WQf/RA3rcQoAWmDDK9VbCfSM/rlnF2LkKANl1wJHKlOY1I7XcXfjjwn+YGebLJ6ZpI2yXfz P1oqh44rnbY+TkgGiu1oFwcLASj3sJeF00w/ULsAoXxx9l7zjhSM1nrFlOoyEWbP2H3TWZsHaQb Fik0/gbHQXLqmwJvYGgBFoJfZWb/7W3oDS3GuTt35vm2QLf/jN/FI9UC3wihW+wvXgIU7nkCdLS Nh3YlHxy2boCosGMNPw== X-Proofpoint-GUID: lJGCC-RUnGXuRZyYG4RqHXXcXma6mILr X-Proofpoint-ORIG-GUID: lJGCC-RUnGXuRZyYG4RqHXXcXma6mILr X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI5MDEwOSBTYWx0ZWRfXxXAET7ksu402 SLrtiP5LfrxK9Rd7P90XyawcvcdIcUlush86UOSg8f90R/8qvXvvSEULrO5nortXU5ascq+mJtt ZPXiEm71yeofFP/rJ3c/jpEzfgn+xyk= X-Authority-Analysis: v=2.4 cv=OcWoyBTY c=1 sm=1 tr=0 ts=6a426f79 cx=c_pps a=kVLUcbK0zfr7ocalXnG1qA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_glEPmIy2e8OvE2BGh3C:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=t9Y8JitlK4h6-XB8aEcA:9 a=QEXdDO2ut3YA:10 a=vr4QvYf-bLy2KjpDp97w:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-29_03,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 adultscore=0 spamscore=0 clxscore=1015 phishscore=0 bulkscore=0 suspectscore=0 impostorscore=0 malwarescore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290109 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782738875239158500 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 Thu Jul 2 10:18:32 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=1782739133; cv=none; d=zohomail.com; s=zohoarc; b=Rul03Sa3KtRSvvTiEbW4Qnzu7oodlVirq7tjGDkDcQiOkdsyQcAwitJNYOmWPLfb5RitrnAo3pADuNAtZ1ayuuvXdEqVYK3f/M/EoZX36aZPbC0gvTbSBhbMnnRLEQu7GcE5rHpz8JZmKkoXNMJ9YtSWdGbCma6D1AaHMxR46kw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782739133; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=f76/aySLGuSb+6z/WjeNBDLi0qrBPjMndnsHq7FTmyYFdd8KU3u9O8lS3G4DLetF7Wlb5rPCaN7SBfw3buUbPV3uBCdWsmHInaYuqcgattaUjaVv3tp8uvr+IHBKZ1dUya8iloSlokQTWjaOPr4i/anAJuQFg/nyQN3aIOPGsRA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782739133812934.2056694518807; Mon, 29 Jun 2026 06:18:53 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1weBo1-0005d0-57; Mon, 29 Jun 2026 09:13:45 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1weBnz-0005Z0-Sb for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:13:43 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1weBny-0003GI-9S for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:13:43 -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 65TAT4oT2627854 for ; Mon, 29 Jun 2026 13:13:31 GMT Received: from mail-dl1-f69.google.com (mail-dl1-f69.google.com [74.125.82.69]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f3nbgs1ah-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 13:13:31 +0000 (GMT) Received: by mail-dl1-f69.google.com with SMTP id a92af1059eb24-139ca26403fso1576491c88.1 for ; Mon, 29 Jun 2026 06:13: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 a92af1059eb24-139e78317f3sm28459106c88.9.2026.06.29.06.13.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Jun 2026 06:13: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= 2jO0e8rIhKLjhW5IYHunqKRgXza1ukawimSTttXDmgI=; b=pZMH4SN9wLPuTQiI t8CYA3R4j9+nbvCloZr7TZCH5Cer32So1J733W+5MYcfs2jQz1O5vWd/uktXn0Vs WOrczinJIJ81yGMbGhvhWcLdlasDeuSJvL/M1OFEsgiOuFcmSztkxtAWiLNiZBIM Dft5nBaY6PHw2iBih3VDL1hXHUWJl7H2TX9L4y1rfUV6mymxiywTcZX5GXoddevN 7CGE8wEP95fAaWSZVDpucFFqlLIlBn0XSIkxS0Uya81Uq371DQ7Nbia0UDz2YpAU hl6mags4tYNUsOqaCx6DI8u1784MLlixOlRu1p60UUjEAnDEo+RJSbO8s+8CM7ND AyN+og== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782738810; x=1783343610; 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=IfFp3nesHic8g5bBAqAF51P5Z2ppDEbxilQo+PCfUfETKoU2QeYq0kFVJ3T2HgTWN4 cW0hznZUr8K7/wfBbrz0eyt1+L/JBTTI91RxyFkyhaG/Pxs1PwIms4+FYLijf3mGY36J fOg4wlc+lugjzOF2t3y8yYrHOuPQE2dwhZyhTJ3pqbJzM2a3v1ahCHlXT18iOhZDh4CN 5NtMwNjG5kX/IOGYHrOUNQUR7LF4l5NtIB8rKgLzI4JP3vtU//8Ai9JX7T6XTZscTf1L pn7dzZ+XV0gN6NiCIgtUVTnIGJ/PV2+QTxufwCYTgWs4kYc49Sgjx2+TO08PkWQazNWz yJKw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782738810; x=1783343610; 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=KGixe3VFix3yUen3R42qVf/FrHMtpMNZJ+ZBHuzH6htN4sLNKCcA5W/n+7L47vptyS L83GMCAX/mqdUVhXPvRq1eNYz+s/nz1trCbhdUhSbYUT+rlNbatbmb+YOM0Z88Oy8ndZ 4BDmef8SSFCTCHga7GRMlKfQBQ9mdHxJHzI4jFR0DLsK3EOEPLHwMdCunnZoh0fuWUTR CarKp4PUv9JEwTxARSUliN/XR45oGYw3Crqdc6ilZkQ/VIV4kmPYthR+zwN9uAIwZnEI wtiYiI0usZrD3Q5grvoBStpMwfq6S33RWPNYjrYG1YQd89/kMCDWpgr728TUroLcD/dO LWYQ== X-Gm-Message-State: AOJu0Yz9H3sTvMjQuB8+y0C/dcdTl0eiKfivo3w4bRRexFZJAO1Aiv/k 5P83KmQKypbn0KlQbf0CTl1NaoTsKYOvJRQe9dUx7iMUgbqz2VnY1RAnGM0knwDqku60H5qDbPQ 3OuCjGMzPFbhxFaHYpWlz1GZDf9aenrfNLm0Th200v0tOl5sx3Zc2IC1cGbkYW1+f+A== X-Gm-Gg: AfdE7clflBcw859/cpCu4qtKHtNnea6mT8Yr2A3/IjHZZRdDJdpGs2fPpuVPOT+6O1t MZf90Pcx5wsY+KNmFRDSxn97xoQ+otKZnifVoRRaV5VfvzyhMsR4dvt3yQVxib3x8isd2nL4eF6 BKoRWrfQc1YtPxHe/6wSahJT20kLVn978iO9bP7x67UhU91GXxoY5E0BP8fGeZvS6VIMqf2supt kbWJVB0e+5g0EQZOS55uysFSyPwP6Ry5CurYVj3R1XREdxD6gZBa8KOLB15HzSvcJ0xEjnruulj hBOIcYmidvtI69hNPZF5MhxGqGnvK+eHnV4PXcEEop3kze7N3hMPGIREB4YiwuDPtjXzmovTaTG DIPTlIo5NZkMyefzadEw4iu0F9RWNKIhqWsgkJE5GvHuAtaPq+ZGMC1ilFcw= X-Received: by 2002:a05:7023:b0c:b0:138:14dd:16ba with SMTP id a92af1059eb24-13b22714f85mr393644c88.38.1782738810284; Mon, 29 Jun 2026 06:13:30 -0700 (PDT) X-Received: by 2002:a05:7023:b0c:b0:138:14dd:16ba with SMTP id a92af1059eb24-13b22714f85mr393621c88.38.1782738809762; Mon, 29 Jun 2026 06:13:29 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com, peter.maydell@linaro.org Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v5 31/77] target/hexagon: Add TCG overrides for rte, nmi Date: Mon, 29 Jun 2026 06:11:46 -0700 Message-Id: <20260629131232.2487780-32-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629131232.2487780-1-brian.cain@oss.qualcomm.com> References: <20260629131232.2487780-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: x9Gmg7yzIQ-_j6XyvIODIQzNTncLNzao X-Authority-Analysis: v=2.4 cv=Z4Hc2nRA c=1 sm=1 tr=0 ts=6a426f7b cx=c_pps a=kVLUcbK0zfr7ocalXnG1qA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=gowsoOTTUOVcmtlkKump:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=QG2uPxDT_WX1JUO730YA:9 a=QEXdDO2ut3YA:10 a=vr4QvYf-bLy2KjpDp97w:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI5MDEwOSBTYWx0ZWRfXyeJGQ7P7NLiG lWGzzMoOe+3YZEXqr3mquGU+zfgAigZWb2szHRdhNt0vrirYqYLeN+jQifZfscyU0hXl4JhCq2V t8Bk3vmFs7aEwKzEMK57cBMy7AG4Fec= X-Proofpoint-GUID: x9Gmg7yzIQ-_j6XyvIODIQzNTncLNzao X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDEwOSBTYWx0ZWRfX4waxq2Td/Xb9 Y4ZU3TMpxYjDF0HFVi/+fLzJ1FVK/hD7qqI3Ko43QJQfkXkCguDbXpZoSoFVYwqz33fGw71INdO FeflrwprOrmyvSybSB79jIyeq9dmV7B3OOcAAQg8R7nRetFfja7QoqtPTXYMuomXcanSezr6iHb wuwg+WfmUIM3V4XGstK/JzR0ACg5KgeLFu60xqi42JZ9fWspTQ3htQEl0wO/++/RWvnSHKk3f1B NztnQ/ZZwiTluGa44ac4dKzG3vhP12q0mKqm1N0xBPPrOf8b0o3dYLhUAXparE2kLp/qqaP2zsV kxzAzWaOCJA/dBe2Q3rsnW52W8WGsPQlroSFgeJBn5m9bKbfKAiDoZG7GuQgaMQbXHVEJsdOs8g w7HA7cMpyjb/bp0kgo3Q1zJ71XUh4vd5PUPv0LXwLAt9oQ5ZYlg0spr8gr1ByO45WNbuFbuJsOg ZqTBPN+7ZylQuXIKd7Q== 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-29_03,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 suspectscore=0 lowpriorityscore=0 priorityscore=1501 bulkscore=0 spamscore=0 impostorscore=0 phishscore=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-2606290109 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782739135214158500 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 Thu Jul 2 10:18:32 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=1782739194; cv=none; d=zohomail.com; s=zohoarc; b=WBlO80o4RSbThpJEDKUL2YpWUTI+k5JA2ZdnN3Rv246Skslo46bDc8b6VAjYq8qd3ySKASELlvDHGANShPTCU/IzzpCT7y2h9tDKPsOyWCKtfIwBzrOWW6ExRGmyUlM1Ehd8knawZcl5PmmM5nOdyhC68sSWLbnUJErLsBB+5s8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782739194; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=jMjyQIcrMqJzCl94fu21pAOZFYljaod19CEiKCkmjBpdJ09jamSuPijr7MzjY2MzSGiN4xxARIvUCDy68i8vvkETQ0vuxfWYAC7z7f+fJKnAZkn48YpbuCLBVoHENqjXSmqHG3VlekJ9OXTvDEBPz75dPvETMeDn0w7iLpBkyNY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782739194500558.531658298146; Mon, 29 Jun 2026 06:19:54 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1weBo4-0005et-1D; Mon, 29 Jun 2026 09:13:48 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1weBo2-0005df-DB for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:13: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 1weBo0-0003GX-2K for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:13:46 -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 65TATBMh2647641 for ; Mon, 29 Jun 2026 13:13:33 GMT Received: from mail-dl1-f69.google.com (mail-dl1-f69.google.com [74.125.82.69]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f3kyjhe66-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 13:13:33 +0000 (GMT) Received: by mail-dl1-f69.google.com with SMTP id a92af1059eb24-1384427c3efso10313636c88.0 for ; Mon, 29 Jun 2026 06:13: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 a92af1059eb24-139e78317f3sm28459106c88.9.2026.06.29.06.13.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Jun 2026 06:13: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= ydI56hjj1K3zzOwtbWnVUpF9xkvs46kCuETc/C2W1YE=; b=PUMNjirJ2Ed2f2KJ TkBwXnDjp2Apt8JexU7wJ6jUfv6kkG2R2A5GCEwvwSp6UT+nnBE1Sq42qtY3iPGE k997MrUOwAaNOw9gl0gg9os4Fylx/l/BMS0JTnV6AeevuCflbUEM56lgG3ZF9pj2 508ssqzdbCcOS3L0XDlphj1bIkw+NvPwAa8TtepoS2xaIq7MABIeQmT8BHG9G1qM C02S2yy5/SNXSwdUXk338bwUrd5nLFr9rQZxJP75pLoHAq3pC73rMOiJtSiyiNfW 7/VqBTEr0Z7Kmw/ZuTYnmOfNse3wtPrguMbghmtWqIIIvKuqr7aUTcJSwPlCcmCt hKnUUA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782738812; x=1783343612; 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=Okhypu15e/y8FPD4jAQ520CF3Q7eg4zK6UyzTUXN8dUN/+t4rGsmzWSFot8/kbO+rg oL8PH7i968KQlR/T/wp5cIhfB4HTzM38qn1KeY9xe8HYOfxwXMs2WERn4Aiq8ZFqx3dd aaUH5oamU52COSUoQzzzKq6YErOOAxYxdlAFvxTe9gEJe2N+Ink+r690EcG0xFNik5k5 ogASFkwo3ThyAmWCAhC0hHXJpdQwS/132ycjHtxBGt/JCsI9TPS/nx/qislkOc9qly0I kkdp7R2nZhi/qLsleCx/BqZClQ0KIgL7S6tebmJl/iP5p7dpuoRAJIncMUQ5/3jNOKR9 kNVg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782738812; x=1783343612; 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=Ly88RyCMvIK7dYP+zg4ozmy4bPbahuGBJqUwKvCycn+7iCiIl5to2i6b+SGz6Uv0nn wAk65uyYiOQaLEghhs/yfTbm1U4L7VgoLY9bZEO5NOW4DbWMyjOZmy6hWu8Q0zY9ogDs yDtKoPZlwwiEed8m+rfGDH8HoklRFRNEW71u0Zqc9apvFi2s/VlwPFrKgwNGk1wlP4Jf c4QdaM/S6sYmlImCHW71S4PwpgKMf2NHNJ2Gh/yZCiFr1Ya8ZYf6HNgdJ//LUmyWbTga T0D6v83+iUb2+ZAFK0F1EoOdmbZ+J6r9U+HZSTpkvGsXZbmgO2kNmBo/9TP0dOI4KEBK LdcQ== X-Gm-Message-State: AOJu0YzlWQvvBpQdC89IS6bJjdG42a5nwXKwG3nSPnzov1yor5DlUEnG 1hmEzUDm+Zx43QbflWs8XVNU+k0BtowI9kKPjfKU5arf6cREAHpNqmdFdPcC3JTBJHSz79XDKUX Fvj0ruwi1i5IKPc+s3KTAVw7uH5DgN2zxgX0ELEkr8DZYR7uu8ZA4LuAEMBSSo7PmSA== X-Gm-Gg: AfdE7cnuJz0QC+SmGK3WBANIMG07fXNSNn6R+a+VRX4c7+zT0iHMwkN/snpeGHqrntX cR7ihj9ygDGzCmd10to8D7zW7//i/CKX6bGzc84KMjEq7wqfE69YzHrgbrogjWDdj/Wja5NEtOp W4KAqDbMzhdljOtWilK6A3r+WRjG21ygfafzWlVQr/e1d/mEvW3wl6d+ltS2GizLszFfYVsNWvT ZjmdEvKgiLsETYIv82Lq5h1o2w89Dpqpg16cLnirrlZe5UJfVMX7ffMlS586N7oUTR3pgpcLA7q cBpBb/RwC6x6329beOeGc+PAgyyep1WJVOeV01N+FW4qFT7Zpx/+W5EBX0i6nVnpttNcXw0av6A Bm7Zi61mXnB8jIgDddmkVSJVPExlp4J0ffa2+0a7L71j/vG8JZCfUYs49CM8= X-Received: by 2002:a05:7022:ec1:b0:12d:de3e:52c1 with SMTP id a92af1059eb24-13b22719d43mr470502c88.37.1782738811872; Mon, 29 Jun 2026 06:13:31 -0700 (PDT) X-Received: by 2002:a05:7022:ec1:b0:12d:de3e:52c1 with SMTP id a92af1059eb24-13b22719d43mr470470c88.37.1782738811256; Mon, 29 Jun 2026 06:13:31 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com, peter.maydell@linaro.org Cc: brian.cain@oss.qualcomm.com, Brian Cain , Sid Manning , Taylor Simpson , Pierrick Bouvier Subject: [PULL v5 32/77] target/hexagon: Add sreg_{read,write} helpers Date: Mon, 29 Jun 2026 06:11:47 -0700 Message-Id: <20260629131232.2487780-33-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629131232.2487780-1-brian.cain@oss.qualcomm.com> References: <20260629131232.2487780-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: XZMzpZdzwDThSyq1GeASxx6dUD5L_9od X-Proofpoint-ORIG-GUID: XZMzpZdzwDThSyq1GeASxx6dUD5L_9od X-Authority-Analysis: v=2.4 cv=Ftk1OWrq c=1 sm=1 tr=0 ts=6a426f7d cx=c_pps a=kVLUcbK0zfr7ocalXnG1qA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=rqZXtLhFGwB6yMrbUaoA:9 a=QEXdDO2ut3YA:10 a=vr4QvYf-bLy2KjpDp97w:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI5MDEwOSBTYWx0ZWRfX4ljzNX8jN14z xA8vGqrh6bUAUhjSGbJpgzbE1GCiRrCSuhaLkOcKkF2uNko6tfAOAaALl1ZmjCDKvSark4aNGsO 6iScZ9yqpZJxbSETXebV7aGJDoGIpgQ= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDEwOSBTYWx0ZWRfX9BlTrnnp3tWX q888uZ7zZUJhO1hkvDiOzgZ+SIhXVHu3DgDsOg2baYtNmw7s7Xr7gk4+Q4tr8Rhwjn+hc5SxwVH tqa6O9+zwG9eNfNKvi8cYgIv8jqWeA4XV7YepqdiokNTBKcN6jpPeC3wzyBxRMiIrIdf6OBLCr6 MUAvbOVS//GHwyDWmPoWDt0+ql8c5tMFOKQq4VB8h3/AM/Cn4LEgVrOtCbILFN0D9f0kpuurqL9 XwluLJTTyL9t76lb3LuOGV8lohQq1hHsCmrRwaaXmFFDMrGPeYoGshW7eiWemvdqourdo/WEKE2 7hbuhqIKVzr0Wa9Ate9p9Nsjv0mGSS2y28eBU6hVh6nmM653q7u8KZEI4jyJOmE+To+rtoDrCJN kvZMzHWSf5/p+6iNxhzOhUUPk3NjbjXafpzs5Iz1bswQh+AL8SpvjuDXwqXqfLsXSnCTWBD8QpT 1ZdbLf0SRgwDVob558A== 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-29_03,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 lowpriorityscore=0 adultscore=0 suspectscore=0 phishscore=0 priorityscore=1501 malwarescore=0 spamscore=0 clxscore=1015 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290109 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782739196075158500 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 Thu Jul 2 10:18:32 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=1782739178; cv=none; d=zohomail.com; s=zohoarc; b=mDW2rRnvWN338DR/DGyqfoq3w5aOJEUFfSnqNIPFgCkCpVlNXgND+KDdvXLHpfxnPDgIERwXo97G9hMyba+LS4o/ZEAf/o42a10C0HaUzcTCPnRV2j7u2Ln0redEI9yn+uxMediiPwv0aYFNTPleZsTGZbAwT1JlRTY2CI2O2Is= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782739178; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=DWLUK5OpoEjyuH7zaLszRqmk68UDom7Am2/eleKevIykP/dG51Ze6DkXtyxWXe1UDQIdPdkyYYnpfwWAphM4GTzIS53zQtN0rDJpIrUxJOCF2CmyzkH2ctomrYmVhVsCgcTx+Tdt1lab9OqZ6WvQTKenXq932S5x7pBqkjUGc9k= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782739178587781.9374049478944; Mon, 29 Jun 2026 06:19:38 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1weBo4-0005f7-Ex; Mon, 29 Jun 2026 09:13:48 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1weBo3-0005eB-2J for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:13: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 1weBo0-0003Gk-PF for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:13: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 65TATTT72592877 for ; Mon, 29 Jun 2026 13:13:34 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 4f3k7vhsvj-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 13:13:33 +0000 (GMT) Received: by mail-dl1-f71.google.com with SMTP id a92af1059eb24-137fc6f8e9fso5835049c88.1 for ; Mon, 29 Jun 2026 06:13: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 a92af1059eb24-139e78317f3sm28459106c88.9.2026.06.29.06.13.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Jun 2026 06:13: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= xnSW3oZuwood08ngSSOR1Dm8XpJbybm5vIaVrHhZrro=; b=EVfZceJzIzsqXCbh 4mZckzEzj+cw2VBeu9OCSOOQtUVqRpuqHRTcVSHWlpfdEvx0FQJiwGe5GHumYbYw XwpEbDC+iT+iHcjGtg8QJ57L5WsOERIrxuB2RLqCVwYh9lkEELp2trvH0/mQp7O6 TPOtpuCpcAQ3b/9n3oO4RBCInjgukvJYtUf0KjwoQpOQgzm4tFg2vv085MRGIlAE HvE52gkEcIjF9jqb5zXybg/0vnyjj1K+Fn4z3Nai1l+aF1cAXQijwbziuTut2N/H 0iDUI/YraLI39/oWNOYofw8SluvNtXwVbtfgA11dU8FFAexr0A+63HAkf01uoJn+ WMbLQQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782738813; x=1783343613; 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=c8lwNwKYlVHLufyF2GOFIznlvFEwHjMLec3qIm7N0mTsEGPFoneGsrqe/VPzD6xZzZ kUyEU8dVuVTjP6+06LsMGGYlHZhWvbs+m7EcgGl7LToZhl7q4uLamNunFLwoILCxDd0X dAVIrzc+97SE07um/dAMMWMH8iqfqrHLNDotKBLXFaAUFhMQRBJV2sCBDbIRfdMB3Ogz BmhJ0c23dqPQm658FkBy5tvK+sJGl5omZ81TlfGFlDCuIQYdKuocDUGt9wrP+Q88SdzN oH7koq8ba2YEpFFuS99PLBIlf5PVYcfF7MPzP7ogpab5vpq6Kyw3Tm+vBYONk7qLYscd /v/A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782738813; x=1783343613; 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=kLrGW9n2xh34zRoA9quc94Tx39weuj/x8SVtvdBZz6cSiKLAxqZQ+z9iNVmkp7BUbu u9RxkoiQsnepRmiMrca9ck1jdNy2Ph4mgNcTSEaOmL9Ujv+7Ulz51cNpzo8CVMjB8cOH psi/X48nWcUGV/C4xTilKLUrdlGLufF2ZQgWpfksjtRzXq1uZiFv76tOdvnZYzjtol+V tIL+qZ2S7WJlL3Ldpj7kotEu6eWD5Y7oMELh0FiPtrlEMt3imq8jXYYj5TTxKZHT45HB PwWyBYSmwA3DBJfI4NkuSuFreIvPiVtjcIKtJXMh23OK701/4+kNiBcm7cXx3U5PPFlm 9ADQ== X-Gm-Message-State: AOJu0YzOSB6ze2A339eZEL7cnpS3KVfq6XUI1gkOmizs6Y61WdIAI9Cp McU8TH8h6dNyayCfZpeqOOojFczy/LqjkqgKDD5q1VagdlaZ3ShBz/DzATHQYKpPsmOgryU5gCl w+CSUOGbDf8BHkgJXQMlj4J2OBiKYX6y5Czkw2hbwnZ7C4EkUgfJnZgUYLVwn2MxXog== X-Gm-Gg: AfdE7clQbwMmaN6AEarxr/xs0cXXUjqxTp+QYW56a7Ro/CKa28Z+wHCvnW+MdRgSQm/ oDJzC4fBvdK6rLo9R6J900hArwr3RsCJACKvSh/fEUbLQFR5sl09OLwl1YGNrzgb9NxAizfn//G fGVQRllfefY/SpcmEv+67r+QN/UDBW2C2mm9zlHgFtycWasPv53vFzKuKLzWtIfDFy5kivFhZw3 rytw5ToLmi9eAoeIbqWUsU+RH2KJMttioLuYfWBx2PS+SERxAE9JXvicUsSkLd0ibrhe9aqTJMa VfrXRM6FEe+4dIzC/utQ55CAQuQqWNm5BCUcQS9UuykSBrLmr2Y0sxPpSlQahTzy5ar4OZYMdcc i1EKeEzvX50f6elhrV86hnjIULVc8N/5VB4xyPMl2Ms60XH5/kNIBAzi5HPs= X-Received: by 2002:a05:7022:69a0:b0:139:d66e:687f with SMTP id a92af1059eb24-139dbac859fmr15436928c88.24.1782738812843; Mon, 29 Jun 2026 06:13:32 -0700 (PDT) X-Received: by 2002:a05:7022:69a0:b0:139:d66e:687f with SMTP id a92af1059eb24-139dbac859fmr15436908c88.24.1782738812320; Mon, 29 Jun 2026 06:13:32 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com, peter.maydell@linaro.org Cc: brian.cain@oss.qualcomm.com, Taylor Simpson , Pierrick Bouvier Subject: [PULL v5 33/77] target/hexagon: Add representation to count cycles Date: Mon, 29 Jun 2026 06:11:48 -0700 Message-Id: <20260629131232.2487780-34-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629131232.2487780-1-brian.cain@oss.qualcomm.com> References: <20260629131232.2487780-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: gBR4AQ5_YWw5RTDkKnwIT5EeabwMgV2G X-Authority-Analysis: v=2.4 cv=CqCPtH4D c=1 sm=1 tr=0 ts=6a426f7d 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=yx91gb_oNiZeI1HMLzn7:22 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=gmA5YO3DfmenxuRff1QA:9 a=tsLLKIjAKpJP5df9:21 a=QEXdDO2ut3YA:10 a=Fk4IpSoW4aLDllm1B1p-:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI5MDEwOSBTYWx0ZWRfX05tRf1huHnFI gtDxavbIHb1NgOrhLoEhTiJ36zSNpmNFyOHGLubQRJMYisJ3VS6iPzkQ8WTjxlQhpiBDh2Y9QM9 Yaa78/rxYM9RcojfAEpRm/CNY8lGUdQ= X-Proofpoint-ORIG-GUID: gBR4AQ5_YWw5RTDkKnwIT5EeabwMgV2G X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDEwOSBTYWx0ZWRfX8ytw72jTLuam I8PhQdNTcP4hfmUbQWZeEpoRqslg/uqNEDWc7rUbTaNEC0w3MavbgnLslqVCE7scPDMtyGs5H4P 3ZaeyxJEpYPybCTvJS/+pbW0FezDJyn3YzroT/Ux776aVeXpShMeabfr9+eMGvfGUm3Ek6S6qR2 Phsehquqnz7bg37FgAkPEpKKazJoPOZ2a7XNdONCkiUF1a10WldoAq5qH5qmTwLCd9pxmQHBzFm bJNRF0aQv41sRvW3z12edkwamszbSx46LX5ieG5yQ+dqqA2/WcMr/ATfEWW5puxfKBTWB4j9J/l Ptzpj4S/lRjZe3gYzavrbE4LxjaVEpsVbWTxDUq0detuW/c08q+fLm3vVRgx/0is4KooyJS+51D VB4rjBJgahOFliJmy1hUOdVNTxchT+PEaVylW7ljw40bbVWoT3/d+Fbz2GyAwpyFf2AU/oH2qev NYLGzhHubuiVR95JZVw== 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-29_03,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 bulkscore=0 clxscore=1015 impostorscore=0 malwarescore=0 priorityscore=1501 spamscore=0 adultscore=0 suspectscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290109 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782739179459158500 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 Thu Jul 2 10:18:32 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=1782739116; cv=none; d=zohomail.com; s=zohoarc; b=m1KCGij52W3MZhcd+XWZcGs/WHCVNwqOd4TExHXVFAUBsv+X0nkFFZ1u2XyOvcRtTk85AWgqz/kkQwIxKy2wE05OdlTBa9ujjTr859p19zBSyKFRVrt5nbZcSwHemRSQfANS51OpkaLKZYX7xxKNPeE9WYB97lfYD8HzldEUAE4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782739116; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=c52PseCaIhFQNO0ayUnT6hXRzGgJw6pykv1oS6+z+sP1t22Ipl532DtSU2R/tiEe6vhC+hNxYsnYabs8CoKtFJHFCqUryIwIBMjW00PoCesWC89Wb7C7aXVqzvopw8uTbZNM7I5Y43MUXRSIFKe446AZ2FaQCvXhoF2R0/tFG0Y= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782739116795854.9568504831049; Mon, 29 Jun 2026 06:18:36 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1weBo6-0005jP-0N; Mon, 29 Jun 2026 09:13: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 1weBo4-0005fA-KM for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:13: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 1weBo2-0003H4-Su for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:13: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 65TAT4tb2627852 for ; Mon, 29 Jun 2026 13:13:36 GMT Received: from mail-dl1-f69.google.com (mail-dl1-f69.google.com [74.125.82.69]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f3nbgs1aw-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 13:13:35 +0000 (GMT) Received: by mail-dl1-f69.google.com with SMTP id a92af1059eb24-13b0686d13eso1427892c88.1 for ; Mon, 29 Jun 2026 06:13:35 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-139e78317f3sm28459106c88.9.2026.06.29.06.13.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Jun 2026 06:13: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= dY/1s85TBUfEZ6DKxNXbQLtO9YNnO553PDpX0fAztOM=; b=Qr/Qmz6u1WOBGC8f VJByFVm/WQRDhM4qinwLLAACO4hERrb1nQMkhMkgF7G3sNtvKmq0zsOGciv6Ii50 qdlG67by54H9ZEgyek+ojGHDPQlUjCBqB9+0jrdAAn36XJPOv/yAFqRhdkcKV7qP KrzfcSPo1nkqhfECDOJsGVRW0WALhGK8Km4CCFyUMYsZm7iW6htTuQolTrhZD6zj fTzJAmNnobHYN6DtYjchr3sZvgK7uwYSMUox1CXdj/F/r9h8kw90i41cldACD3ez U0F0kdHKFJZppw9ukBfYRxIDwOOpcW/HC3ZR5d9pQf7SOSDSnpAF6xCgEYKQ7McO OxBAPg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782738815; x=1783343615; 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=OgurDdSqai3yqObEnhCwhz3wcE9VwxgxVRskNBnKR0dEqBCdX6yKW9k0PjXmltBnJp ilkACj8V9j+DbyxKiusLwa4ZE3feL+9EZAsputB5BYBiH2e/C3zIkSHYHnW/gX9rzr1v lqd7Bps+Jh8M6sO1d8MSCCEkzs7AxY0IxT1p63+qeKMOee92JFw+LfshyX5b/zTL8QUT bVLR8OLLp0a2hmfyo++Qr5Y+Fm4csMtn/iO/tBb5mLcRTJsZr9kkuWzyUZv2EHgRTu12 vtqMLPl4JrspAZHVHGhEty3SauMA8G5Yiv4YMo9qnxfYebtJma/yJPWxGrtKKQdSkDzU dY7g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782738815; x=1783343615; 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=Xtx9VuxiESrkgJXRr/l1hecJd+XMno7rc0wtkN+QSop50CQyBh1oIgeOWReyeOb7vT YgIVlRcazr+VhBAEvTQ1RHWYsXvGpQSQOEfGsUc1VMGioiPK3nHBCGYPjuefXHIw6/zE KsI2/7etXHQ8oqYCOX74BZaeQbbaawVuZ1kIgtqPBLWmFLAAhWZdYCW7nAX4ehsRe7qI BCRr/3vTV33KylI8Cx+5ikjwnG/7pP8piU9gmmOIvT23/soFa3P6Np1a6OlRps6hiGVz grbEuYBwQHxCfa2AkTJzxX7VLtUQef/Il7f3RQV7mvxkD2fM/+kqC5WN+VtESeqDHxw0 VZFA== X-Gm-Message-State: AOJu0YwRHN+5AfG1Ba2sCApuIr2/iNx+FbkQItq3T7uY8rXsTEuWfzCU OjzpwoL+WgBrnhb6mIydjlyVn410C8nLl0Xw7RrYzp3yS/RyrhR+QNQXYb4kjazKbtCHgYT6A+E JaudxLEjU560wGez1SkvgR/dypQ9nvREcGut8XpjaY8DLkdIUxM0gJXrYqyUACJzEOQ== X-Gm-Gg: AfdE7cmrP+uQECrLujWzDRa5j4ZGAioSB6kErZQmtLE/sHV25rhB3oj54K6r/F3ZEEB Sk2+A1Q5vTWKUHAan5URfwA/Z6feRGmaKLx8u5fDRj/mV+63pVpXGBvOpNN6LoMry/w8KB++wIe OpKeHvC7J7QxvWq/gMzSyXhVofyvAng/cOTEn7nwTKht+25sRaFTjAvCY7ItjV1boLYUFW375aJ OMuBqQ1IGAo+B4gU59UqKI1AQeRkVS6eQm8PBTo7Oe5hFX4LIyhGOOQ6M/Oy1OLDo49hIMvTXQT TTZyvsH6e6ZPVmUMMov0bNAHMXZ/XmHESnTAFdnuIop41BRXDkXd6z2DrMp+STkdMWPsHygkymt DqiYdbqjmM/XLzT5unlQyC/8IavPeKpOD5A16HBxWsMxQxJMlMiGWahhdYcM= X-Received: by 2002:a05:7022:301:b0:139:e497:a805 with SMTP id a92af1059eb24-13b220da180mr430767c88.10.1782738814922; Mon, 29 Jun 2026 06:13:34 -0700 (PDT) X-Received: by 2002:a05:7022:301:b0:139:e497:a805 with SMTP id a92af1059eb24-13b220da180mr430745c88.10.1782738814317; Mon, 29 Jun 2026 06:13:34 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com, peter.maydell@linaro.org Cc: brian.cain@oss.qualcomm.com, Taylor Simpson , Pierrick Bouvier Subject: [PULL v5 34/77] target/hexagon: Add implementation of cycle counters Date: Mon, 29 Jun 2026 06:11:49 -0700 Message-Id: <20260629131232.2487780-35-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629131232.2487780-1-brian.cain@oss.qualcomm.com> References: <20260629131232.2487780-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: VE44uFc4OnnKQ7rI_QFbTp8V7F5x6HVt X-Authority-Analysis: v=2.4 cv=Z4Hc2nRA c=1 sm=1 tr=0 ts=6a426f80 cx=c_pps a=kVLUcbK0zfr7ocalXnG1qA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=gowsoOTTUOVcmtlkKump:22 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=Bw4caLd0n_0OF-yX4NUA:9 a=QEXdDO2ut3YA:10 a=vr4QvYf-bLy2KjpDp97w:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI5MDEwOSBTYWx0ZWRfX0bYG5e7d9a39 alof2IoQKr4R+Dx9FRp5a7b7sh4k/bHfA4t9TdqQGqDiN7j+jKLkrTRFlPWpn+JYlLP00GQWyww P8nOwlHGSogmpZUZFU/mXfcL55zukPs= X-Proofpoint-GUID: VE44uFc4OnnKQ7rI_QFbTp8V7F5x6HVt X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDEwOSBTYWx0ZWRfX1IW+D4mfJ5y0 hAJ2CwW3xR95nQZUmIUgbKKv+eLZuW6e634AAsMOliUJ3y3k9aJ7z+sM7xEKue1Fn1YotQmT8Ce lCY1UKVCbkeeQZclzjgQbIjIGl0t00RTC4y24VVOnfO5ScbMRrRsGm5jpxbd2mpEp+CfSnS7rig eBmBUb7REmBkcA+hWnSoZ0ic7qBbxe1mG8SzM/Dm+KRn+BDjfGVSse9mY/ae3/AWO5PZM2ewAQ9 Ty49/Q0ygcDcwHeF/JItYAnJj84n8SyfbXIK3B1l2Xw2ViPZwOjf2aHMURgWyjt1FVGLiCzurYa TICcI0lI/mL0RqdfWb2nSw7ZeJv3huuyeQfXEVC5HdfIOcnu5XIuEfQNaz08hkScprkcDSlXHIo VdBGG7RNQlUe82/mNQNYzPSwoZkqAvVUs1lEP4xqrVn6cDV2SHsOgJ4GGI76Tc7dtE1MTWQIyGn 1yKus6IHHYDUjEmOP6w== 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-29_03,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 suspectscore=0 lowpriorityscore=0 priorityscore=1501 bulkscore=0 spamscore=0 impostorscore=0 phishscore=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-2606290109 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782739117277158500 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 Thu Jul 2 10:18:32 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=1782739116; cv=none; d=zohomail.com; s=zohoarc; b=FdIlEPAK+9gY6dG/Z8DiNkAsjB+yEDEBoaGTjGbvbU2UGr4UsaJ3VGQSbJUYy87EzMeqpxEkFY1ChuRS9JktmjMhO12U0Txnye3IQbZPYi5vfWFXAzNYDpftLOhyITpl3H4KNo5qPrGpDHP3MXGW4NVnrJxad0I554xL68dz9BU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782739116; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=R4dB3aANh1v0HJv2f18q1MBeN6fqfkXhdsN6jUo0QptvNVq66D50M7eIINndb7ysttXxL3GW0sfCOB8QYU9WNO3bEnQFHx6UR3+iPzilxpk3ZgX/zBZq/q6UJZbwg2a+wyfTwUYNVQClGhLAZ6NxrFs9V05sTkb9huSTynw1S5I= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782739116668503.8794622001428; Mon, 29 Jun 2026 06:18:36 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1weBo6-0005mN-V0; Mon, 29 Jun 2026 09:13: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 1weBo5-0005gz-K4 for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:13: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 1weBo4-0003HA-4j for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:13:49 -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 65TATKLs2656156 for ; Mon, 29 Jun 2026 13:13:37 GMT Received: from mail-dy1-f200.google.com (mail-dy1-f200.google.com [74.125.82.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f3np7gxv3-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 13:13:37 +0000 (GMT) Received: by mail-dy1-f200.google.com with SMTP id 5a478bee46e88-30b877ee493so5157442eec.1 for ; Mon, 29 Jun 2026 06:13: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 a92af1059eb24-139e78317f3sm28459106c88.9.2026.06.29.06.13.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Jun 2026 06:13: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= MzvUFKvc+sUpWvc2016FnOxj5PhtBZkyxIiMWx3S09s=; b=S5GV8S8UZNfFj7z6 ibMp6ZmFL6znGjOPu7+wOL23jgEOayOg7czOVfnoH9uzVCGsJ4aBYMMaiUkWXVvZ gy89QBWTXVh1oZdI+LKJWxvG/gWIDrNLdQ2AgllGGkVq+L3IW9dduOEHxXXBln/I T8AOkFFrWAzi5FWLR1WVzsjwsdqfn6Nc608Gpi7SPAU3ddxnrwzgtE2BdxYuDcf7 22399Gh9OnQ2Kj4CNfYsbjH8req8CZYH9/puh88HVDg8HAuRJvX1Tcj9Fw0oAUwG gJX01fqi+AeGWlV7zjzxb8Zi7eJ+jQNf1dtKb26lGXCi69IhkXlFQxKEtAAxIY40 biINbQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782738816; x=1783343616; 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=UC3qioMuu78ARsKPrDqFrb8KZbkPgPLtmLsJi0Ij8ktxPMrteIlo1d5UfLwf9l7Xrz BiEFQ9ceKsEis8Wt6mPZoZqxD3vW6k8kunczhKOE/HCEuZ75IwDb4QxNsgSBF0vZelyi cdswQ0P7LIOnkaFW2WqrVsqa0i98e/yKy3LjNsxjYnc8PN+Kw9RCC6C4A1DjZmqLkojn OjI2cxThFuezcXW1onHVnPyVVg/4Ux7wWTmixV0jw7PRM2NuSAgz6WzYyq5/28evleEw RX0U+qA77tfLl2aR93X034WAxtx1bf4uX3o/q2ZGjc3i/HwiTHTGTySMSXDIzC1ShnN3 20fA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782738816; x=1783343616; 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=ppjBpBdvYQ3OfPF5OgVuJ6KhbUTqOKKpAZa2U8fz/CubZTWF4z8iJuXg0K3kGDXoAp mvmSXfWfgU0mKwULKJ3Ln/LA7BHDh7uedU7VZK9UKw6armUxm0lR0RPUoxu7yQODx9YJ Apg84S8Mi7VmTT/Hz3jG0Q+q2duxKlCVMt0eqbGg3+YexDBAEszOM6iD8jcJvtXsrRo3 3vIQNdmHMnv/NdbeWDLVogqD+SUae4DfnrHjCL2ju+TzQ4rm8ge5a3c3GDVOjubPFWzm 9DjcIVhlWzAjKXSmxrMlymweYRoyR3ARH8DXjofd5u/XcDX6NhOlsaiStSYabuv5OHBf v9tA== X-Gm-Message-State: AOJu0YyKFTXitHO7xCD4bj2Lc58/dCEQSXBk0h9yI+z09PGIIrd3F4Ro K1dTQ0gKOC6eVN2n2MtImJZalphdszjPsIUQmg2Zn/bvbv4fkwdihcZU86c+17h58jiW0AYYQFP DoGAkP2Gl98QxI3rasdKvz0YG/qpZtG+ZARrsL7y01IDB1Dh6jWDlr08yuMp7EFc8Pw== X-Gm-Gg: AfdE7cmA9P4wqGwLY5nd+6iCC9PctfwV8DrwBJKrdFb+Vgi7DzUKX8Tssz57qKFP7A6 bAWcJIX2Q2lrnYgEokioYElg6GzEMel3yKqwGL+yCKHOdZ0gWsxG63wI0iyrZ9qqvWiqB7EiQhu niOEiXb69Us5HeSLIESpt1NeOME6o1R3QELqo/ixpRRw0+rlw+nnCXKH5Vp8BAU4udUPC/mwTAY MvLIlDkUCKQ6kT1bIE+tRsCVl4ISd41SqznbJE59Jd8zD3bj0RG4RCW3VDJdpQVyhiC2Gtlxchc eFFdRv+1RzcstJvD/i1WxYkLzG/VTUkJuPgwp789pdgmNNivOST1ELqvUP32ABA4zE77VUYEEpL 1/cxYBu6uZUoKHu3K0tdS5NsUZlPhU+SqAf0Ank0UN90Wv0Cka64xPCP1kdQ= X-Received: by 2002:a05:7022:f9b:b0:138:5049:cb88 with SMTP id a92af1059eb24-139c3c1f687mr19960082c88.8.1782738816251; Mon, 29 Jun 2026 06:13:36 -0700 (PDT) X-Received: by 2002:a05:7022:f9b:b0:138:5049:cb88 with SMTP id a92af1059eb24-139c3c1f687mr19960057c88.8.1782738815703; Mon, 29 Jun 2026 06:13:35 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com, peter.maydell@linaro.org Cc: brian.cain@oss.qualcomm.com, Taylor Simpson , Pierrick Bouvier Subject: [PULL v5 35/77] target/hexagon: Add pcycle setting functionality Date: Mon, 29 Jun 2026 06:11:50 -0700 Message-Id: <20260629131232.2487780-36-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629131232.2487780-1-brian.cain@oss.qualcomm.com> References: <20260629131232.2487780-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: AW1haW4tMjYwNjI5MDEwOSBTYWx0ZWRfX0Ziw3SBocic/ ljQ4ijB5CcsFar4Fy6Xe4o1OXxFYDjPTppRf/or0B32/zNQ4fB80auOhfBF75O7Q03o8PnrraMf 7LfEDh3Nwzc6d6ON/Xpodl8S674t17e6/ocpWKrFkrOkzrvKf76e9hjyA2WIRxBfAeti2G/+NBa oTfD3f5/ASbbxnP1blewutkAHet79LJaz3pfM31eweTZ4I0ADaYOmsFZEtv/RO5Vegxe68lSLsQ L3ujuRz27XZKoCwLR4s/MU1HgwkK3iv6iMvQgC8tjyyXyNT3DEWPqCUySdxP0xFEneTC6EmBeKo UF+dskeCYihPKJAYsZQTPNdXSr+fD2oMjD5225zmnw71igoL6hyI59m44CaiwnBn8LLeM2yBET9 crWQVCqqV9PjzcTo5+ZnOQe09lNVSMlO0JG7oZXGCvLQOYsb6cZOWB/a5q/YoyuquinACmPrIv/ eAO9QV2WtTDiLx8OVdg== X-Proofpoint-GUID: OoOOMFlYe6jbEmodmVb05lcTjZUs3-yc X-Proofpoint-ORIG-GUID: OoOOMFlYe6jbEmodmVb05lcTjZUs3-yc X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI5MDEwOSBTYWx0ZWRfX449owf/NgXoW liUtrQRswRIrllpFZgPQZXdUsCrg9Hy7uIfkN1GFFYEn7oaZnoc36OBN1Lkz3qYVvhG+J4gJ1l8 ITomyYERt7kx1sRDcDXWlIz14ebvcn8= X-Authority-Analysis: v=2.4 cv=OcWoyBTY c=1 sm=1 tr=0 ts=6a426f81 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=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-29_03,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 adultscore=0 spamscore=0 clxscore=1015 phishscore=0 bulkscore=0 suspectscore=0 impostorscore=0 malwarescore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290109 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782739117127158500 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 Thu Jul 2 10:18:32 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=1782739116; cv=none; d=zohomail.com; s=zohoarc; b=Kmz2aO3z9VwtxNTwJN0fNhrxJ0vxlXiuVutxmgXfiTHwFlu2HQrT/eYr6uDX8ta14+HV7xDY2hbPpzb52iCLB1rTEwISPn26/XmBmi8xSNOW4roKavHt9Ya8ttd3o5GF+30WNiFLc86CJuA5CwpvVfsYQ2y/HvumADTe3Ec94Uo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782739116; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=gtuvr0zJ8t/Q+K1klJx8s1H7x3zIVRJUs0HHlfb6pvfEascwh5/0CJ3p0n+10hHUL9aKUG5uLbe8FLcLDyFWCqJoypyrn2lZqpPJ3dE+k0rAQh88nkTIlOMTvmS1I18P9fUCwBY+c/POLY58WglD7I758T6AEpSmyV8mb5ObwIA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782739116668292.1392261625256; Mon, 29 Jun 2026 06:18:36 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1weBo8-0005sL-Lj; Mon, 29 Jun 2026 09:13: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 1weBo7-0005nJ-7D for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:13:51 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1weBo5-0003HF-Hu for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:13:50 -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 65TATJmC2656106 for ; Mon, 29 Jun 2026 13:13:38 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 4f3np7gxvc-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 13:13:38 +0000 (GMT) Received: by mail-dl1-f71.google.com with SMTP id a92af1059eb24-139f5f5eae7so7537244c88.1 for ; Mon, 29 Jun 2026 06:13: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 a92af1059eb24-139e78317f3sm28459106c88.9.2026.06.29.06.13.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Jun 2026 06:13: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= RwPVW3CwUQS2/lnObn+K7hYU+7Hhy6ohC8oxC7MFC5M=; b=IIK56j/VSIjv9JhM SjW329RVBnsTX8JBQ9g3w4kJG0PNlpjtoA7nHPOzBCfBFojxNI6isf3mmVheAUxt C8lcZlF15ER1PTlsaSoCa9T45fpmXI9yJTClySqvsiyW3O5ISmFcFNyV5hoNrRdK JA0kIT9y19skUfIuB8GuGp2eUEfWbRso9i1ZA5ngj6wXYF0tqizWJsVjZivSyUyI x/hanx/SscaI37WU5aSx276EiGBoG1XjaQhsLoKGGcIfQrdGMo+oqpUm3EIM4v1P XiYrfoftB399HqDHUsA76dtHTRo4/6G9sG3Y1pT4pqwTqSnJOkDz5iwH//ok48Uz M358jw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782738818; x=1783343618; 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=TCz2XCQ1DnT0tzoxk1BdPHBkcx/hayzur3wUWGZ/IMXgMIXAejOP7c12HHjnxK5lN8 6wtLRKJnuq2nXpPOwvXz2MwW7ykOrQozLUrwAL9+qNPKvkEOoT2eDLKw32TLi7qXVMpo 1smi79bBBC9iI/IE22mSzmXhqojhVu1/t7DOk37tgmtgrVLa1szXVqrrqQUlaDeHOT6o CxIiKOw6hc5ExJlpT5MEVUa9gFlqBLwhHace70Kwjc13MG8S+oGDQ7faW0I5PPXQIaCJ xQTvJv/dfFMqW8aoaKzGMit9VI7jARRKkR3ScdYnKK0tSGgYGaC7MOcLd+e4uxIP96QZ V/5w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782738818; x=1783343618; 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=eIaFQcBQuhJ6kjD2njVZWQ6T1xmIwcwDyaH0Pm8wlwkqKqp1wIn6HBz85f4AzWs48W f5+iUDnaps8LYNUaAFATpbyD0smq+LQHM02dxAOKrrujQkh6gG1QQXXiz+3iH7XSDe94 fJBsKUCz7v2F3Ko3svU2SMeNxdB0Vm4rCCDDaP9eBjrhBgvKY2mi84rd8J2pj0AlpTX9 +TPA6/rxaQRxiqkjIDup8+g5k/NqHFdVM8e5HFqI+HGL3kpEyBRVNDcpxvweuV9Nfllw k5caM6+1O6nzobp3oP/EALgcFRsQlrSSAJHf03yPK/X1t96jbNl7lLXQj8juJPz0gJdu g96w== X-Gm-Message-State: AOJu0Yw0JlQ8rnhhHUoKuKc2GOGeuHw7r08dGTe/V1rtSSa0uIxLisew iDPP2XM9FAwH8robrbnnByOL4Vzj/fNZWSHk9qOAhO3h5NUap3IbnFibTmGN8RFroCbHdvb3vA0 S9p6Q4QwE6c9Dv4K5LvdhW8IatC6IDvA7caIm/oaHE0+OY8Yy0tp2skE4nLfPSdbddQ== X-Gm-Gg: AfdE7cmKTSodivZQQ3k7IMl6OPZGh1reiTdiKLImuqw9CgxMy2c6W/eWBN/zk4KEaee UT+l9NC8O1k6K17Y5CJJ431vQ1JqqwTiPEOEYm9aZca0CcTeVXKgQJ4Z77uKe5epHrMsr0xwBcm 5IpciIjOy21GX8IIcJ+hhFY7GtTlxxpbMx3bfr+RQgSHc8ONcqksSmHJXvD0uZWx3rstMF8AS5d xBlUtdazCcEfjebd/PxG5Vwwf8fXnDC1KVYOvBikN/CFcoSDvzOC/uVIvAfVWU7el8GDnf3fZ7z gRvh5x1zkJl57gSwP1csd+R4/AEIaX+bXw+6lj1Hv1hP3PKYVxC8L9PfJYNzXLFw9kjA8sj0q4i lvEnrT0rBTMWrZr/b2stdy/g3vZOiMvKENkYsSpbqPZrI6mz243KjgvlPu8c= X-Received: by 2002:a05:701b:454d:20b0:138:11a:36f with SMTP id a92af1059eb24-139eb131b1cmr5674489c88.1.1782738817595; Mon, 29 Jun 2026 06:13:37 -0700 (PDT) X-Received: by 2002:a05:701b:454d:20b0:138:11a:36f with SMTP id a92af1059eb24-139eb131b1cmr5674470c88.1.1782738817076; Mon, 29 Jun 2026 06:13:37 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com, peter.maydell@linaro.org Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v5 36/77] target/hexagon: Add cpu modes, mmu indices, next_PC to state Date: Mon, 29 Jun 2026 06:11:51 -0700 Message-Id: <20260629131232.2487780-37-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629131232.2487780-1-brian.cain@oss.qualcomm.com> References: <20260629131232.2487780-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: AW1haW4tMjYwNjI5MDEwOSBTYWx0ZWRfX+H2zetliEDmy UO3rmQbNKS3pn0vRnrGHsqspRm3Rq3iiLVlqUh/6+epNmVBpWukAL1OUDDJwRipnw0ZQH7Zfo/a khmQW3PmemBbeoUDA8kHQJxmHhM6cwjGvGreCEDYDZlMn8U90s9slzDqUq20fmDXK4DeCdUxpbx p9mbr9Mf6xugQrg0XDukBuEmGJ8R5nuFEiAQ0qQ9k/hXPKaJgSP4F6luQlTqfV8PlwMD7azfZyv Rs0FuvZun7629XQc55mhOrse1RXcNiLVTwYnGRi0r94F03YCgJnQf5lV9/0JBKF2Qi/S33k+25H NVPdffZ8vhXijNda3/H4K1XvUk9mJCFQYoFR22AHKqi4lN1eZsZISQ+oF86sr20FoBFPKDPoiLD P5z27ojcOMH6e36QLMs3VmJBON0J2o5MTBGdVcKoM3Ty6u8Qd0c3n2dG+U+fhfwfGcE1HqO/Zp7 Afe39+IvgsbL2umeaBg== X-Proofpoint-GUID: 5VKS2RR4w6AzWclwBf_KspSWcD6sFope X-Proofpoint-ORIG-GUID: 5VKS2RR4w6AzWclwBf_KspSWcD6sFope X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI5MDEwOSBTYWx0ZWRfX45DV/gnTdwqy DBG612on5UflIdJoFxMsrVfGIW0mER6s3CEecCFgCCFzuj4f1UqhBWZZf4Ei7XOmOxRdeVAi3Hs la8sZ34gJMo+v11bbMylt/vqiBzfZQY= X-Authority-Analysis: v=2.4 cv=OcWoyBTY c=1 sm=1 tr=0 ts=6a426f82 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=_glEPmIy2e8OvE2BGh3C:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=StfCoqezVcLOyubjZekA:9 a=QEXdDO2ut3YA:10 a=Fk4IpSoW4aLDllm1B1p-: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-29_03,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 adultscore=0 spamscore=0 clxscore=1015 phishscore=0 bulkscore=0 suspectscore=0 impostorscore=0 malwarescore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290109 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782739117141158500 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 Thu Jul 2 10:18:32 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=1782739128; cv=none; d=zohomail.com; s=zohoarc; b=mKRIWXkgz1onOWNnXC/9aK+t9qUwZVDnnxOor2bz+GFq4ZEiD0vzpuoRC1JCDQhCev5MguLCFPoUuHLwKsTs3eSfvFB2S47DzSC7O1pjBsEgxhXSBJB+QY6uyppS9BxwYMyTnb1ptPIqOQAk4y1uHlXOe9FSdR6BCmgerSHDzUI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782739128; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=gloyrBoJr9e9TDgRCtak5r393yPTKVTDsVbjnBz/ZteylIbE+Eru4wdBzspcsb/5Lv7FfewtHru3oWCw84+LwuhF0775zbm0+TEAwb5I+IhaRWJWT4SDnISXOesP1j8NohqMcqAzqCJNFJnFEkPLCBDc+DewgLYhARJcEb34iR4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782739128012939.341208290821; Mon, 29 Jun 2026 06:18:48 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1weBoA-0005vd-5B; Mon, 29 Jun 2026 09:13:54 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1weBo8-0005sh-RD for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:13: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 1weBo7-0003HN-5S for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:13:52 -0400 Received: from pps.filterd (m0279868.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65TATBAV2647650 for ; Mon, 29 Jun 2026 13:13:40 GMT Received: from mail-dl1-f69.google.com (mail-dl1-f69.google.com [74.125.82.69]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f3kyjhe6j-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 13:13:39 +0000 (GMT) Received: by mail-dl1-f69.google.com with SMTP id a92af1059eb24-139871a52c2so4635437c88.1 for ; Mon, 29 Jun 2026 06:13: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 a92af1059eb24-139e78317f3sm28459106c88.9.2026.06.29.06.13.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Jun 2026 06:13: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= T4QeLlBFUTpGlmsbriWoI9s9TWXslg2oBf/G9cVJFSw=; b=bkEVdnqhX2McVuCw sjLvQNO+W5CjoCpmFHjDv3pa4w9rLxQ0Z9dMTr1QaBUKNucEQ1xxhr8rzxGcEdFm IbK1ArMyRmaXqeKvBD6EYnbiOkvtEUyExhdbhkdJ5VEB2BtSSkwdc+rRk4NWkfRF 0+FRmMpv8fme1BI39Zzl6YlTY4QSNVzjlgaXXopTbxS1XDPiDLU9W4oBodYEwKDE DU5cZ8ayb/dYV7fRbAboBjno34TDjn9zUq0ijaTjaOYZgtE9Mb9zkX2mMnAZOjwM SNPHnDvyz2MSmOKU8xbjQIWEq6UXi4cO6yEvPeR0plMEf1w57hwzErgAHTCW89ET C3PVpA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782738819; x=1783343619; 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=B2aMW1NBUFWvwptZ1sShUtAcOVxmkOD5oqUlQgGbX1YaGsR+qy0UlSqG3q/OQT37bx 4mwI1RT+oLU0wmOk7e1Y9jK+EcZK6VcMewa0Pf44xDi3RZncQ245s+v50Is6cz/OFjLP c4VFpPqfoU6jw1/33xM/K4lJCIwv9nz4hCtu8LCcYRvrwHY1B2T5hdoRwTXf3uzm6HYg dNtgIhr1fvcKxGXsUuEs6iGyPOHnSbEGpyP81IHF2hnwNCnShn86Gv0B3qOTl5NjTVZV WwI5Ie0fidbcg/6dPp6F2tVGOqA57lJQs515F0Rl/HjTpyiU1JKLiQcPWumcGMFM+klX mukg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782738819; x=1783343619; 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=J3PVgrr4naXGjgo5mRGN4bJszwxZtGkzKzYOHzMq29t3t1tgHA9E3W8vCPRXfNosGF gcJ1KVDAto38ioyxbmhdeXS2tpvCrLy/acuBPaJVcxtCohqFcqEeWZeuhO4uFoTNBrai oyfNc30K1pxPZYfwnFYWEAcb6Z1D2hTfGeXfgsrS/zMcrhvGrCgvOzpt7dVdDsEXvEtI te6T00khG8L25/5yobaa3FXMD5J8rrxzC3bnKKXoT9+eix7A3qw9uc2Q/XtzPyzD0dLU ziqWgoIqAbfLm42m6noUlfHbh6rXpXyhXsJE/waYIlIFMjMvo5F7to0Nvz8hu7L0Sxg+ IJ5A== X-Gm-Message-State: AOJu0Yw8je2HfSoDlc9tS8lZBBruIXWLFvjCNDJCuoAhV2IbBK6dm3Z9 1Dh3iO41UgUu/QbjX+2xBG64z9iiv5z2Rf6I/py02iv7EyKtNrWYggSZ6vHyRTM7Dd7JX4Ww2KS B6YEVOR4UonZB+87MwWzaaQI6LMfu07bSQbTKR7okYsBgNTJCR/K4SdVnkxMDVqgbmw== X-Gm-Gg: AfdE7cncpciZJws8vO5lFx9+H0JgLs+9fXuGl2L3ixsoPtiVMjr+Tpx93J/pBiJME1E lZL69lL2eiNmG7JGk3Yd6PMn0bZzfMcsAuwASZMrzYOYL7M0ulxEIq5J5PRhC4jwUwAEUN6W/lm JD509hEmyy6+je9NL2iW4yJ3bCemA9foc8njnL4MupgPB9t8sYJHhAfFSff5rng8BQbkbYnVuWw h1Bfhq7KprxwLayoenh+nka0fDHLgjcn0QgtO/e3+OQpL20k3UchTbhdVFJzuvfexZkk/8i3vcQ Ry4XRAcSoNgqD2FCgzd9bFxNLbvse+/Cz6b81nG5fw3+o+/ABaiA80Xsv/kVJNV0kGAa5PymlXF najZUV3l0iPi1WZhgQu51iDd7x7hEMlTT0MwQnbZqrmlCuO9q3NfwHlgpCm4= X-Received: by 2002:a05:7022:160c:b0:139:d39c:d395 with SMTP id a92af1059eb24-139dba38a57mr13447133c88.15.1782738818960; Mon, 29 Jun 2026 06:13:38 -0700 (PDT) X-Received: by 2002:a05:7022:160c:b0:139:d39c:d395 with SMTP id a92af1059eb24-139dba38a57mr13447111c88.15.1782738818447; Mon, 29 Jun 2026 06:13:38 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com, peter.maydell@linaro.org Cc: brian.cain@oss.qualcomm.com, Pierrick Bouvier Subject: [PULL v5 37/77] hw/hexagon: Declare hexagon TLB device interface Date: Mon, 29 Jun 2026 06:11:52 -0700 Message-Id: <20260629131232.2487780-38-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629131232.2487780-1-brian.cain@oss.qualcomm.com> References: <20260629131232.2487780-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: Xv9t4JDcNYkLVeoNAohnOugrDj8vFlzg X-Proofpoint-ORIG-GUID: Xv9t4JDcNYkLVeoNAohnOugrDj8vFlzg X-Authority-Analysis: v=2.4 cv=Ftk1OWrq c=1 sm=1 tr=0 ts=6a426f83 cx=c_pps a=kVLUcbK0zfr7ocalXnG1qA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=EUspDBNiAAAA:8 a=p_7iY2stt2bzV07uMJkA:9 a=QEXdDO2ut3YA:10 a=vr4QvYf-bLy2KjpDp97w:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI5MDEwOSBTYWx0ZWRfX9ISUoyYO0QR/ t0ijt72qRy4aHbEgGGwmQSFw1Bc0cyR5/eu685qngzUqfXj0hxZHrMcDn0Pwlb+GvoK75nZMkoN awSmf6lehhFgUMOZclQwGsAyoLly+qI= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDEwOSBTYWx0ZWRfX4nuBw8i+g2AJ hGZHtkhKP3fcmI1aLaT67EdCjfv6fb8cF2q4ms5UveVvJ0ZKqLDX4JavuImPoC40i5Y7VpPGf0W q9EiZRfnr5K7SAUm55+Z0Gkjw/h9Wr+ld82+o4Hcv11sQrcp27a6kUvJm/olE+t7HPv9XdIPxDW VrxYyIsgH15DRUKuF53pK68LsnmzU6brWdAbfIOKAZ5ZcC9/YQ/CwnwTHF+KMCnkJhA/AlHRJyO h8Tc6avK6RHPaPCbrydFrMfXFisJm0DqRCeuD5zixUEkV3inTgXrQCM7fQFJcXeiENLpSnTq44N dXPxS9J0fAPhSQhXjn2BSJFxBGInqtFHJ7t7k1gLqnwGHwAa7rVIxZK2dTQxEXS9sIP48QpSDPy Vs2ieQA8/oO6pVbU+KFGHPToz26BFjhyQ7RWNBM4OmUGSmQwJAXWifcXh+m2vg9XQq6fz6rEtXK iiXpVZeEhYohHEB/bNA== 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-29_03,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 lowpriorityscore=0 adultscore=0 suspectscore=0 phishscore=0 priorityscore=1501 malwarescore=0 spamscore=0 clxscore=1015 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290109 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782739129231158500 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 Thu Jul 2 10:18:32 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=1782739071; cv=none; d=zohomail.com; s=zohoarc; b=VcDQk+IGgP7CrW1srRwneAjoZL3x5LXFz6pQTJk+soyw1GAYWaiDgVLrO8Qhbxhzkhpgnf6019Pzy81uThK9pRFT8/IndzBWixy+AZYPQYVu96qDLbzKFnDjyfJ8aJE+f12En93FVs6pcmcpnGzfGX+ljmDqgU3xpwz0Y5oogSo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782739071; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=gQV5VC+QZg9fi5n/w+THJQZeAZUYzzdnlhm+IPYJr9rHVMnMN42jVLME21Y9BHtpOi5hyN/JUU7gcHdH1+p3DPwME/DCYbOREDstYofgZ55nl8ojmdxZZM9DqPh25EEw5DjhFGpjYCN/8tZLjE99WxFa5/OrzkVR/E9DkixbzKI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782739071055965.8184593586328; Mon, 29 Jun 2026 06:17:51 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1weBoC-0005zT-Ip; Mon, 29 Jun 2026 09:13: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 1weBoB-0005x7-AY for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:13: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 1weBo8-0003HZ-Re for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:13:55 -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 65TAT4td2627852 for ; Mon, 29 Jun 2026 13:13:42 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 4f3nbgs1b8-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 13:13:41 +0000 (GMT) Received: by mail-dl1-f72.google.com with SMTP id a92af1059eb24-138acbc0e69so16086481c88.0 for ; Mon, 29 Jun 2026 06:13:41 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-139e78317f3sm28459106c88.9.2026.06.29.06.13.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Jun 2026 06:13: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= 7mMKASCyM5y7fHIpILH7Fqqeizn/+r4LwxCWOb6jddk=; b=DSciRph8DalIbZPU W0eevYJETbLJK3I5Wpv4a1O2ket2YbdlxuquT3AQB0Gr0q/SaPsKohLMAfjLX7k+ gxqC6pvVLUhbiuj9Vj0pcd4qvF2TU4N88fTlielO6TWyVkzQelkZvqzAGcTdWIJZ sjyDMOQUy5wzV8J2RBDBqOY/PXh6NZufYdCqkNHtpDqrj5DimCkx/aErqUIlPJRv 45ZShqAeWuInZh8h4MCEERpEYqC87Ss47/lT+39+zB0e7l8UznIMjClgq/K2t7jc hUPrkYWH9IXFNe9U1Jx0IHqfwFmHsCORzLmUWXzc142wn2rUlpg5u3dBYeaU/mGs RuYySg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782738821; x=1783343621; 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=U2weeELgXhsqMVaGizqdLZqzpV/4+YS8M1Rc4w2UMDgj3yNTyTv3h4VO0GLzHHFfGD 6jzeCdI00UumV/s6vyXUiXpJOQW5KKwasJuPvSC8vS/x90rHCCt3AIiGlDgTJhbaq36w 8KreBrgK4H7752XxNEVslpUFg9jSVckoivOdADv8Cm/3lIhkn4cf46ZWbcz7bieG1CY7 +kf6Q7vzo9WGeELjM1ItpEHWKg2KoMiW/CEF8augzluvdFPeXXIcaw7fATXo/E4GM6rS DekOrvL6/Tm4rKise6OAcap0LeE1uyPOrbyDkzoVpfaei7OKmirBSu5T/N+ui4Wi1jsy xZKQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782738821; x=1783343621; 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=e2bjumdmQ/OPtLmzQL53IVIBTpVaWYgLXz6tiliaOhu9QblhzV/7PUgAa47zMpVUon BtyWKc5nf7lEsX/VC9l9/U6NNCuISlmtjsk3QbAYVfmnVmzc7NE1nBRTlQsdlRgePuMo 34eNsLcAtzepFW2hk9mQr4fu25acLn+JdMc+VX+meVeaL0TkKEEbvElgdrgA2xRaZGEH eKBbjINguNP7eZ9BCGbOAQTP4bdOTDQujz0q7UF6iMcDH2NDyWNueTapBkRnKbY5JsEB 1NP8r/NwrOz3fIvUXSnUTf4qVMfoO3msmXOdEpiVTS5bc6vZ+es1tBOfteHU6zTMvWzX XxYQ== X-Gm-Message-State: AOJu0YxMxVTghcRXRgjb2uShr+CIXO0oQP8u1o781xm11zlmJrAFbGWK Wk3+ITTRXKzR1QhLZJcOljJzvtcwnpGSPSB+BlPSdMB5m87m1qNgPMhRGiwmIQAO9FNHuYTriJd jhikZXln9iUsqgN6YLKVJXc1eFtEPzfFPljWCE1PH1AIn0kGTzOJR0YGn6alqIfcv2w== X-Gm-Gg: AfdE7clCB0uYIVV6M2PR/LHj/NVWarhnz6mSyKMf4lmw6Xo0YilqWJTcckS0PoMZ/KR 4USgbZBuPaa3P/3ZVtCTDYJLgDc93sxwNcPgehSRyxYFJUpZj6Uakwv+iZMVao3HPVjQlv/9EVQ DPq9wIRtrR2Lx95itkkhrjT9ru5eiTuHDqxv5RjBl9mHK8FHVMpbNvtucnDvxQQjvnGpAxSLxG3 gW8H/ocrlkAzKZSkdR/n0xGswfcHS9D6k+HARIyhJ6VBZE9mfJtYai1CPhC4s2HR9QB/EyG6OGS PJfB0nXFtdLaAM110iuDu1mzCZvDW69GWpY3H7xQxm9vc/wDz/MqZybEUj6lNt0m9yR6Ml8alBd SC9/MqO4/ZM4AWHEMLClbQcHxdF7WFmeeUqxbIBa9C2GcQ/POJz/kNBcD508= X-Received: by 2002:a05:7022:6194:b0:13a:363:ff6c with SMTP id a92af1059eb24-13a03640543mr1909579c88.24.1782738820728; Mon, 29 Jun 2026 06:13:40 -0700 (PDT) X-Received: by 2002:a05:7022:6194:b0:13a:363:ff6c with SMTP id a92af1059eb24-13a03640543mr1909547c88.24.1782738820027; Mon, 29 Jun 2026 06:13:40 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com, peter.maydell@linaro.org Cc: brian.cain@oss.qualcomm.com, Pierrick Bouvier Subject: [PULL v5 38/77] target/hexagon: Update TARGET_PAGE_BITS, stubs for modify_ssr/get_exe_mode Date: Mon, 29 Jun 2026 06:11:53 -0700 Message-Id: <20260629131232.2487780-39-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629131232.2487780-1-brian.cain@oss.qualcomm.com> References: <20260629131232.2487780-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: RA9KAQShuFAAD_vk404VlacSHND54kLR X-Authority-Analysis: v=2.4 cv=Z4Hc2nRA c=1 sm=1 tr=0 ts=6a426f85 cx=c_pps a=bS7HVuBVfinNPG3f6cIo3Q==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=gowsoOTTUOVcmtlkKump:22 a=EUspDBNiAAAA:8 a=1eS9DRoYkSOUxsN_X7IA:9 a=QEXdDO2ut3YA:10 a=vBUdepa8ALXHeOFLBtFW:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI5MDEwOSBTYWx0ZWRfX3WTK0fHBdKfA NZcnZYPuUYqsMZhxj2qGVljJdQ4zFnLUwrhuiWsOqsZlM20oXfxQIj5dn0hVhuDFebGRn3GcU6n LZOsY+SuOIwpCFCThLuf6BglRsmG8fQ= X-Proofpoint-GUID: RA9KAQShuFAAD_vk404VlacSHND54kLR X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDEwOSBTYWx0ZWRfX0LpE0ivG3ez0 arWzlljG4KQ8yzRSTL5obXPsbCSrsd48S2kal4BpKCh/1Ff9gsMbFWDmNqf3soPNPIG5EExgDw8 e+SS9FmrVQrbYYhlP87EDL8PDs4qBe+NQswLmhtu1c60FwdzkBDG2rOUQmP3jPL1vxmrnL2OtdJ mfWALN4l62FS3rIdH6WF+y8/aXDXFk9EWEqaL8i1bOzBxIFu9PUk6eik1wAopU/2g4qJ4B1Q7J5 isPJuS9vcKiKgNzJHJl2ebsvm+hZ/WxmZsIeC59RSes3J4gnXA29CfaKC3G8nleYtozpL5MY8Ze 5AIMXKhJBCrhb/UfwXHVHIJ+EXprTyAkHeCMkA0NZRRV1xO/4nIzpJ9T62s/hUKxwRIEqU1mTRF CmSaUgORUQBlJlMIDbt04BI64CHHjyMTwwCItK0ZY7xJdTpLV2nlagll/AIusXPnsqHME+LWUsy ezKBr1Pr38VeSzjw97g== 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-29_03,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 suspectscore=0 lowpriorityscore=0 priorityscore=1501 bulkscore=0 spamscore=0 impostorscore=0 phishscore=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-2606290109 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782739072875158501 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 Thu Jul 2 10:18:32 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=1782739062; cv=none; d=zohomail.com; s=zohoarc; b=P8ZKuaMIUc99OCzyN05lII1yCkdRqClW36j7NxZPl4kBP5adi17aY159zxw7Cw00ABjt49CpENuNMoV6j9XsIRmRv0fFvMz2Jbh1XQ8lKzZ3gilyIGHJHxSNEA2Z2WnXUqpuU1kOyKs7AIyyXw7GnR2oXIyJvQ2RXQFBnSVhOBs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782739062; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=PE5dO2pin0gTgjLfH7RNWqdgwoGbrBUVs3ieS04zUsQoLITuYhZ8QOFNK2snhYd+KtXO1vdE2rsmvfNtJ/2rP1fqSdBxH+WFoHZopHsgY+AXurPSSwcmLUlLwqY7CxWvWBDv573myWc+lowoHPjU7U/pzpwTOUXPFnTZNV871IQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782739062708655.8937726078251; Mon, 29 Jun 2026 06:17:42 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1weBo3-0005eR-HQ; Mon, 29 Jun 2026 09:13:47 -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 1weBo1-0005dQ-W9 for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:13:46 -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 1weBo0-0003Hk-CT for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:13:45 -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 65TAStsC2640788 for ; Mon, 29 Jun 2026 13:13:42 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 4f3n5s144w-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 13:13:42 +0000 (GMT) Received: by mail-dl1-f70.google.com with SMTP id a92af1059eb24-139af2bd2c8so5630308c88.0 for ; Mon, 29 Jun 2026 06:13: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 a92af1059eb24-139e78317f3sm28459106c88.9.2026.06.29.06.13.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Jun 2026 06:13:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= ohgluABwS6D8saHfHv2eOLCkXGQOTd4JgFhw3pUO1aE=; b=hv3usuRjHooXKcFT zFpOyt7tATvqcfuKYi1oIAvJ+T1V3ru44jxclIxbql2UQBQqFlPZBBpW5Iv6IY6/ YSmxKKDGrofaAtQeOjUMkGTIwst2PCpcXPRp9ityo8YY+10xqJrslJqIhe9iAUEt /0lLDPl+fgfo7esQ75Ya/im0MR9Tc/PoJoKs3iBZIYiWMnoypLburhpRqR9Igpc0 Ysyx1E+79t1K7kdcnkOtZHaHJLZPQZoOaqF5szu8OgYikzWymkxWpMwRheb0JS81 C6G73ICB2+scj4i1fMSQFAkXHAXobRxjePzRRj1ujtLXXTC5xaUfksnDjNGGMe6N 9Xb2jw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782738822; x=1783343622; 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=VdXkiurpmY5bQ0fnfytDVxBktBixt+MvKDRm1W/hjPmTioeQEf/0W8u3127ZRl+xEH dxIOYQaW1572Q/Llqf8bPnbSgZV+tnmvYB/JVm0iG2i7DGZulhqVak15eccZljw/cY79 At1QmR1N/CSv/W/PlSsmVtFV3W+53FYJbRxANMmoj0Oi7w9yC9ck4M2OJlc9oU7yIK8k x3KXWiNHgrYG+w0jG+zXPntBgJke9XlG+sp6cshSariZDTcr+eShScyqDBe7ITtGjhNs YqVVJKyMY+cD1ncanpHz8f+SfgIK24Bjf9LYhn1v1JaQWuNHbyO+xaE7iYjJsLUnKcgl GExQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782738822; x=1783343622; 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=m5UU41xNXgOYOUhcsRM1Mbj6LjgiCb5BnAZI0L6+u7kYKcUkIrysflpcGH/0WEIC7o IltVhtjUK8RXpXSrKqeF33FgnCUJnLULU2PqkVUJ+74LOGb8N7/dy4d97dKVl1MwPoq2 HSS3apuXgm87HtT1VpwxXCbKANzSX/lVRC7FJajzxrFvv6CY71uXbGQwYUXs0UUjH8Zf GDBBAG2V1gAooZ794mVuwDhfgs0nUXmFxThqLXb87ykgE9DiWNve+PK7cghlX3hNj1vx 2YqMDv0svU5ZZoDy/e+DvFC+RyD1SVf7ZGL7C9Gi0RoVU0Ul7JZ6egxW9okf0y/LFEZL +QPQ== X-Gm-Message-State: AOJu0Yzi3mUz19Qnq/lh0QOmLWX5rkg2u7IBbsmiO38RK/BNLCm7zxe8 DJ5wxqKfxwQH+OEsClwIVRBz5QiLZXzLIkwTFCPRTsFkcyWCjxZutAL4tBHh+peW4RGiT+Lvxvf bzTBRH/FhVBlvUjUcb6c71CPO9bS27QADX3FlwG6VEzxlsxrocZdToPnGCTGzrgAkPA== X-Gm-Gg: AfdE7cl9YuCOwM6gNX+MSBt/z+GGJL2vPperAMCVxGJKLo6mb8pRCxRzafPpt2gq8CJ icK34iJM+vr5XzJzEZX9NtpF8GuT6kn/X5YW/JgUuLdfJ7cIQnRzOtQcuRGx9BxtBkYBFUyjHzt 3tSo3RROxgVaHVWofAZemlef/tR7kXZdCpQzOCVzdYunCO8RH0cvc01e3RhDvFD1KKh7j2RFumO U4DdDAKXxolM4hDuXl0GY4zxZmD4A1S1g+oqJpAAXKyAOuK6xW9QGK5mG3EizRfprSQrZ8i60wg 5m+nous5QaP94vlcla4THlP5zQfah9jtFV7LA8HLDC4UT7VvV21va+FqBjXYItdDJukoSXYBhCk mxHmHhuWBTpp91rls5Z7m6YcGF1eot7UgwO0avtWALPQvF4nzW+R1+TIN6Og= X-Received: by 2002:a05:7022:60a1:b0:139:ef82:f6fb with SMTP id a92af1059eb24-13b227310d1mr384962c88.49.1782738822089; Mon, 29 Jun 2026 06:13:42 -0700 (PDT) X-Received: by 2002:a05:7022:60a1:b0:139:ef82:f6fb with SMTP id a92af1059eb24-13b227310d1mr384943c88.49.1782738821521; Mon, 29 Jun 2026 06:13:41 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com, peter.maydell@linaro.org Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v5 39/77] target/hexagon: Define f{S,G}ET_FIELD macros Date: Mon, 29 Jun 2026 06:11:54 -0700 Message-Id: <20260629131232.2487780-40-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629131232.2487780-1-brian.cain@oss.qualcomm.com> References: <20260629131232.2487780-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: AW1haW4tMjYwNjI5MDEwOSBTYWx0ZWRfX55+1NG5O//UU OGhwre83hGw5UELYh8y/fQih10cELhyGp9NjAYE630D7LNGI2+1eQOjlkaxujUkYR/cDr83HN8M EUXLSFN9CouQCwW1CEjeOUppm3qc290= X-Proofpoint-ORIG-GUID: AYomWXTMGZrBbL8ZqHpu9pAPWLzhfadU X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDEwOSBTYWx0ZWRfX09EzS/u40DEE a2tWWNxGZDnjLDSmNDj46gIYkxyIaNi/21vIwUPfa8QRNWyVccY+VAkMdXI+gay5xJxdz0VqWbj qbLbdR5jnV9LOzkMJO0/7fR4nLCKwXBfMLhF6sPjeDMJQZQmM89dlsNTOwVre8qVAisZzwaxLCd NunG9zHZXPEAzTSewC02AqW+m1OJ5yUI9S0hDPAZiZoeJECUw0ajJzMxfXkGzARzfwOIeGOQLXH dBLZ72Ts5cyeApumWrMyz2Th/4SLLctTRkz7irUWQ41ugL/b8rq+I+ySgO1aYsWQEOcFROC7jHT Whr8aXqaWXY77wkkmDP1h+4erg88RBwC0yephiqwugFspuznr/QmxU6EK5A1hrHJXoq7j38kuq4 B3rb2rk/NfLjAsj5r1qGQUBHA9NK76UwlH4/DsuxP6LK/JapuA3Mh6jjtHSiRjWQICB2MIpVWiA GFc5xmhnobxHnhadIWw== X-Authority-Analysis: v=2.4 cv=NZzWEWD4 c=1 sm=1 tr=0 ts=6a426f86 cx=c_pps a=SvEPeNj+VMjHSW//kvnxuw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=eoimf2acIAo5FJnRuUoq:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=OC-ZKJ6AczBSh3OnBRYA:9 a=QEXdDO2ut3YA:10 a=Kq8ClHjjuc5pcCNDwlU0:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-GUID: AYomWXTMGZrBbL8ZqHpu9pAPWLzhfadU 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-29_03,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 impostorscore=0 spamscore=0 adultscore=0 suspectscore=0 clxscore=1015 bulkscore=0 priorityscore=1501 malwarescore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290109 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782739064573158500 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 Thu Jul 2 10:18:32 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=1782740996; cv=none; d=zohomail.com; s=zohoarc; b=V693IS8ziqoLA+VMUIHl33unb0IRPkbYMFxuS6CCw1o2RVCZzauY+3hEqYftgwnMAvrKBHQHEUqah6ZGwlWUFGIDsvVZ1/gfo5YaWewCVy3ygi3ytMzBaYKAiypuVpaFa938fVfGhVUHAWpYuameruGgqtGHBheHgHa9vG5nGSo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782740996; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=CjqZ+qGZM2mDoL3nK/69sIgeIftLIq2EZOL/osgEfLGHjdWtOZ4MVZN+6I2NP5lq3MEzMXLjtV0XBp3iAmCVZYc0e+dviF2EGqb0bjwJNSMdV8CRwx8qfVItSy0RxM/K4bW8RQtMrTT9PJwIQzKAWE3plEabuOY1VPKUw3L+ZoA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782740996393354.9508656382038; Mon, 29 Jun 2026 06:49:56 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1weCHN-0003cg-Cw; Mon, 29 Jun 2026 09:44: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 1weCH7-0003Yq-Qa for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:43:50 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1weCH4-0006Bb-ML for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:43:49 -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 65TAT4so2627854 for ; Mon, 29 Jun 2026 13:43:45 GMT Received: from mail-pl1-f197.google.com (mail-pl1-f197.google.com [209.85.214.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f3nbgs577-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 13:43:45 +0000 (GMT) Received: by mail-pl1-f197.google.com with SMTP id d9443c01a7336-2c81c7421abso47697435ad.0 for ; Mon, 29 Jun 2026 06:43: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 d9443c01a7336-2c9b0992227sm48968555ad.37.2026.06.29.06.43.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Jun 2026 06:43: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= G8bosUNkIisGhuX8AG1Z5l9LVe/reA0/IE25v64WV3U=; b=HUMBQs92OA+T2THr pP02SIClSqvQ5OghIDfIbbnrCWUpwA2o4dVILo5wH3eiC6zcXvhq8U6EhjlcFXUM xBQtVDvlEct6A1n9RLkmihsC73V7TWnLONlVr2nEtL7lwZD2FmSLM6C7q39HyOKw qm1MF6McsWyQoJzCmL8v2GzxKjbIIU293YEyoqSVrDYb2WMtokBS5EwlSQ5/bKbo zjBKiCa4vZ5z+nOUyhunVCztHLNiA3nz9bSmLqcqrPNPPBzflAU+UjkJn5dk32HV diIHBqciZ9iE1qhf5kDxsDVdXDDOZrV0iyReMuF49k3zL56zqySDUvi22Wsfr6Dp u+H6Tg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782740624; x=1783345424; 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=Pv8j0Tdzzb5iFkkrDEjEVrE7Bp3l6JfP+lMJqaspxN7Af8hlbV53Pemn/jTfCQliQQ FBDiLoOkh3MjdYeuL0Fe1a/3VAy3WcudO05/G3pqO8UodbMV5VAZB5+VQNC4mBQQB0Ct Vbu0mvewehMnj3JnX9Pi9TW/Le7ZoXLnODc11F4RGiSsoBlddDe+Vt2G5NuNi7pgLsPY Dy9c+s8Z/0DA6qq7Z91IX+69tSbZ56d0HhUBKdZU0tr4DNHqV4c3fTBdiW9GX5kfnLpN rnObBHfLmoLVVe10YzlWScw0lub1KqNVMeFKFAUUl9nRba2eBSnun4jXiYaRVWkUP9f4 Ym+g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782740624; x=1783345424; 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=C0KYmIOHhBlTwVBHgRjs9tPWrSElv78luDo1St+8M+gkXK9FSsB5ox3eZzdcMqzyGQ uXpNlvcT7Dq9rt49CXUxSP8wyVgbI6Q8Ib6YcuMdoyKz+aOUvoIm+8Fb0is0eIsidAhC cgxrfGBTDh/w6ivzTbKTHBqYhFdzdAHPM1NUV60NxkDLZyX9nyThcxWyByjFHL8SpRKj 1OicSzhon/afPFmwQ5hDMFDjr52ibJtatMqLnbEW15mQ/eNu1qqwWoXbXMLLBH3pGgPt DlJfbhc4OeOBEamgWF/YFFda1I0MzBbc/ww8Z6FcvDOXBxemHsQP4UDxFtTgIZhaQT0L +BlQ== X-Gm-Message-State: AOJu0YzNDG0S6Eq7ALStqnIle8B98L1ej8i64Vh0bvK/8BA9XTJiEOgm IC/z2bop+3wCxy36ZzEN86DBdJ/6gVeutlgl5dCLsCq15Ds5qwaxV7whXE84T+c7g4Ab6SpnKlG ysB7dMjA8ghgWQA9QvDt7/4pe18AzfSMVz+WCOLOE4XWJT9wLVxCGblHBlAauwGLrog== X-Gm-Gg: AfdE7ckrpf1T5HdWw3NpNgp2thjW7IQFMrwPqKDvB9VEEfzhL+XJxtLuDSfZo8OHxgw rr7OzRwFi1SsytG5qot+0+rXIUX25EoTZWK+1ZewHkO6j1iXZBQsa3o62OUTY6je27jkhbV+kPr qFORrRvii+XUccoDzZtSBZC4zJryv5nOGVtKzUBphLMjxrFSTEhxO7SqgJrZmJNnqInWPmS85st 0t8iYAVnwM/3n8h53eDo8cDSULjS6iGaNpVfzqqhQ5chim5Kk3se5TCnlZxFWAwAhxsCgJnBU5L UbQ4mc0vvOxIby4O4J9sdlfz1MbrttbkRJzdFbRqkUev7B5VgyV27klmqYACqwhF5604nk+vedo QTprzkfsB/6ddUIiL+uTlL6qJFpSaP4IOlgUEtjhwSfiGLoai4TzgANBpQI8= X-Received: by 2002:a17:902:ef03:b0:2c7:fc03:fcf0 with SMTP id d9443c01a7336-2c7fca71647mr148337845ad.17.1782740624109; Mon, 29 Jun 2026 06:43:44 -0700 (PDT) X-Received: by 2002:a17:902:ef03:b0:2c7:fc03:fcf0 with SMTP id d9443c01a7336-2c7fca71647mr148337555ad.17.1782740623468; Mon, 29 Jun 2026 06:43:43 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com, peter.maydell@linaro.org Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Sid Manning , Michael Lambert , Pierrick Bouvier Subject: [PULL v5 40/77] target/hexagon: Add hex_interrupts support Date: Mon, 29 Jun 2026 06:11:55 -0700 Message-Id: <20260629131232.2487780-41-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629131232.2487780-1-brian.cain@oss.qualcomm.com> References: <20260629131232.2487780-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: ACF6qvG7jamASxZ5xpa1OFW1xCZ9Oy9R X-Authority-Analysis: v=2.4 cv=Z4Hc2nRA c=1 sm=1 tr=0 ts=6a427691 cx=c_pps a=cmESyDAEBpBGqyK7t0alAg==: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=1OuFwYUASf3TG4hYMiVC:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI5MDExNCBTYWx0ZWRfXwFsaVCQ1JBLY JjgKXk2PMV6BomZHru4c9In/v7PfNE53JTafQraSzuKfAVZmOs1a8jIPaI3ZHlPe3V+TH5urYpy pXV0I5wTzl0JwwG2INOuf6KKcVRQrQ8= X-Proofpoint-GUID: ACF6qvG7jamASxZ5xpa1OFW1xCZ9Oy9R X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDExNCBTYWx0ZWRfX1SckHZ3ea4qC k3V1E6CSZedZTuZ9Et2Arfhk32gA1Y26zBLBf0/mw4PRoz0bcO8KQLcYlnLEE0Mq7GespH4JlTw pcnY6QhCknbGYMVxr0LFJT+6018wcHnCA4i3jm/13Bwpoi3pajOujjLjTeiyyBy6ppgKy7SerKt C0AkB8fzEjWs7n3qf7IEtcHIO4jrD6h1io7qnR0jz07cuZuV8B9FJxXvLUObhW8ONpEGdAA4qrN qABcPWbFOgF2ezS5Zwvk1nsKO/zB71g7zPXFjbZD10Ge2KPJDkNsKm/eqxuaSOolz3vUIj3zwU7 MYhhj60rSynBPeXFrPouLHLcA5+hktAkLGOddvL5ryb1NNfxX/82irx3949qp6ah7vb7J4kDzVi BrdM305vQD1CXBEIRzNcnldDakK4Teh5VegZJ3JsXFkP/HB+0/eEyh7ellkSmKYECmQHN1sGCjf rC6mHzxVmGt5RARotDw== 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-29_03,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 suspectscore=0 lowpriorityscore=0 priorityscore=1501 bulkscore=0 spamscore=0 impostorscore=0 phishscore=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-2606290114 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782740996670158500 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 Thu Jul 2 10:18:32 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=1782740666; cv=none; d=zohomail.com; s=zohoarc; b=WeoxwYV13HDsbk7QczoGAhgbv+AYBYDQlmbZpENT+88YfAL0o5qqKaJ7r+xqywdJTrU/748W7czXpeC2MNOTW6DdUV2OJF4vhtwnDDZv4z394tXUNu8KkYTDZKnDC1gDCE7utTAB7jHKRfN9Pb5IFRkVg0HC6mPIH2D29VaSgb4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782740666; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=ZYbjII8OYQ/YeZt8Y1dbXKKU1MIWUwilRCr9tsSybFYzoK2Bm0LXYM0lZCnbjhe4uDlZ+uuQFqK4XfVacpiRv9G6P6V43l3UWK+bgcmQ6jmUOU4qicU9cPkBnXl9es6eipsVBlF/Vg0bqEURyVShvf3fs35A4ouQrzcTrkyo0B4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782740666861978.2680839429504; Mon, 29 Jun 2026 06:44:26 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1weCHT-0003db-Km; Mon, 29 Jun 2026 09:44: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 1weCH7-0003Ys-VG for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:43:50 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1weCH6-0006Bf-Fy for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:43:49 -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 65TAT7xw2604444 for ; Mon, 29 Jun 2026 13:43:46 GMT Received: from mail-pj1-f70.google.com (mail-pj1-f70.google.com [209.85.216.70]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f3nq892k5-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 13:43:46 +0000 (GMT) Received: by mail-pj1-f70.google.com with SMTP id 98e67ed59e1d1-37fee8a7813so823196a91.1 for ; Mon, 29 Jun 2026 06:43: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 d9443c01a7336-2c9b0992227sm48968555ad.37.2026.06.29.06.43.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Jun 2026 06:43: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= oY8qK4LAUtINTePvitXB1Xfo61hqyHEyBFAF6Gss008=; b=dBXhaaTqi9d22sCA 1sMhapMfDXjhbDx/Ccq+Hp0Y2VX/IaIAgs8h5ShAKzaPK2rQ6MhcIilsUu7FrdwZ 29g/rGP1AznCysreKH0gh2ipR/Ilytd6EcH+LMKoruXc2uqILguve57E94HKUlDy K5PMwNy6yBVypYGfXRVAAjc/rKzRgr6PBztYqsT4oQ5QHbLENKTfKWIEs4IxPBcb rpqYViSgT5aOinlNabPvS2zL1zObIGaLZr+gUyeSx6qweEI3AxdJzllS6arMBAFh WYOQK+dvLYS+2yjm+3f8eyT3VUvEkFsz4t21eMQOi7Iab/cQTB7iuAekwRglFqgW oYFYbQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782740626; x=1783345426; 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=ax87qECis/YcvLx4Q6ori4XqWXW25/oSNXkqzmjcxFJVPAL68hhZj7mg6yxioBS+Q9 7WqrvVJY2Pp8UZhFVo5BJXkKLQXOCnc+W+pvpMLpQLjGEYsIaqDAUExCpjVO0Sf/4omN LnLM1j517KORQuRVGbe5HICDkc295Pn/B1WsgDlKhlJHq5T1y9Cmka3EEn5McWiU1jbb GAgI57oXPW/pBZ0VutO2yaUfF0ZKkvLbJWeqnBERTOCEF56V6EirgagEyK7dDO5IZYfa rw7Uni+5ZFj8xnHJhmCKUiOwu8/gqFDCSlfmxyPPy9/rjaw78eW4aYLLzOs2u3nYd4kW C12w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782740626; x=1783345426; 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=YEji7ZVZY6tmqhMZexQ1b07/OjkPFX9d/YsHaiRx8t8YvxRiWBfWIYibdnpqlZOIvs XIMAjk5a+X6zEHWxiDrJZLaQryw4n1cudPicefsB/XVOw+AXTMTydRLWfeLAzCTmUxVp wtzQFMEEprIpIigI88PvB9HfE3tN85yoOTux7K3KEsPFMdujZ6kPw1UyPiNOHpDXZMSw cFvMR+bVSdAB4xZHow2tmPtGoeSU1CzNhz3HK8W/vIlo82SiAaOYUZP+yF2FsvpB3abK WJ08jf8Q+RZRO3BuyGebw7OAxdbzt55SjMWeF5EblvRqWe0MVbP7I/AmfGYGULN8A7Hn KrLg== X-Gm-Message-State: AOJu0YwOL7qDdyuAi3lfwGEhITsuZgbn8EoupZirw1+9IJIx0vMuIaO0 X47PhLvdhnpVRy9/SknBP6dt7b1y0Zl0surehWkyLGTByXe6GxELJ5CnMJWjTAZqFa+SOmYHgr0 Wpr9+tjrHrcqsXzFvLjoPnSqWJxCr4kF/94/pkyvNquwkp+kfIfaD9BMxEqb6r7XYNw== X-Gm-Gg: AfdE7ckDSsCNRKfbB18n0l8ngZF+Nq3KfMAQVkaJ8yElCf0FMqHokinDUL3zP+Jqk+5 bjJZHMiIByGKGr53wI1em186JNFGH0d/fMOzwJBQCKpPBDdOqjnHJkI2tgLIOqoZH2uBHAvIzDA vWBQvpdgxkpvPLS+ssEf+CILK4GXMEwXLoHsbgJKPmGRBQYtgcwWnLmushWFCYc/iNZwoBTVKZt cIFXzkBw6Qcf601yugk2WSmMS2Ep7PX9iJn9v/MZHA2+3q+15w8d8xhNVtJN20461H3mvk1BXAR sULOQmS5fnWTgRT1qJyd/rdIjC4Av2UIT09UbCjCFLJkGSFrPWsam5cmJJQdzmip7R751lTaSVY tjjVEwAH+7peVKvVkaZnNSAEbddiS8D5btKdam9U/63RtU5raIRurqNt4CoA= X-Received: by 2002:a17:902:da86:b0:2ca:c68:c554 with SMTP id d9443c01a7336-2ca0c68c766mr20523685ad.38.1782740625539; Mon, 29 Jun 2026 06:43:45 -0700 (PDT) X-Received: by 2002:a17:902:da86:b0:2ca:c68:c554 with SMTP id d9443c01a7336-2ca0c68c766mr20523435ad.38.1782740624769; Mon, 29 Jun 2026 06:43:44 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com, peter.maydell@linaro.org Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v5 41/77] target/hexagon: Implement {c,}swi helpers Date: Mon, 29 Jun 2026 06:11:56 -0700 Message-Id: <20260629131232.2487780-42-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629131232.2487780-1-brian.cain@oss.qualcomm.com> References: <20260629131232.2487780-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: NpfXut1A9IWteC16n52j-FnttTqfk5Ow X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI5MDExNCBTYWx0ZWRfX6u95HGkZhph+ 9nc2Ag6inHeBRuj+laObV+WdfjXmwqFgKrQNxG/DQXY+tx+SH4fwmy798IvDZSC0/B+pTTTamQr 4TW5XIWUKH/nquyJJAjOvqb0cWfBVm8= X-Proofpoint-ORIG-GUID: NpfXut1A9IWteC16n52j-FnttTqfk5Ow X-Authority-Analysis: v=2.4 cv=PqSjqQM3 c=1 sm=1 tr=0 ts=6a427692 cx=c_pps a=0uOsjrqzRL749jD1oC5vDA==: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=KN34Fzpn9o_w8YhA2GgA:9 a=QEXdDO2ut3YA:10 a=mQ_c8vxmzFEMiUWkPHU9:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDExNCBTYWx0ZWRfX4zwYZOpfZ53Q cZNjPk0uXq/bznz1g91xWIiqDORKnnaqGFtkmjRXhdjzaEmI4k9LclCSaodn3duSBI4Bqt6lu/o HhLWyzryveA8p/I4Cs58I7JjIZjjelQWUd8M4xLXBgN/6yqnplDNiOov6v5N+9D7X3jo/dkFDgp +n5l7eHYGTGGIa+ukvNZRMKS5GcXAC4mAB0aHHXtOfEWp5qSlkpJ9fJmpdHkw1dUsRSoyLZ9fE1 qMsOpsIzUs5fVkuyNeeLacgieZ/vJLknxLFvOr7Iz61R0eYMksJ4bTCGEt7NIWoZxKg7fwId8c5 cp3NyjDjKsasqPhqDPIXtGg74tozz1fAwAShX7eYzYL1cHG1If4iOE+hVS+VKtGOXj3kTfNMdsO A2R3Fi7Oo6tHGEBk5aaovyPRzzNinOUJugYTKARl21qNbzB+l9dlaiW8dshf9qTgY6RiCFePft1 MA3ngnC0sew+oVi7XZg== 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-29_03,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 priorityscore=1501 adultscore=0 clxscore=1015 lowpriorityscore=0 bulkscore=0 malwarescore=0 phishscore=0 suspectscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290114 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782740668442158500 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 Thu Jul 2 10:18:32 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=1782740666; cv=none; d=zohomail.com; s=zohoarc; b=GmnmJ0TK4bMjDPL0EtjLUCfXRpyylHjQSUabrW1z1rZhXOGS8YJH8r1D7i8b0LosiYyA2FDff55Nr+rRZVOGokkvw0ly48pyaLxscWS3RGdcuPi79E6J/FD6YEt7pOCcIZkagKy4uM5hYEGxRWqGPezVEC/okgOaXQ5RXkyo+Oo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782740666; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=c9v5O2MxV2fB+r2V6DQo4eWcRrbJ+TlzTpUsg1The+jqHNyWcpkFso4bECnuxYzcAHMnLU/cGJfimhWqEQ5xHLhQQh83SVlP3RLokKuND6bgZOPlmaAW0wo6JnD3agQq5h0HzODvovPJYE2Vy5ZTMMzJ9Xbs03QPTSJ0NmfZ/bk= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782740666235916.9068025681349; Mon, 29 Jun 2026 06:44:26 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1weCHb-0003fn-Iw; Mon, 29 Jun 2026 09:44: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 1weCH9-0003ZS-CQ for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:43: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 1weCH7-0006Bm-TI for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:43:51 -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 65TATDMZ2647785 for ; Mon, 29 Jun 2026 13:43:49 GMT Received: from mail-pl1-f200.google.com (mail-pl1-f200.google.com [209.85.214.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f3kyjhj3j-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 13:43:48 +0000 (GMT) Received: by mail-pl1-f200.google.com with SMTP id d9443c01a7336-2c9b1b608e2so18069455ad.3 for ; Mon, 29 Jun 2026 06:43: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 d9443c01a7336-2c9b0992227sm48968555ad.37.2026.06.29.06.43.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Jun 2026 06:43: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= 4QO0cWAkJ+q+F3pETQo9dtN15DOJjfUdoMf8+Tm9oak=; b=HSttfQIeQLc2ZGkr B9ybAzIZgojJ4i0JkQx7kCEebh5rc0SddIqVmHqUStVD5GRKUifbQ/QFpDS6EwRd weEtHD8BKB5NspxOJZtS43X176SyKxcjIMwdlcpxHb11eCx1AlXGOMZPK4XvG7El QiIHR6iSGmUliojMxtbioOcqwG8kE+nz46kvu9NxzAXLXU58PUlKoiTXyn7d7PVT K4UW9YGZVnkS+hVsSK5KeFdq1XrYgcqchJ8FNf83Z4QQIot0ag5bug0bxb+hCt9s wQ7nhDWtNVi8v9xCB9olJsGkznF3pkjEpCO+V3K49XbubWgx1TvokE0YVF03OuIN bC/wag== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782740628; x=1783345428; 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=RC/jV8r+gvbSrLvEIISNDWvShDqJhpB58u1fZ8QQMt3MZjiomHpld4KjwtYCm3bZBB TzEsyz16smZI05x87iP5hjCA7WvDT5Pn8IBjvxrW8hPNfvc+wKa4XnEap0AM7kmVVS6g ID+9u5S5KFc/0ppyLchRZijMsXuhyt15317PD6fKLtfSruAixZXNoZwe9oVfbSBDrfMg RJMl46HkXLRcyTYxGgw7vFPFC4RV3y85F1VKakRuoRt+bFWZntfnRhvXVOXN9s7/fRCR vvdK43NuSzK7TTK4psFlO4u8xyE9V9SZln9jCP93qJRfcVLzBlPXFlxDgQvGSjrLRG4G tUhw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782740628; x=1783345428; 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=mBj9Erh6uYogmMsHR5Y0+79DHOlS/bMsr2lgZgeZIYOE3/hh10MhnCyv4+Sf0Cu0Yn Z2EJN1rrMOufSiZfO7fVzXZXs2qqekbyHFomXmsi9XcpJw2Hot3ykyXRo0PICw17C5lD QzL0t/QaQ6AnYA58QdwRqJgRrexQfWRNu8RjrHBW/HAQYb5lhrhotE30hb9Az3vDJ+Mo l/glIjgcoSMoiaYA98DixU/eScSpFGI4KHBSA4jaaosz5WG9H4PajzeXaL0v7s/8wNE2 WCVQypR4oEJ2GZfmqFaQZJclqv5ss+hn52YS37Ipzgh/ELnMtgBlr5f/NF9E2zW0SZ17 3nzA== X-Gm-Message-State: AOJu0Ywg3Y7pmbd/K/RjhIzobZEeus6w9uG/K0wsYWIdg16xr9us8cJ4 KgzQPgSEiHuR1Osg6uVdrJywyNFHQarMOdOauPYAPvpEWxOPrhanaZaIX+v3NzXoBQ7X/tqbsBT PWMRZOBAR59qbNDVAz5eTfJBMPpkHeToxfPAW5t1wdlCF7Qv75bAM9L9a0BIKh7eBrw== X-Gm-Gg: AfdE7ckC7854iLC0Wm5gRIs0C3xkmVR8euAFOYfXgI0t96t/1aGv8VjmJOzr+U2agmY aPJBIoZ4KVsuVXiKeGx8ariRjqNPt9yxbgusNjvvsj/QhnbUgud2gFLGM7mMucvXNVVg0r+kf+c B11z1EI+hEVUMZezTbn0cIsQIWIx7Ka38xFPqknSQKZqyOuBRXjo2O9lE+NhJY/ayG+yTxcT1mF H4Q2kKQrhMtfNAXn1bVwTP3OgVOu5mSF4krjDBbkMTAtVmFZQ9qxIxZZPsWvSaqz2ZPpfNhXwNc Te4VqRfd3ePdPBo06bCbpupUPO442nhIap6pGFawgjweAq8VI/pHj+qhi6PbAN7Pt5klWQFlydP N4PIBrn4tQrIdui2KK1S09Rmsjn2vagbzVrRtqQaIGrBPqV0kfOmicmwXVwI= X-Received: by 2002:a17:903:1850:b0:2c9:dbb5:c1ec with SMTP id d9443c01a7336-2c9dbb5c4f3mr51510095ad.47.1782740627691; Mon, 29 Jun 2026 06:43:47 -0700 (PDT) X-Received: by 2002:a17:903:1850:b0:2c9:dbb5:c1ec with SMTP id d9443c01a7336-2c9dbb5c4f3mr51509835ad.47.1782740627149; Mon, 29 Jun 2026 06:43:47 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com, peter.maydell@linaro.org Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v5 42/77] target/hexagon: Implement iassign{r,w} helpers Date: Mon, 29 Jun 2026 06:11:57 -0700 Message-Id: <20260629131232.2487780-43-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629131232.2487780-1-brian.cain@oss.qualcomm.com> References: <20260629131232.2487780-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: UmDGLoWw044-kV3npEY2YrITi4sHba8O X-Proofpoint-ORIG-GUID: UmDGLoWw044-kV3npEY2YrITi4sHba8O X-Authority-Analysis: v=2.4 cv=Ftk1OWrq c=1 sm=1 tr=0 ts=6a427694 cx=c_pps a=IZJwPbhc+fLeJZngyXXI0A==: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=VnV9S1Uu6eltRR5mmX4A:9 a=QEXdDO2ut3YA:10 a=uG9DUKGECoFWVXl0Dc02:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI5MDExNCBTYWx0ZWRfX7y3ZkDDQK0+o mLkSlRjIPD5AwvM4iuk3Mx9JPS0Jjm3bbob9uWyEKBqjK8RCMI+CGHSoGy9PAMs1vB6iAQkIOVl UNbNHUblnXGRf6SYwxE9Ekbgv9XsEuY= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDExNCBTYWx0ZWRfX4TnEQFhcCR3s a+1Zgju1g2ExHrgElzEsfZAXV/WzA6f5mttM6g8br0iJah+M0CIBNaTRTh9KNJ7rAEIL+B/qB8+ tCkV5+oeHPlrD2CAz8AAUxczz+GF2w4efk631+FF7TnDOJzxa5LXaAg6iYxho82c0EApHBs3Xsj f68yaip+oetWhqPNWmHZliQH1bCV3G3N0YJfH/WsAzhfwhy9zFTJ2c3q9BIqAo01aT+9/oQkCV0 T9NylK9MedvDatw0D3MFrVgitLkELwQkP+Q9y3RTYhZrDJXgpQ8CSkwYHzQBo6exVHZ9nuvSW8T K5TAscBHMZ7vucWSsNtHk5R/r81qgztpAmDnxVeXriBXfuuZBI77kxVI5rQv3zsnVVknh37AeL4 Uayu3HUhKHGkA9Wa9/qlMwQIPSGPNUkIFGV1DsNuKsWxBwsNt1hhwB5wbenbahAxDq13oKSrv1q fNcwxYiY8NUFb8ua/dg== 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-29_03,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 lowpriorityscore=0 adultscore=0 suspectscore=0 phishscore=0 priorityscore=1501 malwarescore=0 spamscore=0 clxscore=1015 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290114 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782740668453158500 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 Thu Jul 2 10:18:32 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=1782740700; cv=none; d=zohomail.com; s=zohoarc; b=diXtQugXod7TMcQhdccpnGnlvZtr7tgaR+nf0Mr0nRzF5ErgwepjMMH5xJjABI41oQcp2W180z+edzqxZzxBCP7ZGPfyWORtLJm/7GVTq+SBkJg+Jm0sCtnPKn6hl0v6GU4kve1takg81YOP5N6NMXVULE/Ko33GLqPPSzoTJ6o= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782740700; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=QkJ98Unm7PFmzRMAljdi0ECum92iKD8zsZAumR/1liGSZYcgOhChXN8u/llzNveVyce61cR4FAVTKYarr4LiyM16bvEd8aV/FRfc2hUmnKb48MSiNB+EzGZl6eFiNOiBJFg1BmbBmljva3x5g4ye3zlP3/f/Ok7/o56Ez91+258= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782740700962707.2873422797013; Mon, 29 Jun 2026 06:45:00 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1weCHn-0003kG-4V; Mon, 29 Jun 2026 09:44: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 1weCHA-0003Zg-Fd for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:43: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 1weCH8-0006C3-UV for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:43:52 -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 65TB5FHo2728482 for ; Mon, 29 Jun 2026 13:43:50 GMT Received: from mail-pl1-f200.google.com (mail-pl1-f200.google.com [209.85.214.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f3qha8jqg-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 13:43:49 +0000 (GMT) Received: by mail-pl1-f200.google.com with SMTP id d9443c01a7336-2c354050c34so21713255ad.3 for ; Mon, 29 Jun 2026 06:43: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 d9443c01a7336-2c9b0992227sm48968555ad.37.2026.06.29.06.43.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Jun 2026 06:43: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= TfVBLrLYsvAhGMAw1f7WT0DQu5QIyyTkxXEQsAXLmCA=; b=JU5LAriVUOvw6c82 V/DTivKAGNJ5cy6fVFj+G09wxBKY1n6M4xJo4jlZucYe0wYboDWM1HKbuwec7+Cz g00wUplKctKi1Fp1HPqoxhbhCFXmXkUOv/PCb65ihJR4w/i7Pih1/Jlv31Y6P0oT jCOdF/PwLRs86+bhO5vflpxSP2SY3Bh/ttRjIqHaBYxpJ3gtTlI6IHRik+wXa7tK NouTXFFy+e9AOdfRCWLsG7wwykg51FHdbuSLuVY2vm+K8k9T+yZajiBxth3saItD ar7vYCGf+ceO6dKN5roa17G9ySiRuZL/KH0+Dt6W5mo54ymOo9RoTz7LpYuAUCZV Vd7I9w== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782740629; x=1783345429; 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=E4Bf/HUIb1c0HepJtW2M/s0VyY37BSdRYKPoSFWBpvtbtVspnC0Sy3yZGbYqbP8jpG ADNMHwEIxoea9DqajISptkv1zD7t752N4oRKqWIA4Zsqk5StKPDpWhFH2/hK1DLXLVqE s+28dh0C4GmRoTE6XTFjA1V+bnn45aFW61Py7j68MHyC6N4/ZYTQcqJIsi+rIv53vOuK s7fsRWsLRtGbiWMHsReJuuOm1+dYlxeF1e4dfuF6HZFwelHB/fB+XrYPmQf/YzUhlwMV S6jyBFURMpAaZgGDt22+obw2EGb0hziqEE0RkPkq8pQJEzDFYKIOi4BnjFm/LBNMfurh OYKw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782740629; x=1783345429; 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=sB0whkPg9r9vKCvatfLmsDuaiYTUJbE+JkQYQ+WT6hLTYKMxv4i98GqPjDzJYzV8NI QNUjGUJjfJ7xgx+IC9fNr840GZVIEpsiR6QY8PdxwW6Lawra7YtZWo+7EmGio6K2L+vv giIS5jQR0n4LOvq1hQ7F0o/mpzOl9VzaeIDpWPy94LS242argNlTCiJzTuXbtUF4eqFt jrY+TwwwmijmA/NqYFeAdveiP7QxgJHregYnPkLtuJ53QtM8NkfOH/ll4inXMHl8jmd0 Yy0bbPGHqMA2TFMB3DIM+gA0otr0rTP5oZg7tO2jpKhLzdThJsczVkpr0t96AQrGO+4h Filw== X-Gm-Message-State: AOJu0YycjiHOy7iptgkaItdSsDY9NSYRbYNj5124pomFHkR3V85/0gkU K4PLk+nSGu+U+xO0Ic82IL2QEeBbyYSgvNMdrY0Ao4L21csjn0RSTxFqFiJFuQ8dJKPYhouAV8a ZNot74Ru1HsIyvJIjtZ1qN3kTzw8uGxMHCfgfKyEhOSsg8CAI1CE1zAo0lquTo2ExhA== X-Gm-Gg: AfdE7ck/LUllHh4zsdpeRtBtrvbQR24E5qkAVk4ZONKuNmS1N6IafWbw0nu5FFtwOAV j47tvjFPXGZVzp8k+ew0YLdtga2wPmfbxoE8fDbrzyz+g4ywxOXvgsDG0z5RNrlvGk9dboriZBX XQYswqrdlW4JFZ09GUAb99f4ln0dbbJyEwcM+L8W+IlruBq7VVrgWY+ANL47mB+PcZ1AQR94AMc 0rJODfmBTPN27/Igyy7sb+RXA+FCQ5xA+hHFWNmI1Da1pvKGuswXoS/GSqk8OtykQojoFP11HSV iilbxWeMf+VmSOEzGbSVEvzlVzM/pyst8TY4VLAGl1ChUz6BtqDz4waHcQIUGOeuXdhQaTqpJSb gMXHsu+JgMqYW6tnFq8CB6JSqBSY04SCF4CsduRYVt0/AUbS8AFuA9/18FBU= X-Received: by 2002:a17:903:244f:b0:2c9:e261:95c4 with SMTP id d9443c01a7336-2c9e26196cfmr42648915ad.30.1782740628998; Mon, 29 Jun 2026 06:43:48 -0700 (PDT) X-Received: by 2002:a17:903:244f:b0:2c9:e261:95c4 with SMTP id d9443c01a7336-2c9e26196cfmr42648615ad.30.1782740628451; Mon, 29 Jun 2026 06:43:48 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com, peter.maydell@linaro.org Cc: brian.cain@oss.qualcomm.com, Brian Cain , Pierrick Bouvier Subject: [PULL v5 43/77] target/hexagon: Implement start/stop helpers, soft reset Date: Mon, 29 Jun 2026 06:11:58 -0700 Message-Id: <20260629131232.2487780-44-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629131232.2487780-1-brian.cain@oss.qualcomm.com> References: <20260629131232.2487780-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: TJTAaUR1gAXUx6FY9-kpYbOaRx8CQTE5 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDExNCBTYWx0ZWRfXxSyrFYVV34qf nvmaQdCMGXJxghaZ3cyLaoWlxp0wuMQDl9cCLfhWjWBIY6oFGMGl4IvtnosRqyb59KHcp3op8AG pmdaWBfVHvpRkRRx2GzT6nW0YTJwqKzvyRCqqgrhDfysaeUeVfFF7qTp11MTL3rweLw+sQRPK58 cSRzg51ZZXbaB+z3hkslE64HYRURPbeR8W8grpSyxJMu4nsVLjklYdRHGZ0DLEz26yi7659cnkn sf7iAz1JxO+ks9p8/AcA/rnRYohlLXG6hgcCnguMDxk3xZaNY68MN4ocBwP9NSGHIz2W4HIC1eT Pk46tIiM2vn7xYoLjMWVeWo0BPqIVe7K1X8O61mWVsGLQPAdt6vurDIUTll7dFW46j1moZkDxQ3 Wd5E12Bb28xbuOT3kRrUwnhKpplzoUvgKx83b2IUnBo5IhOzIzGUlAZYdn1HQB/JRuHoH+iyOys 05rFS14CG4gtiSLBMNA== X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI5MDExNCBTYWx0ZWRfXw5mrAM3eOAn5 pPYF0Bd+VPyHP0qtG6MnI3jSF1YLHnZXjP3if5J3ZyRjWLAHwC/rPiLf55La7H7Mv1wNHQYbjcD CddNgak52TYX3fy/dSdCotjQNRxD/pw= X-Authority-Analysis: v=2.4 cv=O9UJeh9W c=1 sm=1 tr=0 ts=6a427696 cx=c_pps a=IZJwPbhc+fLeJZngyXXI0A==: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=mCWuZxMSpaUKZHDxuVkA:9 a=QEXdDO2ut3YA:10 a=uG9DUKGECoFWVXl0Dc02:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: TJTAaUR1gAXUx6FY9-kpYbOaRx8CQTE5 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-29_03,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 bulkscore=0 adultscore=0 impostorscore=0 lowpriorityscore=0 phishscore=0 malwarescore=0 priorityscore=1501 clxscore=1015 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290114 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782740702630158500 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 Thu Jul 2 10:18:32 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=1782740982; cv=none; d=zohomail.com; s=zohoarc; b=bBg5V1sYs7eJXkC+9O54dwjqw/IjGZf65xA27d3HGVb6oePiZnq4WjjlCra8JRZlCb4ycSEJNUwMCd7iIGoK1pHs3J+dwUvqL1hNGCa/dRHzg7cczI+Q/obwjoU+IaXBgWSymP8gjc2HQNeGetvrihSpM4Y43uEUGLmxJe/wuq8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782740982; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=C1d2i1V/mKMV0z6+06yCuzx/7Bo5Tmdv7FUY+FQvZEztOtKC+waFzMpQWdWjFwLjYqUSTvMKDndy6MrvuIt7xE8adc7/YIXEfIKptPmY66KjRhFWLh2lvJtY6if01LesBH/CYMreSlM5i76EV+H+l/HLWctVlxECOv/jn9fqMi4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782740982372533.5487277639569; Mon, 29 Jun 2026 06:49:42 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1weCIA-0003wU-Ci; Mon, 29 Jun 2026 09:44: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 1weCHD-0003ap-7L for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:43:59 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1weCHA-0006CH-Tt for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:43:54 -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 65TASweS2641481 for ; Mon, 29 Jun 2026 13:43:51 GMT Received: from mail-pl1-f198.google.com (mail-pl1-f198.google.com [209.85.214.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f3npes2sa-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 13:43:51 +0000 (GMT) Received: by mail-pl1-f198.google.com with SMTP id d9443c01a7336-2c8018f11fbso27065055ad.3 for ; Mon, 29 Jun 2026 06:43: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 d9443c01a7336-2c9b0992227sm48968555ad.37.2026.06.29.06.43.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Jun 2026 06:43: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= i/UBxztk9FzNckObXXg5AeElk2tIk+IMNK3xdbJ6LSM=; b=htYjLs0WYLtxdrQ/ NSNvIqhdlZuktzPkRmhRlMIHhahzADaylSZ/FbidLEj3ClhOG+77Hzc++OwKoKig HHZsX90Jm21B0x3djWkmZHAXwqHjOm4MBwqK1a6ABre7IaoLNJcqRv5Y/UU+hTi2 wvIYEev3zbnKy96HIuKEJ0qjbBEmBzjmXPdlnWh+95/x5GmCxdnI/MWNkEzzhzhK sks7iL2d4/Y8flLDNHP47C9ZCmQJ36EKIGnPH0RVZpJUjfkprsAFCRnZqYMUx2o8 baawtw/cJrHHQi/9/3Tqpo+18x0rRVXlZE7XRve0IDj2PzDrHcPeu595W+ZsGMjY 38lx2w== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782740631; x=1783345431; 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=CxYwZWxZCd0f9iDKJrNdKvvbLvEUfGS1c+dfB3rVMektZxrFgjyjG03Yzn7y9Ua8PV meHcorIR5i5YAct70DzFRC+6DbMutS4YlAmHfH4UUfygRBp4R/wsX/Jizd91FWyc7xAf FeOefXPbuxlqe5BwFvsZuehmhUr+OrqVfT/wkXqFXy/kr6fWPtws5uwz6XmIby73HLbb jdtc3Ho5lZ6uosL0F2D654kwYBTvCUiaYSUNfQRne8RAg6x+x7DxUAVXp5sEoKxz/g57 a3CTwakmaWU3Voi84ZP1pxDXJorUXO2jw0plDFHD/gaLjxSxsLRPtKduB0RJ7O2xStOx 7IuQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782740631; x=1783345431; 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=ql3YFjIwWJM0RqAAGRRENNQtQEY8s14y70P1ar2Xd8C2MtOhKMCTXcWUS750vp2rhs +TmT/rpTtdMqPyh5uVI6QNFxt+QTnEo5ab7RWZXRP4djQVsd+txSIhdFKKZ3tOGog3uR pd3z2h5P0D8TSa+gE2WCYgURMXjwV3MTejQNuH1Kfmb3UW89B7fVJQn+IbpHX3BAAwIO smkQlBYQcN6K2L1gWp3KYEo50ejtiP8MvYxhv3YbY/A1MC5ttObd1xMYhgu8BVeBa3yd YWMu3fs1AGDyh3G/zrjuz2qzVPti63I/GFwbLmuLITVrylR7b1pzK/PJV/JWxlTlLrD1 ig1w== X-Gm-Message-State: AOJu0YwmgJiDfY0Q8i++lr2DVOf33ZgHV7HMzejQBnVMCaQqioNbguRu Pzvse1c+ZDyC0DnsZWC1p4CuWsJX+O+ju9N4xsn7Le6QgagLwUPrJIzAQcQSLcZ5KyM0QeIhcWl XI9/8MOYgpM6fHZ7BR9yETmQt4sselwvN7eYpuOc0SwFpK0Kem1hIMBWUASaNS6Soqw== X-Gm-Gg: AfdE7clAIodhoQTontYmWmpmsiofm79AVSuUYLZbUQnTKk+LEQrdnJUK9c+DCX51xAt 9r9cAiJfpZzVptNWQEsDM1ZXgfN1s7Q05xdOPUeWQikezZnrjRT49701t9I9eFZcEboU3LD62DO 3EhF0sJ37cPPRAgT1W/mpLPdpoC7PxSbpL1ifSVDqBDLe8/PEFpsUD8Y9yZLsRcWZjyAi1M9ifQ ku3ZyRiQ4UZ3vSqwJOuVQyJfypxamMJ8T+J4X+19QlMW1HpJmp+trN6FXxGmF/j85e1IIwTmRoM 2FFcCZ5gNj0/gZ2PrDXn2ECsv6tKeS/BwAQfA2La0xA+MPLHhxKk6Cdo9gRB2VfiKMeTu61UGK5 5pPzrNEnSmBPW4E/w8ZaeJC3Utf5vQaiwDjcjFsD2zGK1EYa+5Fk2iiUAQ8E= X-Received: by 2002:a17:902:d488:b0:2bf:27b2:4b80 with SMTP id d9443c01a7336-2c7fc89fe24mr154939505ad.14.1782740630676; Mon, 29 Jun 2026 06:43:50 -0700 (PDT) X-Received: by 2002:a17:902:d488:b0:2bf:27b2:4b80 with SMTP id d9443c01a7336-2c7fc89fe24mr154939375ad.14.1782740630118; Mon, 29 Jun 2026 06:43:50 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com, peter.maydell@linaro.org Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v5 44/77] target/hexagon: Implement {g,s}etimask helpers Date: Mon, 29 Jun 2026 06:11:59 -0700 Message-Id: <20260629131232.2487780-45-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629131232.2487780-1-brian.cain@oss.qualcomm.com> References: <20260629131232.2487780-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: AW1haW4tMjYwNjI5MDExNCBTYWx0ZWRfX2vAsYRBgjYpa KXLQafsJcdrNd1KY5w6xv00wvzPiFB9YNoTS5HuLbeGiFgjZUcEU68Hx2NdC+YIZFkUWQdpCkQM xU7OC84IYlwwbv6lOxFuZDpYFbQ6fdYftmrzLEDDaxBwBtofbCCl5oEQlkvjTHqg8mUzNSl/Bzk o7JzF+5vn23sLND+Zzx1eIo3/w6exBmgcWTMJldD/us0h6q6P2O4YQcQGib+KxXm9LBonsn3YSk U/xqiGODetYU6r8H4MoH4fmNt1WnM67nYRP2fzhxv0EdDZyTitCF2CfevlDG7UfgZhBCBNFqq4X 3p/d9lQRoaORPF3ugdk7Fvu76yO8xQK1oYLMwFfvWr5ab3Tzf6H3sVp60ZIsRJKU9kB4lpTYPOe 4860DcO9PmQaV4KFA+5bDgL12A0ukTclPFh9E55rcTT87t59DnqakhFDf/1YtrfCmSwSRUf/jHN vIs0NPB7as8SNelmguA== X-Proofpoint-ORIG-GUID: JQDKADeDcy0WTCYFsW8N2sIhyVTiW-QM X-Authority-Analysis: v=2.4 cv=T6q8ifKQ c=1 sm=1 tr=0 ts=6a427697 cx=c_pps a=MTSHoo12Qbhz2p7MsH1ifg==: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=he7afFXPmx5H4pWyvLYA:9 a=QEXdDO2ut3YA:10 a=GvdueXVYPmCkWapjIL-Q:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI5MDExNCBTYWx0ZWRfX4C3C0VWEpC0L mmBvfqM64ayhb6+U+WFd9RALFKLGm+2eqB1deL8p0KDdcmk6vlz6LBiixstcQyZd9TmI+BhojYD envqWVJ2nyaKQdzgVftW+F8ZC3PuMs0= X-Proofpoint-GUID: JQDKADeDcy0WTCYFsW8N2sIhyVTiW-QM 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-29_03,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 priorityscore=1501 suspectscore=0 clxscore=1015 adultscore=0 lowpriorityscore=0 malwarescore=0 impostorscore=0 phishscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290114 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782740984781158500 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 Thu Jul 2 10:18:32 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=1782740830; cv=none; d=zohomail.com; s=zohoarc; b=UbVNVjb/gTgB3kLJlDn/edLxjJfJ+4h9T3cNFRNQdWDiD7OCcNYE0NlFLUc1KHsMcCqgPnEx0A5dAcdXaA/khXce7/57qFE3xsz8HBE2yaVEVGYUUqx4OulXW3phvACoPbvuIZ+8YreSznp6k8RKWAZ9Y2OhEzGSanf9zDy0G8k= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782740830; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=LKCpzPJ9vpxndaNZnofeuBbwQwMy52I1xXxhtx8uaZjKlYZ4xXjGQwSeg1N8Q4YsHt2tufJcKXLRs8BAYAoNA35scKLxwAzYufvF0rZHb87EmpCyeuUNL6K3m2ajXSE58QdBnbMjkRqIKfCtHO1qwTYWVZKo5ohcMNwU5byW0Ik= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782740830885128.1162765973089; Mon, 29 Jun 2026 06:47:10 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1weCI0-0003v6-KG; Mon, 29 Jun 2026 09:44:45 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1weCHE-0003b5-Od for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:44:00 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1weCHC-0006CV-NV for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:43:56 -0400 Received: from pps.filterd (m0279865.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65TATMfF2647667 for ; Mon, 29 Jun 2026 13:43:52 GMT Received: from mail-pl1-f199.google.com (mail-pl1-f199.google.com [209.85.214.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f3m4tshem-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 13:43:52 +0000 (GMT) Received: by mail-pl1-f199.google.com with SMTP id d9443c01a7336-2c987913b08so20740755ad.2 for ; Mon, 29 Jun 2026 06:43: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 d9443c01a7336-2c9b0992227sm48968555ad.37.2026.06.29.06.43.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Jun 2026 06:43:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= HfSshN2DTXGV0fIztvVhxkGkdYU5fHFXewTdLdv52c8=; b=coIm7/1cBU64IM7k JnBdyrRsyOqqoppTKOa0FzvZupmcBaqDI+bxjeNTD/dm2puHKN8C85o7y5bi8ZuD UW76IcddNRuiG81w3V6PZysAiafiG2+XOXC+yUrjNB0MUaY633gWgWe0ha6fKepZ T6uNBV/vdY5FKcZTmQ2+rwWbnNEX0aFd2dUcYJ1ixsjT7ILGxD8RwLiSd5G4Nzsd 35l2zfpSctlewMuZMgDm7NGH+hbh2BV35lekEJof6AL4JmJVlJi7gmXF3NE7S+cQ Fm3mNExm9fwLbLJ3clTRHUEARR5QjBt5dKhJid5Delc70ghB8qmAbcrM9/M1dxV2 K/+11A== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782740632; x=1783345432; 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=Bjm4jg3IbAg0A005K6N6OUf4hWBOCDe+l4ny+1YXxcOSpXeS6dQhT6iWHqzEhgbv7r MyQzQXZik1g0LHNHnuYaoqSilJ+ogNyumshWnOWnR92Py8XeN+YtV1y4EqRjJuItPiWz shsb1juvE4+zgF5QjAWJxVaFiyRrX6cUG5ohjwFgO+FcofyaUYFAs4dxbV/0e91yEoGg bbCkurSI4uA1lDeRb8jlAkxBtdpS2Z+a7L2Flh5CEX9OpnoL66VI4T9lYhTyM8oThMf1 S9fWQKjkoUjbEU3kBsy5ziQ1tmF6NUmyv5CMbJLLVvFr4WlBE4bWW2O5DstlmezB5epy jGBg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782740632; x=1783345432; 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=bLpIWJ01jH3BkCI4ryfsMX6dyhmXhATIQgC6tOZ/JnIWilhYnHecLl92WRMLqv1fMU KZMGsfC1H341v6U4b5MGmgzacaxqmR68x2BRllge6WvEYycND/EtReuvNLAMRqx6sUAN kAok4ctw5AkMgGEbvyE+B8jmgv8jt3oaww/SJC59NUTA/2r2c2pc28g6thBBI4QtNxHd ABlnXNDBSnWPey8m6XDtaqNUEG3s8kTo2cZukB3jVt6ULmEX2bdvqyYL+Q9ZDxr+zzEw Vpa83wuxzSkmZ3vUv+VKjbMAIr2Z3/UN/CauYPgPmPIdlvtrtt+H2trBStN5rUzwSlsh Mgig== X-Gm-Message-State: AOJu0YzzVRKhgA/DROzZN1v0+nR9tnfdqNhKM8zWhiXaLe2h2yGwRLd1 VJY4767fX0xafx6JBoqaPOFLGmsuSq3gh7Ebq/R5kFGbgd9U26mVtlKmZNrsBXlZJuhGaa+YU/x 3NWUqA8HgUGaxDcqSyIgFrFMHTCOCharP1Ny+nvgAcP7u90TxVW1y+WysQUCMx7wIRg== X-Gm-Gg: AfdE7cnqTPDJwNuqfx99LvVnQJLv1bMZOyKX1UQlAzrZnaWxgWCjJNhZ5dH1dJo8Qsj OU07pMkKMyNJc3YwA/prTQIEJibFXcZd+OM/clsqQtxCb5VOXkBscOA3T3g+Xs8w0Mh6k5TZBaL 3A5agD3xKynj0ly9tidNETg5iFsioTOsuVu0vTmPWqrzLx+dHTwtJkQDFj9mCGIs3EIjA6C0X1a Pv02hlPPfhLYQi1NdqgyvY2G03A+7M+L0A/b7F+PasPtSGVQNV5bvX26fIgIxqW69kIuMXiCsJd hO+Po7gq2tqkd6KJ2ib0xooiZD3k59QPLmuPBIu1EQASYW+hTHWlNgzaKOeNF1jqwOysY1nTPqm 6i7UzbuMfioHE4oVi1E+hWQ6vrOvVVmj5C8Rc3mWwWOyOv550tsbuyCCNZrg= X-Received: by 2002:a17:903:3888:b0:2c8:2808:3ec5 with SMTP id d9443c01a7336-2c82808420dmr96593505ad.5.1782740631825; Mon, 29 Jun 2026 06:43:51 -0700 (PDT) X-Received: by 2002:a17:903:3888:b0:2c8:2808:3ec5 with SMTP id d9443c01a7336-2c82808420dmr96593305ad.5.1782740631359; Mon, 29 Jun 2026 06:43:51 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com, peter.maydell@linaro.org Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v5 45/77] target/hexagon: Implement wait helper Date: Mon, 29 Jun 2026 06:12:00 -0700 Message-Id: <20260629131232.2487780-46-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629131232.2487780-1-brian.cain@oss.qualcomm.com> References: <20260629131232.2487780-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: AW1haW4tMjYwNjI5MDExNCBTYWx0ZWRfX5xBbfBVf1URz yhkxglhA+O26sMl1N/troRvfcHhcgkbfOdkIMeOj5bQnOiN0hFtFaan8/h9sXDsX/yQG6fXUt5a 6ki5gSND8tEVuoeUoXTaFpZp6g1vSylZSQTpt/YU3zO6jiFmXiYLj9GOBZXQQ/CazLUkO0aUkMN /aMgTmEqBCqKj7mERReIb94pvF+BAVKdaoLqbm7RUo/GQSTpos9EVBztfN8BbBDROrg88hCeBul ItHUm2kor/DePd8aSkQfpOMURbkxFBzaVD/jG4oPdaunCkWix8Hwvv370b1ymvNfqzcuIB13X1D 7VKIzS8+s/aQ9irrGCxiDNiX4vZrXMyIrwEbAVAO8dOJXUxx7HDDDmoDx9wN3WsoUlqLLJxyvvj xbCc3i6ptm9C/ePkrPYWjPL1NTrpdYrKYxqIHl+2f96xu/voKluxCqwDlB5rR4IMGlodW8PLxwP Eq9qViRlWMCYHLKiZTg== X-Authority-Analysis: v=2.4 cv=R58z39RX c=1 sm=1 tr=0 ts=6a427698 cx=c_pps a=JL+w9abYAAE89/QcEU+0QA==: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=UWtQ3YZIe0Xef7kIUYIA:9 a=QEXdDO2ut3YA:10 a=324X-CrmTo6CU4MGRt3R:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI5MDExNCBTYWx0ZWRfXy55MbNviM3ZO EYkhkoaoPNxf07L2pgs8fnL31zJQA7XnCBdHfA0SiSeN0+DBfFB8/zb5uCfTEldECCznCjE1weC 6KrI/RPPey3vY4apZy8RaMRiFTBAEs4= X-Proofpoint-ORIG-GUID: 72Nd45NGlxNReWxakhqFG_l_TETm9oFm X-Proofpoint-GUID: 72Nd45NGlxNReWxakhqFG_l_TETm9oFm 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-29_03,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 spamscore=0 suspectscore=0 phishscore=0 clxscore=1015 adultscore=0 malwarescore=0 priorityscore=1501 bulkscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290114 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782740833524158500 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 Thu Jul 2 10:18:32 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=1782740926; cv=none; d=zohomail.com; s=zohoarc; b=anZIjZXM+g3e3n6Y2jF7+WORva+3hqlQgFLIKMf7K6PkHXbCtdbwY1g/LAvJcRvEEyX1T5Zt2vXAj6TCZGff0tgOyNSZ3oDIDC5jyyBSr1ji54toZ8+2Yota+rFfqmV4ozAGSalUdryd1jjAxKQ0oB7QaBjfF3YaBxN93cr28YU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782740926; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=AHyqkuwnI4mJUaDKksz8Kb4gAGfzBOAn1oO+WnkjQ6/sMSVYoVNOF8pTA1/dFYJe7Lz491K6EP6+8ialE1m8WolIOjoIw+ymVa4CWI4plYLtGNol4E54yHiq/OB2XpsWMXpJVFrjkjUW4S682/mKBQB3QvqXT8fD9NslS3VMX98= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782740925931321.66243646415364; Mon, 29 Jun 2026 06:48:45 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1weCHr-0003o0-Q4; Mon, 29 Jun 2026 09:44: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 1weCHG-0003ck-K8 for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:44:00 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1weCHE-0006Cf-Gw for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:43:57 -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 65TATTWL2579629 for ; Mon, 29 Jun 2026 13:43:54 GMT Received: from mail-pg1-f198.google.com (mail-pg1-f198.google.com [209.85.215.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f3kp7hkrp-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 13:43:53 +0000 (GMT) Received: by mail-pg1-f198.google.com with SMTP id 41be03b00d2f7-c892143db7fso1523018a12.1 for ; Mon, 29 Jun 2026 06:43: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 d9443c01a7336-2c9b0992227sm48968555ad.37.2026.06.29.06.43.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Jun 2026 06:43: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= UbuzJ7YCQZGqOoiI5HAt63RuanuV51wqRpzkdURFyKo=; b=n9e75UZZnYQRFDew T8PhF4Ag6FOk01KF3RKiOhpZSgpMsvrpR4dGoFRSHrm7o2Zh26JcSJ7YTzIiX62i 5NVzoFD603wR8rpHSa+SZOWwfolMZwdRfhODGNTbP9X1Szi2K1OP2aYxexS9n6uR 7LkdfVYyktpzyVjiBQdb4N20RHLCYnjMcQ19o02alHBFpeAG6Yd7EXh6kUaWFJto oC9D0nivWhpVfaTD0j6UsS5q5Hz/55pfJmkHfLEaZUVdthQLphdDPGps2rcBPWDL nF7/oC/WM3mpzsiLytKXwmOd0hhjyU6TXE0aazWPUOcWUoWqMelnfUXaBVKo5uiT WSzX7A== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782740633; x=1783345433; 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=WzT2t0zk9GoMZk7zZ4F6R5CCHkGWnZQftzQYPY82z/TnipQPQZoTwIfxmnw1GcEjn/ cHC+WWasNrEJwvwZP6NkxzjVlBQMO/Q+zgdyFJWm8xCFznz5/ZnwyMPEnntmnhIQRI64 aE4/9YHc+TmgkJmOfgwbHphZabflxXrwxqb1TVLXo2a156XQj0keBMu1iLnNbUOmDtqw wjkyNfYINXBqjP+ipl2M4wk11tLI4PFwdqau40fGrxV/ChjiUW5NMiL+SzM3WQjYUCax HsjiSF3bRV0oQGsnIZY5BIcAsk1x3T8dRNbDniUMrXpRNUilCAiNpMLj218i9rjRgXRs 3cJw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782740633; x=1783345433; 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=EXmiXSnNkS5HXsJsqW6Lzamgw2zOXrIyk3m5CKCcAygUkreKuqvx+lc+HVJO7ahg8c sZpxtkabp5gnZg1fx3MhGKkytKKD0K+VkdZbQQ7dBArNfPWMspLn7x2jl7tpt9XAe+YP g79Cx20OiazefzXRB8c09RdVUfyAHlOVsJfZkhrLqO88Simd4QOt5z1PCXBNAo2aKnep MkDrHlP1V8M64C+l//eZGUI59zBvHrn1tHdpC974qYn9fguqd7SPjddioMWoJlfs7VNA K7oEmyYeyqoWxgU6jek2i+Q9J67jly0n69B9aeXRWPx36HyIqWrdYvfwWMkii2Q+haaS s7+Q== X-Gm-Message-State: AOJu0Yz1qpGXM2CZlNQ6RZHEBdVH3gZGDaN1B8f57UedZIUqUw5npL4w 5Y+BANSnAsnLHJIJcKBM6byNcGFcNRpUzTbnWIjNAvQ2b3kAdDkiYjTdojqy3rzxF73anhRt/Qr q84gi/T3+B6FtvsXD0QhffrlUysqkS4eS+Z9YUTumpq4h4fzw1vD6zuUXcxyGZvcVBQ== X-Gm-Gg: AfdE7ckrYpFjNKFOvVA16RT+tL7vLO/RYFtMg+MaZrlkM2tkI57dfomTMICXJoLD8bS OOVAYV+W1a8ZHRt0/ymRVMRmUuhr9iUUIi3UPqy92NlzbMwYg7tA5SosATeA+kvyNJAYzMNykje 6CVCS9YbbGuDIgQcWOzqjtTQQHDUM/DOW3xNH5lybI0gdCVX841ku/uFe5n9edVE6M4s6ny2Gb3 qlPSKP6XdfGwvsr/JZHgNm3g6UELuJoBhXxIO1i0NscmIRO9DYNVVzc7nMaRKNbWnx8nEiT/Ob/ oqjtRzPW1KckhXEYN8VPfgRm6XmDxGTw1xC1tNtNHgjxtN1oaUPPTQhvhN/r44T/MeGleKJX2eZ b8EGjL9JUw1Q5aSEri7BSjXhCiFegQ/7OP2itqkop1gGI0vBxnvCpCmIDMxM= X-Received: by 2002:a17:902:f607:b0:2c0:a9b3:bdc6 with SMTP id d9443c01a7336-2c7fca37f6fmr156974495ad.30.1782740633138; Mon, 29 Jun 2026 06:43:53 -0700 (PDT) X-Received: by 2002:a17:902:f607:b0:2c0:a9b3:bdc6 with SMTP id d9443c01a7336-2c7fca37f6fmr156974125ad.30.1782740632655; Mon, 29 Jun 2026 06:43:52 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com, peter.maydell@linaro.org Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v5 46/77] target/hexagon: Implement get_exe_mode() Date: Mon, 29 Jun 2026 06:12:01 -0700 Message-Id: <20260629131232.2487780-47-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629131232.2487780-1-brian.cain@oss.qualcomm.com> References: <20260629131232.2487780-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: AW1haW4tMjYwNjI5MDExNCBTYWx0ZWRfX2oHQu9UPeQUv YrpF9ZMT3Hi+i23scon6Bl6/NULfvcqlBPJBN8GyYbn3+b+7c5in6tIJzRjOWZvmYL1cRGWyrD0 q1rWukbTYfJxTZ6SMba2DYv4jMfsrZs= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDExNCBTYWx0ZWRfX7OYzDcwi9ndu Z4VY0aGSdw3bQjShgwHv+yxN6moMQruo/+DOp2KGO7jgVL+u/jjm20LYuESWet4pNtEVrbZ5XN4 XbpRa+9np4EdQtGUalantVf5slMA+IovQr6JlsC20qTgOtcQ6zWdXJuO/I7fBKgTFck/N5meEDt dWb2fo5iMpjbdGSU+zfVTBV5FVEGfpz8k8p1Z6XCDiuTXq1X1+mCHwSd5bnvIB9AZJeqeZzbBxd A19k3+E52kzeb47xUugVT3DZmID6vyvpfMf+Hk4eFd7479++f1gc7pkR7OWhb3YD2vbYIma5QoS AUKnZ5liLS1Ye6ULe4jD2KbtM9KzAC4khmX7fH2g+R+VhfouVFc7qXxZ2dAUvRCzAqoeeXi6i// xgFfxnw1gL0wSKSM6q+yzZ6vXajZ355FqPa7lorzcg1sB5DkwjgWb8wH05gCQyEZEKGyTRBJQIu r7WHldJJueexuNcy2kw== X-Proofpoint-ORIG-GUID: X-vDdqk-FoqM_iyQtcP4CpN5gyylbBWH X-Authority-Analysis: v=2.4 cv=MZJcfZ/f c=1 sm=1 tr=0 ts=6a427699 cx=c_pps a=Qgeoaf8Lrialg5Z894R3/Q==: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=4_WtjC8beq4VSFaiBQMA:9 a=QEXdDO2ut3YA:10 a=x9snwWr2DeNwDh03kgHS:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-GUID: X-vDdqk-FoqM_iyQtcP4CpN5gyylbBWH 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-29_03,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 priorityscore=1501 adultscore=0 clxscore=1015 phishscore=0 bulkscore=0 impostorscore=0 spamscore=0 suspectscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290114 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, TVD_SPACE_RATIO=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782740928157158500 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 Thu Jul 2 10:18:32 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=1782741015; cv=none; d=zohomail.com; s=zohoarc; b=lK4A0JWYg0eMY9SaedZ/7Ey/nDyuIBMER46TWNaS1geX/b/rKtCWKGyTT2frFyUcjrgmq8RYw0+GN4XZ96aIl2g3gvSQ2cE4OcWl1U5wAvw7HpgOv4oycUvH8dCOaFrrZak+63xYVqmNB6VyYaoipIeuqoPLqQ+zFtTDN1opB74= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782741015; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=kZj3EgsmYdCRXfsuLB69kc10pwhr/zdFWESTfmLXgHjal1hkCvfSi3bI1e6oeyt6y8SSg9dfXKS1pPSicxmv4SdU0qZEtbjn03O5ag18JjnwYMR1dtVvSBD0wzEGv+yiWiOBm2YK/oWjJE9QfBjTLfkUGKy80FaEK3r7/Acglds= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782741015271741.5747130465256; Mon, 29 Jun 2026 06:50:15 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1weCIJ-00049b-78; Mon, 29 Jun 2026 09:45:03 -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 1weCHH-0003cp-OE for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:44:02 -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 1weCHF-0006Cx-0G for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:43:58 -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 65TASuot2603456 for ; Mon, 29 Jun 2026 13:43:55 GMT Received: from mail-pg1-f199.google.com (mail-pg1-f199.google.com [209.85.215.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f3nq892mb-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 13:43:55 +0000 (GMT) Received: by mail-pg1-f199.google.com with SMTP id 41be03b00d2f7-c89956023dbso1993865a12.0 for ; Mon, 29 Jun 2026 06:43:55 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2c9b0992227sm48968555ad.37.2026.06.29.06.43.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Jun 2026 06:43: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= 4hsqE0JDPfvXJ30nhCZ/CCXuACFuBC+IpE9moxChOvw=; b=i1MxTeCFHetTSIIK AdPTIbyd54aB7fjjhBqqPz9nMh3b3FbD/16DmMm45D3o4uP7sa7/mbVZGURQ1T95 cQ+gNCKQAP1SFxS0KD5G8T8CDiG76niegla9UVNYvg4wh8DV3EaLLaAmEks3d+FO hChHthGw2h0HqgGACJhNP8uZEZkfZ25EudgNWip6empO2+RUR17DIL21NCga68z3 ADVjiOXVlRlAuktKH8DMOEx4p5LHg2r/mwWn19/l4kyXMNbnjJfHxsxCRdAN0AxI IzAETtSdTQKrV8RZA4KLSV1WKJdnQcTNA1cplHRi8U0aOnxATDfizLeHv3xhDNRL L4K7cg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782740635; x=1783345435; 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=RC+ZMEe+rl46DAiN5+kyfuED25MUvwmQuSS3zs9Tln6SexTGjWR+cEm8BkDQkaTc8v knvKXTHzp3MBZAypgUtS33C05tBRDt0Vh23fUlRd5JMgJc2wIR+qYE+OKCui8xS4svIk umFFFjxq9bc/7Zn4tXw4FE2wB+RnXhk2WV8HuIYb6o/InoWuw20uhZbY0Sjj+MZwlU/A Ht3bvx4xQaniaBUhgrE5hMyir/JmC0qrjVbH7J4PQ2zPCv69rchPeM2vEDxhlcVwbUTq jI6zJUzs4soDduDS6UY/Lcq4dTci3+qNZu2NuC/qhf194Jd9LzROuk/H/gsgd65p4PxC 0wMA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782740635; x=1783345435; 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=rVfiQaW5A4nGoTUaKTfdlIVrvJBGm5pNNdcd/boJrdzBxA3jdKl8Kc+3PlpFTxTtVs z1NW5dUveNZoSrDYVH1ETz/R8bD3bTs6RM+niOOIibbzzoWueXnsIV+YutlL0rEBZ64B 3Iv+ET9kGAYFDouGaosg2UUY6iIiop52owmSmXNHZeSyaesB7AW21MYNVfHs0zAWv5/c 5nPIfe/pLAeLFUomAUhRDx+ngZssnsFENTXLAr40bCh2gL1fvPVEWJ2eKkN8FkQtnUxo ByhpnVzZ/E9XQsJecU3WoO/PAET9GIbEq0xUn3N19e187JZTiUs0UR4btzBdpidqvIho SpbQ== X-Gm-Message-State: AOJu0Yy81PNNT60rhpx4JG7C5TnTVXtYSDkPPzvTg5V0xy1qcF6TAhyj wDd//gn6BKjTQKFXtlhIwVCpYiE66vuE/QBSJdRDa9NlIEG6uDw0KbG1vUeMzjH21hWBuH8N/dt YyRrkMPviFJ4pYDIXB6wkiZKRuMVDJGEjCEHMSRIqiGNaCfrvx7F4HoDOgYHJu4yG4w== X-Gm-Gg: AfdE7cmzhoAq/Ep4mQIsEV9yyG2dZwO0T9hXRrMZ2OmhRLVX1cxUon9xwSD7k8p93ha nNYeEytx8yW0uPmEV0X+zbrZ6sYoygdv40qBdkDArztGKYa32OD6iaKUeaZ5fob2uRwW9gWfvlJ VADNwnc0Q1FhDI+XpxE+qsKExC0TSmzrfN4EzjYAM3nJpRCrbqft2XDsGlsVBrO+z4/hHL3QS5l WgG5SFnwhO1YdVvZ3pUzdJ97iuZ/KUGrRCVDXif82UuhmGOViWxur4L4836D/8OLAUHzKHi9zKp Rw5pw14zqwgS/xPNzzoOgahRBjlk8msrsRTk9cAQKNIo5CZBtZyA22+Ru0LlTOsSJqx8VxZkLBT bujqH/1Fvk3453kUWUjH5fTXC6kgSXYPojq1uOdY+/2PShgAiZxxRrsd0Aqs= X-Received: by 2002:a17:903:32c3:b0:2c9:b2cd:e282 with SMTP id d9443c01a7336-2c9b2cde545mr67360885ad.14.1782740634953; Mon, 29 Jun 2026 06:43:54 -0700 (PDT) X-Received: by 2002:a17:903:32c3:b0:2c9:b2cd:e282 with SMTP id d9443c01a7336-2c9b2cde545mr67360705ad.14.1782740634546; Mon, 29 Jun 2026 06:43:54 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com, peter.maydell@linaro.org Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier , Laurent Vivier , Helge Deller Subject: [PULL v5 47/77] target/hexagon: Implement hex_tlb_entry_get_perm() Date: Mon, 29 Jun 2026 06:12:02 -0700 Message-Id: <20260629131232.2487780-48-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629131232.2487780-1-brian.cain@oss.qualcomm.com> References: <20260629131232.2487780-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: pjaSaNAodHKvZ9SI0W-IjhUf-RMt2R1M X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI5MDExNCBTYWx0ZWRfX47nhRg1LADru mkQyvntPLX5kadw6VnMOGQvbtqcC/37SlAYQGPjSYXAVrS9002NYgEUTGAcU3AxpGPUomd0NGyP x3ao2KhB2MsfV2aBy8RGq1R6Ys1tRnY= X-Proofpoint-ORIG-GUID: pjaSaNAodHKvZ9SI0W-IjhUf-RMt2R1M X-Authority-Analysis: v=2.4 cv=PqSjqQM3 c=1 sm=1 tr=0 ts=6a42769b cx=c_pps a=Oh5Dbbf/trHjhBongsHeRQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_K5XuSEh1TEqbUxoQ0s3:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=RKVJoAg1yBLoogzcrgwA:9 a=QEXdDO2ut3YA:10 a=_Vgx9l1VpLgwpw_dHYaR:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDExNCBTYWx0ZWRfXzwgsFK2DXnC+ TXMpjwNlJYBVpUVdIcrCNoPKugflz0Q12ZqzMJOmHCoBUABFHQdmHhodp2L/SzFTfDV4btQU1uX 1dExzrcb4S11uNWT4tt8Wj8nrLxKYvoR5/xGJvZar+e9Q732U4vUKTfpiXcg1gD0uBuEz0PgiJ6 8FPUwrfnnzXVztBZeAPnS1TQRCXWIR7hBAFVqGnXAXYVhjdcLai4Z/NcgyhW87TwtPdY6jNGJb4 7K4Ga9CoYG0ybraV6cw+QV8RwmFTfGyK5JHoOBtu2uzdkZC7Hh+y9nTrcAfMZP5SDZPW84KBB7q pTojkRzSYdKq0jcyICNJGGrpahE5Z/7bCrhC2JB0k+W0hfNO0KtUhGJGq6q2Vw9myeDt6+/rj66 2YeXkMwwcQuJB8ILTGgZpFYzIgYy4VUJpFu8A/ip3pskofzJPB8GkBw2Mcb3asK+PVCTx4byDKA T+5lnJSeEE6F47kNPjA== 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-29_03,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 priorityscore=1501 adultscore=0 clxscore=1015 lowpriorityscore=0 bulkscore=0 malwarescore=0 phishscore=0 suspectscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290114 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, TVD_SPACE_RATIO=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782741016837158500 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 Thu Jul 2 10:18:32 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=1782740691; cv=none; d=zohomail.com; s=zohoarc; b=lKJh2kdgb/lbDNvGTwzJq9HoTejX1qvyZIhLazzyAiEjmaT5HUPqov4IwWhhOVhhZAnTxTTj2OJjGlDy1vBddTjZGuRcaiV1RURF9OVaqK5tf4jJ16PrFXiqhbuzFnho/8eaGRHJSVfxcyKhhqFV5QvrPqQb/XOJMGV0YMd0z8I= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782740691; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=HelQHCe/VWJ7ijDLk6OnW1VDK6fMaGWXDzQ9MaDxxYpkJhNboElnLFklb37Q0spe4PMX8YkH6JqUdSBD1KxIiD1k8NG3DXs2ho+WgK10oFn4t9uhHT9Z56buhVOGhyDQFeyGfKUt6iZaVFSAgu5vQxDBKlyXM6/d4PtD6smfIKk= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782740691711200.7239133493306; Mon, 29 Jun 2026 06:44:51 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1weCHs-0003qf-K4; Mon, 29 Jun 2026 09:44: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 1weCHJ-0003dC-C7 for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:44:04 -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 1weCHG-0006DA-EX for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:44:01 -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 65TASvi22603468 for ; Mon, 29 Jun 2026 13:43:57 GMT Received: from mail-pl1-f200.google.com (mail-pl1-f200.google.com [209.85.214.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f3nq892mg-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 13:43:57 +0000 (GMT) Received: by mail-pl1-f200.google.com with SMTP id d9443c01a7336-2c9e9cb6a44so7459545ad.2 for ; Mon, 29 Jun 2026 06:43: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 d9443c01a7336-2c9b0992227sm48968555ad.37.2026.06.29.06.43.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Jun 2026 06:43: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= aIbWXnylGEOIxNE7Hh9Cxzq5WDrKFEMpHLRhBN9RrG4=; b=RwI+sAsqzgnBE1vb 7kJ/z7YDF3JiT9Jj7xsU4w8s2DOl69gYzcKzHuWJcHsy40DFRoj51RRlVn61N+uc OnqMvLsamWNz631wQsE52/2PSJ5b2lk5srCjd74BIxLrDyPlteBUPweA8f8nKUlQ I1Ag8IvhbquJ5NHX2Z4zlSeIzfi6C3SBbEf139f+iwShmJ7I0/EfZ0ad27pn7YJW xaVblsABYcCAIw+ZgpNOJbESbt3hXmvL0ZDIALMJA2hZxj+G4XCKxFG7ode+f/W2 ohCSj9yZurgeXaA6t26jTg/tsbirqLeAcRB8OR7ykqzZgRzVTPY2ojN02sx4cbHd hogGtg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782740636; x=1783345436; 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=gZj1B65TjoZvZfFEHR+7dIZhITnGtq3SzKOmi0v3y/wAQak1iCKfmPxJSfJOo1gaUd nK88zYbZdHo0dh9OW787Xumq14v9FJJcT1bByj3AN2J8+ScSH0ibvxVGLPctGhAipYGL fE0kxZSHP74ndOyK+31D5Q8BOCLxMEaFZNZe3yd5RPec2xzq1q01oqG3cGnvE2t5bSko 5XPGLh/SRr1mXXLgW/N5ttSabVDxMR99n4f2pMHMMy5pSPy4D4vERoJDEfHznGwzmx7j WNX5qYD08mSEkMqVvWpfXsaT1ZeLWFO0UzQ96AUuum8TySv9Kdc8cG/d4uxdTfyOu/FQ 3tfw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782740636; x=1783345436; 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=PU0PhODcfIPjTnTBcIkWSgi0uufJDmm7UhFn1CWkGqI8RGB61eZAQ86rjkIM8Jucs/ QrDdjsvxTDhIt29QyaK4fQzIxivgApAkNgHyeh/Cvn6eOBuyPoiuwS2fEgUnoZLyn5bD dE2oXyMavjZ+eutT9+CQOY8DPW/jkCy/z/DA+Mbl3+AE0/T+tNf/a0m6XC4lcZNgsyla M5j39cEuoewl6vVnD/ILO4NM+WZLOtLtmYi8jlm4owo6pn7aLy9vKj+pdPOE4lGUKH8L Y2ZaXigUZRx8tJcnZKsTlfZn/dp7e6qxBtNf8ev/Kt1n05pFAv1hrMjXCLyJQaOoWppy lnFQ== X-Gm-Message-State: AOJu0YxGeHF1rvAsLu+VlCGyO42YkD+4qbEHqaXXUYve0afgxHzs0fun 83GTwC+WvhtZHQF3AkmVi/0D0xzFIczf80aulHNWL2JLGxyP/VbXh5DQwFKpZ7Hz8HPIk5Un1pT FsgMw7Za+z3t4dGBn6KDJHy1DIJHh4IjKQ59He3BWVBj5fPOHfytoY3GcGqwwikcsuQ== X-Gm-Gg: AfdE7ckrat8wnBuJyR2cKfSMsNztZe2NSpbA/3LT5m10EnXBXgkYKYawU59/kj8yqQh ZTnk2q3kgfbvSmSVe0YROtCBR7j58zGrgEo2zqeQZL+lqa1klorvOcMXbUKE+XKw5nTEX7yeVKq eRAEKw/QXS4TtFse3s2tO+8BnmTQUHBzn9ICbubqtN39nLUMJbEyEuk5cNkHo478GJu8ZiETiwU jhZi1Z6pG+9Ju7PNzOWxNkQ9CHjpO5etx11tKUwDBb7H1j9rqn0U23RhYL3BV0qJ3S4gPTo7IsR bBT+eMlT0fYa5BFjvgmH8eAr04ZRisw3yaC+UJTNZhMnt6oBn0d4/24SGpVexvpS9sAVD0Ondh6 GuUf7HakDeVpA7FNgSLEYNhT+IElJSL+FbUDRW3WXgln2zCfmOH0xEpkbkAk= X-Received: by 2002:a17:903:2305:b0:2c9:e266:e32e with SMTP id d9443c01a7336-2c9e266e610mr47532175ad.47.1782740636331; Mon, 29 Jun 2026 06:43:56 -0700 (PDT) X-Received: by 2002:a17:903:2305:b0:2c9:e266:e32e with SMTP id d9443c01a7336-2c9e266e610mr47531955ad.47.1782740635808; Mon, 29 Jun 2026 06:43:55 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com, peter.maydell@linaro.org Cc: brian.cain@oss.qualcomm.com, Brian Cain , Mike Lambert , Pierrick Bouvier Subject: [PULL v5 48/77] target/hexagon: Implement software interrupt Date: Mon, 29 Jun 2026 06:12:03 -0700 Message-Id: <20260629131232.2487780-49-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629131232.2487780-1-brian.cain@oss.qualcomm.com> References: <20260629131232.2487780-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: 6B9auU65Y63ZpB-SnsORJWpdy-iW9Mag X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI5MDExNCBTYWx0ZWRfX9MQBW0Isas0G ZbVoQYJLpbx4yAAbo/J3CqwaxIS0WGzr6fR7fdxgrvokZS49+4yP3ZtMFOxqe+yaWzQJ3inmmX+ h4is9GWdjDFV2tlGsPMoqC1lm0ciBuk= X-Proofpoint-ORIG-GUID: 6B9auU65Y63ZpB-SnsORJWpdy-iW9Mag X-Authority-Analysis: v=2.4 cv=PqSjqQM3 c=1 sm=1 tr=0 ts=6a42769d cx=c_pps a=IZJwPbhc+fLeJZngyXXI0A==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_K5XuSEh1TEqbUxoQ0s3:22 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=tNsvDMl9nzr4Tn7f5JwA:9 a=QEXdDO2ut3YA:10 a=uG9DUKGECoFWVXl0Dc02:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDExNCBTYWx0ZWRfX4ig9+FXzhJ/a g6HuvHthOGvujvEVwOj1l9iuqWZyg9oyrzGOHA1LNS00ySaI4GgEson7NTSA1vBh4SZDGEgoyOt OJA7RAuXhZC+DEt5RnbU8MayBuGJo+TkWDz4/rtDbIipGwofh685pBNvFBfeWulKl5BX/XN1TYc JD+8bYpa1EIuSgEGyMysz+oP/MFYujQRENDnhIUMI0wLSPTrOqts0dBLbJbqPfyzjQMN2yczfXn bZBf6jyvP8Fi+dKa0wSb9deZHCxvY2yzzcaRZLJo7wEXYNNJcuQIfFF5QiyOpK2poN9SrvtNVmi J4DajAjyfQyQ+49TlwmUuE7ujvWNhFKqk0ailmaSv2sUBW109/8ZCA008qHwH6FOUEwfNSfYWQG 4dpXDSVeLS5KrkdjFk+BKN40Nsc0Eh1X2HxwbYfXzTjqpxc8hH2cPFoJYRzFplQbunpIoI3SYO2 f/iceFVxjutEf35sItQ== 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-29_03,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 priorityscore=1501 adultscore=0 clxscore=1015 lowpriorityscore=0 bulkscore=0 malwarescore=0 phishscore=0 suspectscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290114 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782740692652158501 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 Thu Jul 2 10:18:32 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=1782740944; cv=none; d=zohomail.com; s=zohoarc; b=g2N7PEayRuh7lJpz9qND1whuXDm+HSOaRz10oJpjp9VrNJqdGE39yzUUda0/GrcvlsSs/Hw7AyKmcS3CMgtJgby9TKuYqXa7fiL9Wty0t8Rkm9DpH1jkefbtyBekrkYsyaYa76fant9f4jjbAJ0eVOpzM58H2L89R579rpKjF0k= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782740944; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=RSmfnacX85K/rxO9MiMKsR/tWnuGMvo1M/09upSN4FHrylDwC6qDRpvnJXYxGbHMtCg4xW7dRgPZNCHaQ1/vKEICXzMdcODpAOf7kGQ7S/ttXXc1vCogYKTYvmfp82QPCZ7nQiBVab/RTvvhQtOlDpBqxQmnRnNDuer9hxcJn5U= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782740944424984.1179081274469; Mon, 29 Jun 2026 06:49:04 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1weCIK-0004DC-4G; Mon, 29 Jun 2026 09:45: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 1weCHJ-0003dE-Sj for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:44:04 -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 1weCHH-0006EO-TV for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:44:01 -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 65TAT3lL2641697 for ; Mon, 29 Jun 2026 13:43:58 GMT Received: from mail-pl1-f199.google.com (mail-pl1-f199.google.com [209.85.214.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f3npes2t1-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 13:43:58 +0000 (GMT) Received: by mail-pl1-f199.google.com with SMTP id d9443c01a7336-2c9ed5caa3bso7957275ad.1 for ; Mon, 29 Jun 2026 06:43: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 d9443c01a7336-2c9b0992227sm48968555ad.37.2026.06.29.06.43.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Jun 2026 06:43: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= 5Ol8x/DbzIMvUDIJM8kbWvZWErXt04EMMYZCOcsacqI=; b=hjlWD/YJAFuZlgJ/ OHLlp3Byy8qHpvGjB0KHdGmSuYUJyTSKvigUs2UhzAqHFbSt3eLTxjQ7aVY3rY8m wxH8AaXdf7ykxYndUsDc6AAZ5UWUohGZStp0N0Kki+s0pR+2rIUgDQJKt9pWjp9e dnmIYwAbksJkPsfUNLBkzVsUGvu7toQKBxUxEH5Q+vyFFkiCVr9FpOsVwXW0s+kV ezGMoJPPctnbd9f5D84yGPaBsiqyYNKaBO4bKxYidsMa7ORRzoaNhodxFab+wm0N jR/S8iPYaBZyd3Qmc8rgp0+Le9FF3fjE2qGeteu6/3SKCH2Sr4CDzzEG5N408i4Z SupKmg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782740638; x=1783345438; 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=IxNXePJWfqCZYpRe2m8pfw8CGviSqsUN1uGy96LfyTkgLEwC+1fyZFL58cmZIvgsoH qkxhuv25tspO474podkXyfoEznKtABieDC7JywlOaIA/jGtKtlg6W4GCCxkXo9t4Epbz LpygnzfD2FFQumu4rGfsm8PBYlb1m2Ros+Pxyl6ZS4fcLKPSlgLa8vlxS6+xbnKbmRYq Uv9O/W3e/n1mbZPeJuMHlx57MBs3cV01GLxjCBCwiV6WkiKdvidma5m6O/NDMoygjnC3 QVoCMT8Y9LOHKNR4vXxsXTzoM5+IfnXna2gjEcHi0tfqFfOsS/yXUMK5m950FQmDkfPo aHcA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782740638; x=1783345438; 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=ClfpErEJNSRBZE+WSspvssLc3kVpogTQjixoaPm9JEvgelDEfA9HVmDKjIL45bcDVh ijxjc6Rs5Ln+lGUI4Q9fD80+8XObFkZ7yZkiNq815pPAlOk9uEjUG7Yhy7w5JbUbvRRT kH147gYjFXzr4XlCQ2VMWxZ6XsDJKIqX+JBLONmEowgi+bonIILMhpyNHdzOWA9/zQU9 Ze3VTs3x/XM9XfzzHbDI6vHv33QT0U+tYsMDeczp2qBIVyRhZWpNC70L0ctfq+L5GmpU BemzCzY53I2Tg2jWleZGDMBh+WOxLAfq69ymoLwcxpAC6VkB0foAY2D+Tdud9yTrAy0p I19g== X-Gm-Message-State: AOJu0YyO8cYO5Ot1UQh8EdLsBsbmDuR/BBWqGqsimqkpjixdZWmfwSsM 2u/ZrsIhGqscTi9A2zEpW0/j4YAolouPjWuk4abAm4hzRsM6SKCK2XSw/+eDhDYIpMy4GbBCMpI oWLpR5l1RRLqMD7udaNVlsAm/TThi1cPmr4Tae/TO8D7fFLuGermCjcbWPaV5QUbwrQ== X-Gm-Gg: AfdE7ckofWVogw932Dztk03+lU6q0K3/Kpa1aTHocIB32GaXEotSbM0INKwdlGOEoeL SyjS2u2xhHFrxvG0tyflP2Dj5FQNnJJVTEixnKrnzm7M9I+LsQNf2qGCzksqCB/f8k7i1rf+u1+ 4acH3NpudJv8bRXOcnSAtJnpgO7hDTK4/Px9Bzfo5V0Up4FQTN6zeEI+SlYkTW/ZRYG81Gkk/5t WDnWb8B6j8fWT40FMkCuuWpt6iq2lrPPrcX1Z9zyyKGL6/kiuR8GhzzR6aK7AfEJqVianrw2B2p bDfQ+pn/ugp1aJA4epj0gDRSws9jw/Y/NayaM8nSUCUUiIGhYM9UQWJO/t/aK7YYGOMz/UDWh87 HyjNwxSIgmVBRotDaJVfO03O3mZtUYHLgAdgEQkcxvxtJuMp0z0BTR5Jxwsw= X-Received: by 2002:a17:903:94c:b0:2c9:ed2e:b8c1 with SMTP id d9443c01a7336-2c9ed2ebb9amr31522865ad.12.1782740637649; Mon, 29 Jun 2026 06:43:57 -0700 (PDT) X-Received: by 2002:a17:903:94c:b0:2c9:ed2e:b8c1 with SMTP id d9443c01a7336-2c9ed2ebb9amr31522625ad.12.1782740637140; Mon, 29 Jun 2026 06:43:57 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com, peter.maydell@linaro.org Cc: brian.cain@oss.qualcomm.com, Taylor Simpson , Pierrick Bouvier , Alessandro Di Federico , Anton Johansson Subject: [PULL v5 49/77] target/hexagon: Implement stack overflow exception Date: Mon, 29 Jun 2026 06:12:04 -0700 Message-Id: <20260629131232.2487780-50-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629131232.2487780-1-brian.cain@oss.qualcomm.com> References: <20260629131232.2487780-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: AW1haW4tMjYwNjI5MDExNCBTYWx0ZWRfX/qi3EIoBKcel b+F+SXWKCwwKsxOFbR+8EmI9umT7dMDuaz8W2useJsHcNYCTjyhlyjGwRQ5ZPCIB3hJ297qHaWm VJC/Wd2i3BtPtdGjgcjkR8q6ctqP+v6TkLJi/DtCSgZCQNZdYbvK20h+0iZ8oyoK9d6hBwkvmHW LR9+LL3eIN9iAnIqtDZqmmohhhbG3jpJe9C3fHYho48NfOerXxVpVYHWj6c6h1JraY0bY2IKwsX SIhwdjMSFXE58oHpPMZfqZLR5Jn0wndE7/VaVJbd2MiUkSGkBs9n4kjb6bgsl//WccZKyG0xlzQ 1Us1Aww8ONsRwGpsym86uDXzOqZitoAXFcLXKAQItPgaPsauwh0HHJfit5eoTH9jIla7sWzLaTL c97sg3XdiCZ99fI1fRQuR9JVDU4veEVbIqMH3lcL9nfZB33Wb+21LpozZLefTBXhKdzs4TV4esQ K4o69LqBQDYLKby1scA== X-Proofpoint-ORIG-GUID: 9KLpazdjpJB08FzhD_4Ey33HfdMRdy_A X-Authority-Analysis: v=2.4 cv=T6q8ifKQ c=1 sm=1 tr=0 ts=6a42769e cx=c_pps a=JL+w9abYAAE89/QcEU+0QA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yOCtJkima9RkubShWh1s:22 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=DTjK4E8Rq4C45BV92HcA:9 a=QEXdDO2ut3YA:10 a=324X-CrmTo6CU4MGRt3R:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI5MDExNCBTYWx0ZWRfX/OtKsGaxE4Vb TYhe6uMxAInNR9urmOJdHG8zG3f6u7DwGXR80vuq6aM9VL56J2mdB1Fapxb27RaGcKrSSV2LiNJ 2C8yLa5rdmzvJnXJfwKF9rKqjey+zDk= X-Proofpoint-GUID: 9KLpazdjpJB08FzhD_4Ey33HfdMRdy_A 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-29_03,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 priorityscore=1501 suspectscore=0 clxscore=1015 adultscore=0 lowpriorityscore=0 malwarescore=0 impostorscore=0 phishscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290114 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782740946535158500 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 Thu Jul 2 10:18:32 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=1782741005; cv=none; d=zohomail.com; s=zohoarc; b=W6YwuPs+2jG4vaJ4sjZamP3uP/tTJ1PCTY594JHWZmoeDJUlpfNxe/mgXv463Qme9UA12xBOjsqw0b2cSI8AraAdP1vaTQK9uETRI4f1IFzEpkDtabQK6RBI3Ro0shQdu/AL7wY8+0GqDZgWYsCAkT4mLtuclSaPWqBevlckDXc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782741005; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=PJqkci6XTMOdxHeAv1/obrj0hZ0C0fDlQqAAHcSDHlnbKYqpbIBOzoUFksmeTP7FbDi9jfIqF9buvfmTYdlcgqWBVMahu3+m5XDnJrFbAkS9jgeqVuDZNrHtWi6PdXuGUT7RA3Ykgmc8K/uRKdqgoxgqAoc7f/3VLY/zSZdCmHg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 17827410058780.3611724502710558; Mon, 29 Jun 2026 06:50:05 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1weCIA-0003wV-Cm; Mon, 29 Jun 2026 09:44: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 1weCHK-0003dG-OI for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:44:04 -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 1weCHJ-0006FB-3r for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:44:02 -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 65TASvi32603468 for ; Mon, 29 Jun 2026 13:43:59 GMT Received: from mail-pg1-f198.google.com (mail-pg1-f198.google.com [209.85.215.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f3nq892mr-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 13:43:59 +0000 (GMT) Received: by mail-pg1-f198.google.com with SMTP id 41be03b00d2f7-c88fc985a65so1615540a12.2 for ; Mon, 29 Jun 2026 06:43: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 d9443c01a7336-2c9b0992227sm48968555ad.37.2026.06.29.06.43.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Jun 2026 06:43: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= zeFyaaj9ezk3dMnLRJvqloiuq+fIgJ0YErhEi239GAY=; b=eGKZA5yT9SkKblm4 KSlEl04QRh3Yz0rEcJk/QJbCl4KQy2SnVYbCXBZWNrVeGemUfRFykhbe4M4xadE4 2M2XLQh1JrxJ/WO7Ida8gLzRyw3nhE4HfScPLdAEUyNC9ailwJdWAMq/0EfzZcqm 6pNEwWDHkp2QS3Pt8klWXLOQeQQlk4a1iSP+jGgIBwVOcCOxlNz1BQNiz4OdrKtU ww8sHXYo9cck3xKhGOcEW1OLfazdbGha7u9WWSTah5zdRKrnzZMlr6SrTlxuaKeN vGbYZOn1/ftp4z7sxYia1TNYzVAoQbZfSKqVf3TvxdD8JFDNguTf0sWul8dtaWk4 G22+Mw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782740639; x=1783345439; 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=Vhxj34iZDUvRcdHghAh1zQmoV87lWz4thgeR3E0d+FVBd898zIJUggGgUDSyQEa1Iu lmK1OPE9UZUesHmauF2vrsS/IK8OGpwErInH7A+9WFONFh8mMXyEsqRb62bNCJ7d6vK0 RO7HkliBLMy5RL0f9pDVaXny3QrXgHgNgPvnfST9/vNz88M3O5mboGaLfuMzpV/Gs4hR f9pYMaLRBZAt7Q+rTo1xBoTif+jRIFK+tSU5nsph+68y2qJ+82tGOpikax38M2FkVjjU zXwwH9tQC+evi0qvmjkkdpRKD1pf4UFTFUZfznn8MwXbHdnHev5UoG+4UP7Uk/itq0IQ yzrg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782740639; x=1783345439; 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=k7qTnih7Cwrf0vjjk/tgR7kAAkBEaN1lnjUfzrwY0udTuiX/przXJcjp3CwFwEs+0e cU/rg2FKRZ12gaGSfG9+sq2nVTwTwtdfQ8Pzhrl24AaYJ8wHeuv7Wn3SxEKO8bjdeAur FkMbw7QZ23EhgbxqLrYOjVcT+446Ygjtzqgv8LRFkyAlJAqoap9nV4dY9hviHyNtz1cl 8x1msXdY6nkKJPr1mGCNGNfUJnVvqSvHfzSkhT8q10Z66nGznGWdwvZG7lyMCAsajd64 SN3pNPFxJJAxn6SFajiY6m7kXBQixCs1lVmDTFS3MK8EtcYTmqgiPfvJ4ljCGrimnAd9 S68w== X-Gm-Message-State: AOJu0Yw5ByOp1+jWM9YYyvBfiXkascGJBiVcMNk1SAAS3FGTu5heoOSX 5wPXQgqPzzAwdcC9eDFLzlX57btZ4na/VphkM5k1zVC6/kHoVQ52rrHuvO+cGQ+uSpLank4T4rZ YvsB3RkiCvLCeCgPFPvvKztKRyHISa60HVbd9CoOV+JQ9dC9WHodlQF+HawkrrqKvgQ== X-Gm-Gg: AfdE7cnX6iKBQpwoWPFq3CUOrt3B5ePv24t0PUrwIEvrxmJrA83lLHJi164Puv2cEN2 oMSqlAe2kzLkZnq02OACBOLlaqW58YyPCAZMj9CJTdwoxcBY6pbI44v7w7CRNX1xZ4r9SXjjNZB LAF3LajkWCIyRIDZMNo/p5BVrcmawDgSgjogA4y1Mi9pcL6i+c2wqrXlHJP1NhsFse6NF7ZLYNh 9sfLfBUyWqxKx1M+PUTTuwzZCxCtuOWBaxQvPDnKH8jZlPJLELjooLppCGtxG+zUpdKVdBFSnYu /7gTbSst0tyctR3f/TY48h0hTZQVjscOKNMgclf4JjH9AL1ChxEbbjf9A6fx8RXGjaL+o17OWK5 EvgQvrS/T1e3bbFA85TF/5G3U8Z+FaY9VD5tEo9jbzozQf+Okeg6cYzQUVTM= X-Received: by 2002:a17:903:324f:b0:2c9:ae0b:61e3 with SMTP id d9443c01a7336-2c9ae0b64e5mr75896985ad.2.1782740638911; Mon, 29 Jun 2026 06:43:58 -0700 (PDT) X-Received: by 2002:a17:903:324f:b0:2c9:ae0b:61e3 with SMTP id d9443c01a7336-2c9ae0b64e5mr75896765ad.2.1782740638395; Mon, 29 Jun 2026 06:43:58 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com, peter.maydell@linaro.org Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v5 50/77] target/hexagon: Implement exec_interrupt, set_irq Date: Mon, 29 Jun 2026 06:12:05 -0700 Message-Id: <20260629131232.2487780-51-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629131232.2487780-1-brian.cain@oss.qualcomm.com> References: <20260629131232.2487780-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: sJajVEn2Qv-B9LqFjtLwDfidxCDbNGJu X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI5MDExNCBTYWx0ZWRfX6ruWI0cOIm3r oRLvulrdkJdhBvKfKQPlH2s7iSeyG6zl8MwZSkhYKyyQ/MaeUGaY1o/cY1QZzX++kzDewJ1oeK8 fuCI4oWLlXwOsMDGentq1aIMvQ2nISU= X-Proofpoint-ORIG-GUID: sJajVEn2Qv-B9LqFjtLwDfidxCDbNGJu X-Authority-Analysis: v=2.4 cv=PqSjqQM3 c=1 sm=1 tr=0 ts=6a42769f cx=c_pps a=Qgeoaf8Lrialg5Z894R3/Q==: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=GA9jbsKyPMLDJDmtv64A:9 a=QEXdDO2ut3YA:10 a=x9snwWr2DeNwDh03kgHS:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDExNCBTYWx0ZWRfX7tdhl9PBz3F2 5077a2iXe7HNwk0UwgEZn0zBNY59UUx7KSDWEnmuxB3Yaimuoe3ZtbJl8aizMPIOg7KTtgmLxhm 0z6NNyWWkoDNHT5ufdO4CAjAK80DZPyTXAWJwrgH+UUld/j3kUM2z/9i8InZPPl1Ogf24Sn1rQI YsyWMaKY7etMM7D0g+3mB/7QLLsbLSp0JJRqTraKnMvw6sfvJZcK28uB9VQQnqvElxf47oqpb4H wOMM7R/9D7AK70mB+BIESoVDDc7QgLnUXkJTsxZQ5tVQcgELwJcq9prEYgvMGxati5QLNkClXGe lSEQMu57Gj/j0G69Ip/GMDlFjfP89BYRV71mO4cqnJ6Lt7WIfuGPXpI5IlXlq5iaACHpNLQ72rT VxtWcxkf5VpUY7vCGRK/sB2vqBpEUS8ectgZqv5qQCFMTzCc6IUQYCWYsKA/VnPaX9WYaqopliN QolgCVWT0qIhr875Pkw== 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-29_03,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 priorityscore=1501 adultscore=0 clxscore=1015 lowpriorityscore=0 bulkscore=0 malwarescore=0 phishscore=0 suspectscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290114 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782741006808158500 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 Thu Jul 2 10:18:32 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=1782741005; cv=none; d=zohomail.com; s=zohoarc; b=jsSG0UkWyiA+FahkLTgfz6k6A/0+dKuSGntdo5tZzAR3etUKnK5XNli/B++eX9XU0wX+fvNYldeKn88ve7oNYifLFApIgvAFi/kKi12qhmbCaAP4mldVRRdabCfdm42f2P+8367/L8Tged88UwJg7RLAuHsIo421ZmFSTQ+eP3U= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782741005; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=HvWPX/AE/2MSRWij1fpGsz9UwXKtp5Ew5uE1s+bHnGn7tDm81rnfIEQPYIhef4W4GesJQOy8516oPefmLaE7FC+mfHpOybPqvweBuyChbAKGfBEHutxn6zUcF+L2C3MGl59ZStwSShItqChyNpdd/UBIDn6ndZ7CerIr+r4tplQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 178274100588177.05217002367658; Mon, 29 Jun 2026 06:50:05 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1weCIL-0004Lc-RW; Mon, 29 Jun 2026 09:45: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 1weCHM-0003dU-B3 for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:44:05 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1weCHK-0006FK-H2 for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:44:03 -0400 Received: from pps.filterd (m0279864.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65TATEAo2579076 for ; Mon, 29 Jun 2026 13:44:01 GMT Received: from mail-pl1-f200.google.com (mail-pl1-f200.google.com [209.85.214.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f3kp7hksg-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 13:44:00 +0000 (GMT) Received: by mail-pl1-f200.google.com with SMTP id d9443c01a7336-2c8e14ebb2aso28194045ad.0 for ; Mon, 29 Jun 2026 06:44: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 d9443c01a7336-2c9b0992227sm48968555ad.37.2026.06.29.06.43.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Jun 2026 06:43: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= X05v3GkLKVJ5oepV5+STkOz6Fp+VxO6RAfpTWbT6B70=; b=Lqy15T6mxBrM0ByZ gkZiTbTt4cnkZ8QnxybyWy1en0YgUUn2O3VM6MqSXd+gcADhKUBw6zq9biowXGYk /XJvvUw3fEOPBU1SNvoL7pxssOE99Zeg18QYlSkdTRN104lCdT9EnOs/CNIfbPAV 86+WkZFdRu9FDKkgN1ACciilQp5Xuk5w6W0rA/brThl2S+CoOz0DkloDxdfxVbtL om/5kN2u5iemuKM11//uKDKzGiiOYH3d88RrliX1T2pextvC4X3vBIr9bRHndRDg ppYxdfig9/JHJLc9UeKasvYqpMjJBd4vwDaA7dupk/pwabS5hALHjVdkojwXdCgy W50VJw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782740640; x=1783345440; 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=XlX3Hm8uXNIQt5tpV/6Nw7bauN4N47w9rX4+wVbc0Ymk0cSh1GXFHb+ABcG6P1prsK 2cZehNVHLpAVgZ3HkBmhy/QR+66tAM0KdngJApZhPlX9hlNNyWrXn726ODTnPDchocCq phzv7+KTilQds3udAK82fEn/GYFnAKMOkPxJvR7OMf4DaVB3KohbHlLvzKKs6BRbMGth lWhB9h2Z0dEghubZhMCH8bykiZ6n2qMaEjkwOzSiENaxr0klg39MdQg9fuISu/Hw1v8W mMJDH9UmP4qMld+qqumqn2bOXh58NVArLej5dnqQv32IKTtswQBqAtjCgeLScDhqJSQR 9RYA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782740640; x=1783345440; 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=pki3sus0/46VtPqNC8GHtTfj1/GIfDzRwguOKy48eaNpadKIqOi0y1pMH/skWjkC2m /1uBNQbL6WN8+PYAuqPcdWi1k/b0CMJ6FCiAZjCL2a7WnlDm6l/hl4KD0Txns07eF+99 KGA3V6h+lLF7r+KMo2zHaAOKBBWSXYNPkpgf0xtPq+rjtjDQPbieQqGhkWwsDn50TcDj nnheOajUeCycb6zyqlrknkGX53k0R4HOvO/unqmSsusr1bJI1t0ea0As2X0LfAN6Y4my gFICCf+qFmDEgQe/gAqR10TrWL/wSqm1DOKtO1EUXkeggOcigVU7HJuHKKvc6MlAJ+T4 N6lw== X-Gm-Message-State: AOJu0Yz7nwckW/TsA2pf0b8vjLT8J9yI5yi/j5N0lfPAOgPCfB+bBDwE EcCn9wayjcfnN+C7Bpd7amZ+OWtBoGDCRXITZCzozXFYi2p+MBO2MwNSBTwRIjI7YBFHWDDUVIf 0+hOMqShoGmqhZiEGOg3bbOLYPnH1EvRswMGYdNYQhYgNBIokJ5bktkMexggjWdCE6g== X-Gm-Gg: AfdE7cnx9CSTt542jSfhHFAki/GcdnYTlFtOELINw3/SuL0F+bD4kkTKBS8jXBvVTxK WexpC7okoZol4z8UERr9LWdo5Xr2SWNrEV4F03rOCmh8zbQ442IAEHp5eQI9o2gDN23utSljGiV n00P1Byt5UpNVBcQkJy8qYxcx5TbJiH01ii13Eny9Mlzvw+glPJymTvuW0k5ZFpcMNCbhRii+wu hHW10WWz8Ksq/U4iioJlOxcSy3g8B3s4Z5pCtuZ7DzO+tM90k2LT4q11o0AivPbeBqP+2DY8SyD JKq3UgeOpRRnM6FMfZJmlDQcZKX/EQSYe2EnDeTxfKpbTNMiCvcCmh7tIBb8wFZOyMpAeNOFxL2 XpJ/mnEKpOLUfrn52kdIdoVlMnL2Xx2OTF2Kmq7sPq/41vUwxVhTuYum/iEE= X-Received: by 2002:a17:903:286:b0:2c8:5de:a84e with SMTP id d9443c01a7336-2c805deae4emr112667335ad.10.1782740640271; Mon, 29 Jun 2026 06:44:00 -0700 (PDT) X-Received: by 2002:a17:903:286:b0:2c8:5de:a84e with SMTP id d9443c01a7336-2c805deae4emr112667175ad.10.1782740639854; Mon, 29 Jun 2026 06:43:59 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com, peter.maydell@linaro.org Cc: brian.cain@oss.qualcomm.com, Matheus Tavares Bernardino , Taylor Simpson , Pierrick Bouvier Subject: [PULL v5 51/77] target/hexagon: add simple cpu_exec_reset and pointer_wrap Date: Mon, 29 Jun 2026 06:12:06 -0700 Message-Id: <20260629131232.2487780-52-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629131232.2487780-1-brian.cain@oss.qualcomm.com> References: <20260629131232.2487780-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: AW1haW4tMjYwNjI5MDExNCBTYWx0ZWRfX1iDmT2QvSwEA rJE8LwqWn7FqlOxUALcriF8dXn5aNK0ILCSR0LzUISGGOKJ+KdXW9P3MCVvJv1eLtdSe+8m9YAi K8vm7VTNWTZsUva8Bty9reTAbO5yk3c= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDExNCBTYWx0ZWRfX6EZWCpgBckco 9HrqiYMU64zm+2/+JcyaPDcM8CsNv4S7IVmU4gDKcBVnB3IkU80F6OMY53KUD7+hEXiqWrH/s4U zvan8c8JwAbvcQa4lisndWHYSARwhshk9IkOTDHOg3eEZ+WzTDdP/uzIHnZKXOAiRUmIeEyrWcL euNRLm0TWnGVjFfFtUuoBt6Rog63rnkrZkvcnDuLPd7CpnacnqtLZgTP8D3EL+delgypGmknTSy C9kopjh2rFMrScEgsOBUhGul4JVqclK6U5G/jb9V6RS9aYdFFPx/QeDm0lMWDeW0QauloUneyAC 5P1bsmG7C2px56vKwHkG48alW6a/PwPMlczt7p7RYeOkh4AqfeS6n6CbIf+g3Au7qSJkb1yRvQF xXir4N8Ii5QUX9Ww7z3DKctFvINGC935gVuKxzUoP9fmrvVWP5TFDYQNG2nMYASYJKHhXhUvkjT Nv+aVkihSr7tcM+KwiA== X-Proofpoint-ORIG-GUID: 9F_H1rfCHwZFFEXSPyciAph78gXDWUfN X-Authority-Analysis: v=2.4 cv=MZJcfZ/f c=1 sm=1 tr=0 ts=6a4276a0 cx=c_pps a=IZJwPbhc+fLeJZngyXXI0A==: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=EUspDBNiAAAA:8 a=pGLkceISAAAA:8 a=O9wV_FzQyngHLK0UYg8A:9 a=QEXdDO2ut3YA:10 a=uG9DUKGECoFWVXl0Dc02:22 X-Proofpoint-GUID: 9F_H1rfCHwZFFEXSPyciAph78gXDWUfN 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-29_03,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 priorityscore=1501 adultscore=0 clxscore=1015 phishscore=0 bulkscore=0 impostorscore=0 spamscore=0 suspectscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290114 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782741006758158500 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 Thu Jul 2 10:18:32 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=1782740978; cv=none; d=zohomail.com; s=zohoarc; b=VF9M/CRRORRvHCNo5biX53hs4ucajQ1XXd06ZavC7JV4OuaYFKBI7PxQNyeWSp5mViUVI5A61LzK5gNWhLm1lbNvNIrm6/XGhWGerme6Wp14MHBcBnSfVnwxSQhd0jLzOEjhKXIGefDspA85bXWRWV4nOk7lLxGA1edARp1J3/A= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782740978; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=cLBVoJTrvHw6RTKou5CHNasMbKcS35+4uJE2Ifadbb3Qfsso1UBhDTmMx7Ro4jGpM/yhXtXF/6JByXV0fAJQjKUc9J5uMg4ioxw8oM9URiwDkErzfwkFb0ePiHBdLJy4ajTBpHU3JhD65bwkE9k4xuT40BtIZ/h/T3oETHD2hqc= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782740978436920.7620193296997; Mon, 29 Jun 2026 06:49:38 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1weCII-00043n-B7; Mon, 29 Jun 2026 09:45: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 1weCHO-0003eJ-Ao for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:44:09 -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 1weCHL-0006Fe-TN for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:44:05 -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 65TAT3vt2646911 for ; Mon, 29 Jun 2026 13:44:02 GMT Received: from mail-pl1-f197.google.com (mail-pl1-f197.google.com [209.85.214.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f3m4tshfv-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 13:44:02 +0000 (GMT) Received: by mail-pl1-f197.google.com with SMTP id d9443c01a7336-2ca2396713bso868435ad.0 for ; Mon, 29 Jun 2026 06:44:02 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2c9b0992227sm48968555ad.37.2026.06.29.06.44.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Jun 2026 06:44:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= jw9yZ1Fa+tyKZPk60MTE6s7LkPtVtmumQCTRRtdnjUc=; b=ENpAJp2RdD9itAAx xhKMrX89queN01AXHIZcu0vPgsoOI5U2xARiUprSgyUoQnsJv5omFU0yG+iUlx3u IubDrpEDmZjQqS1eKUea3QAP2F89/0Ee2Wg8AcPzS0pINyfWXEBsLsT2aqlju4gq agR48ZmNr3AMgfUhGOlzcaEndbZsUDo/wW5ez1k5xXN9NhzroGdhi+l4OzPNVzzN IoxZuSZLc8uvzn5fpwVQVvJaa6nccAR8Pq5tu2lpU0Sksnya4Pf04fZM+MYtcIza HotNGzmqtvLoFO3HsLTScX9u8BrBvPPVHbvee/qGi16Ne7e+9jjVsPsXFHb0b5YE AjKUZQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782740642; x=1783345442; 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=JeLcjszv6DGjXkihDHPF2PecE4vsUN/e3qJvm+x0ayECWtcxvLX34GjzIuA+A+K+GB BQuUC14POmLYJgRv5ds2/MMJnrwCf23V3AZfYGmG+fhYBQ44+6x6C7Hms3PqjVxhKAUJ 3tuy2smgjFprZrNvtRqvk5FfemrPBq3DqsVsoVl0G6eF4BmaAyoNJr/K74AJMok7BtJJ sPtk4h05yaIJ9sYaRDVNhTI7A3oMDOeObQVH+mRq/vYiQeF5Hb/qPPF7/pJY6USCSHfM objesYFm9z1nKXiqk0gycayCVb+vx9DrglLtXYNzof70w2LshI3J94myKxRg2fOYlzCm k6ug== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782740642; x=1783345442; 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=qtkr5QzKcDtDV/+VOe3WusgpIuaXKsok8LFuR4BbGY6uqLUgLq1FU9L+z7BKBtycym MUbUoTL9h+aTTDdUbK5Qt5l5woPFBgEvxqf6NiL4ooF25gFhJ/HIrcFCq956CO7jrHsd 9YbE1H0S9RzzN9ltCNGlzKqBkB+khn0NLeZGKr/pbkBORvLhn1+aU2GD4AmosnA8L5UD y/kg5SxC9eGKivskoIFLl61vNWYl8ocz6Uzv7i8o67PDc0XnJKqZCui6Ce3FxLP0ZsS4 iQFp1zRP7kRq3mJd6i6LJnGXrT4NaoCIMcLtCsLvqUckVJheZnswIrDAn3IWIfgiq2E6 2v5g== X-Gm-Message-State: AOJu0Yy0D1YQxUzqH/DOCC2QrujeOZeBSDNZl+XaUqgPfUF2diKLwSnW /dGDVlOPfs9xGKj8aHqv7HDjRzs43fgzwk7luOtMNJSIFnrj8YYcxw1CbRiMR2bk+azECEiHBuB E0x1MrDNsA3DtUd2Y81sTwiT83sDKec3Gj2s9RhZcVN7p43VFJ0ZxAUtbWAqp/seI5g== X-Gm-Gg: AfdE7ckL/raybRGoXDM9jBgLb2uQuOFOVoD0vkfNCPnDoTGa5feeKHvqSabVO9uzrba JVWmx9ak6x0/VHO5GQ3eblFBdYM83+89DxTPrg7hh5jKhRoEkoc1u1L32b/TgaHfsgqR/XXJlNU 8+Oi41YEqLCmjLRyd4QXTSzIr6uXcAG5oGLqEjIqKUr86O13k/GmkEhCdMiMHRxXYl+zWjeP8il PJPTtXN1p6yGYNzGk0SnbEyWgv/kmCg5J5+XviHqXMG0Y1JXqBh7l/ZaNzcIY5oJW77c9hbUXPX SHF4zFk/eWYGzXzKTGquvBoYZfUDH/2VbCC+ft5e9FzaIHwilxrETlI6whH+a0JcOjtJOumIMYN Chrva2yikuCAISZqVzRhUF3Ee0XGleLDmDxMdM8Nb9ywqvRMhuWf0DkdXIVg= X-Received: by 2002:a17:902:ecd1:b0:2c9:fa31:850c with SMTP id d9443c01a7336-2c9fa318680mr29612295ad.39.1782740641611; Mon, 29 Jun 2026 06:44:01 -0700 (PDT) X-Received: by 2002:a17:902:ecd1:b0:2c9:fa31:850c with SMTP id d9443c01a7336-2c9fa318680mr29612055ad.39.1782740641161; Mon, 29 Jun 2026 06:44:01 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com, peter.maydell@linaro.org Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v5 52/77] target/hexagon: Implement hexagon_tlb_fill() Date: Mon, 29 Jun 2026 06:12:07 -0700 Message-Id: <20260629131232.2487780-53-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629131232.2487780-1-brian.cain@oss.qualcomm.com> References: <20260629131232.2487780-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: AW1haW4tMjYwNjI5MDExNCBTYWx0ZWRfX9gRJ6cpYZWnJ RcIT5u0IK146HcWdIXq23RbrXKj4KPnNlaTNDNFYvQknxQd2oKb+dSaF+sJV9o7c5tSk3sWp7TM 5TJeMv/K1j97SOWZQTBygkoj7K5abYQhj7XK/3W+/JGBY2Ci/H64++x1uj8Ao5UG9/vl5fPX4xN GdFYIlNNGp0aKPUGZ2uk60OjlQ39Q89hdxHfrpip5GDFl/Kx7E7g1yRV28vQLQF9nid6XaPvN7v Y9+pcDsGYCyjvSF9gwqSP9gnvfTAzTE+6SW4MHi4uMUhMuA4gF38W76tcp1vqlgtk3vvO0dpgMc tUXmILnpQUjhU1NcfpptzxOoDQv179h/C75F23NJs/dIwbXrbFYoCNiUcf707lXRarjdSl4SlGW LzENOMF7wuFgndt3sH7AXtNWEgBui2whXOhHC2qBWIaK9km8H9KTCU8gR818cY0teUZoYivMpo9 kkNq8eI3m421arj65og== X-Authority-Analysis: v=2.4 cv=R58z39RX c=1 sm=1 tr=0 ts=6a4276a2 cx=c_pps a=cmESyDAEBpBGqyK7t0alAg==: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=yz7b9sy1sBSXNk6fZdQA:9 a=QEXdDO2ut3YA:10 a=1OuFwYUASf3TG4hYMiVC:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI5MDExNCBTYWx0ZWRfXxmka98ttsyZw Watz+2jbCE+LKsHKYIgA/wBUkQM6YCIG1rAplmJhn6htymQaTEW5fbVLKHNnzyG6TN79QP7352D InJCRfQP79+6lixJamztWPuG6e1JVlk= X-Proofpoint-ORIG-GUID: kumQGhPbj-WLPOAhOxiJZMY0FjmFIb1A X-Proofpoint-GUID: kumQGhPbj-WLPOAhOxiJZMY0FjmFIb1A 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-29_03,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 spamscore=0 suspectscore=0 phishscore=0 clxscore=1015 adultscore=0 malwarescore=0 priorityscore=1501 bulkscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290114 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782740980617158500 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 Thu Jul 2 10:18:32 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=1782740840; cv=none; d=zohomail.com; s=zohoarc; b=I78SqYDeP+e8m6Ch7eL0D5jjwV69GNrycfyFb5mljQtl7dXamIbmVkfLdlF3nL8fkS+ODWUKuxbCvlvIq/UYPAaqZp28ukC17SB2xGFcViMINmALxBV/m8pmfBrYcx8x90dqDDlNlKt/pOUXnBknMQRHVr2pV5JK1Z/UMLGXku4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782740840; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=nzL4+ZNlkQqMBiDfF1RL6CqtbvBbtXJanT9mqY/dLa+eCXR00IKS0l1T65r9/7MHwJv4eMvPjvbx0hI+ZSg5Xtv2PyHTpaoUqp2mG6cHrBYUoIlt3mk7aK4tRf/Wxnusd0NTxvHjxcHfn1voddTHEcQKahuFN0SojchuuxsSgZM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 17827408407471017.8544817195436; Mon, 29 Jun 2026 06:47:20 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1weCIJ-0004Ag-IX; Mon, 29 Jun 2026 09:45:03 -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 1weCHO-0003eK-LU for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:44:11 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1weCHN-0006Fr-3R for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:44:06 -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 65TATSPx2579625 for ; Mon, 29 Jun 2026 13:44:03 GMT Received: from mail-pl1-f200.google.com (mail-pl1-f200.google.com [209.85.214.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f3kp7hksu-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 13:44:03 +0000 (GMT) Received: by mail-pl1-f200.google.com with SMTP id d9443c01a7336-2c8e14ebb2aso28194675ad.0 for ; Mon, 29 Jun 2026 06:44: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 d9443c01a7336-2c9b0992227sm48968555ad.37.2026.06.29.06.44.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Jun 2026 06:44:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= WYScGZeBQb/FybxxD9F89fJ15bRXNrsuCqPgSPyLkDw=; b=gTauPZT2O7lFY46d Wsk2QxRUb4mG/fCWRapyWUnyBOePyMLZffaaa4TLozjJFPbOjMPQCnOPCAYawxaQ +CuAxP1ItKjtRNhWyab8vZvAK+WRHCG0UgYEtakk8M/+4qhVO56cp4EPJVUPG5mM qXfB/PAQTUwExKZ3Edo88jXCV2sPS7vXeqLVxCrBsiqMpbe8uNczn3mkTNvpHJC5 i5+e2UYE09H5VpPYlKnqpOT6yt3Xx/DcF0yBorggUeCgZgi6qXOzCkPv2CeDU4Iu TMPkg7cfpcQAa30l2dNI++OkUa1YzSuC57qQdDHU/YcR1qPwN1sit/xUX7NzjDr2 dKcvNA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782740643; x=1783345443; 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=DIYMfcMDPGnSrhWUZWCZNtALxaY2QwnyW+yocuB7r9YYvNU59uu9DLAneJVm1i6K5T YduUZzRZgXG8WknCea9lFZWG8+G1w9kDRKAMNrQ8Hql311uVHYmF0mjNW6EL685mlg4c BKgiJXhfWLh//JYi+wM5qLZxMK/YNh+ijOSet3rs7NL/DRnGuesj0Fj6VVPuWmmfYM+G 9vwiXZ+jQsRhlJtkVOMwGOWTjFKPwS2HLSFV1W+yX8Fq0p/6IFeOJbx1ZUGlsLhyiVj1 GkLaGcDb/h72hvA/LhGUQkd+xT6JopAY+x3RGphCg69nupoDXDtSZSfehEGZnDm8woLj Jwsw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782740643; x=1783345443; 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=hmQlgdPNk34WbzKI5QNJyT5LIo57NqHLTl/qP44Wyf/wfGqu8Ed6LnSSIegVr0Okor CS2bcQJkXmrOqFn6BoSz5CfWhDLYWskihBcDYaLTvRD2vIc+eWFwpBrByFLOuD9TFH4G wtZeIKl9/DErn+Qv+1wBTRBesSeyDpRMmJNq/iDfTPDVjiLLSr/S1r5b39swHt63Prpj k4UMggnPbCxdrOM/clX5c3eYTU4eAXjZyMbG4PB9NmQYmFnXZ+tLnKsMD7qU0GRYsuAM Zp/yF05HvhY42Os9t9Y/EWhzD/h4xHmMCX3u/wq2f/FwMGrb8+rpSpCkUUiCgsICw2kL h22w== X-Gm-Message-State: AOJu0YxiLUM+mhdK5fCvRnRdUfs59eic4SrRvwYiF3JaIE2Iiy+Rw3mY fVUSdSBs/1SENyFznwS7C6pKhwBJlQzhu/4xCyzf48wkvB0GSZtZ9XLQ4BPuF2MjwRx75O651SV f+xYUT2M7xrNze2fvS+7+YIN9nYwMrYP5DiDM1qKXEHVOeEH6dr3sAPomk8qD1ObtFA== X-Gm-Gg: AfdE7clAREafQJgXdf9YX+S6fGG3+KdDK1CZY3WSvl2j5U2mTOhu9uLRiNDxY9lQc4Z kW3jlVA94wVF+bZvRVlBHYMT0/fO8WT3atnC5PjtTzBueJT+vEPGzNR7qEF8E7drrYKSUktzpvC l02xpzgARKLxb4gaCi9WkWi1fX82rHIX9Tc7SzTuwrN9SRY4FhX5Jhcm7+GR3np8hOWFCEjw1Wc 1Uj/sL+7kAeWE7l0KJ7MiPsP5bTb/bggFEaetFsRgAcuIhCqdHKovElBu4fipIyR9smaQK1GT8J N4fwsKwv6wbwzOtbLSsZ9fdPNozpeCp6w6Mp6K01I6wIJD11bxdU8UA1kIS7wrU88fiVaCL1UaG 5P7vj0I+8A+xCkSaFWO5peMf/YUBjlJh68BiZP24b/Clp6IZEnIV/+gWcRzo= X-Received: by 2002:a17:902:f602:b0:2c9:d277:2cdb with SMTP id d9443c01a7336-2c9d2773a23mr46131725ad.9.1782740643086; Mon, 29 Jun 2026 06:44:03 -0700 (PDT) X-Received: by 2002:a17:902:f602:b0:2c9:d277:2cdb with SMTP id d9443c01a7336-2c9d2773a23mr46131435ad.9.1782740642619; Mon, 29 Jun 2026 06:44:02 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com, peter.maydell@linaro.org Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v5 53/77] target/hexagon: Implement siad inst Date: Mon, 29 Jun 2026 06:12:08 -0700 Message-Id: <20260629131232.2487780-54-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629131232.2487780-1-brian.cain@oss.qualcomm.com> References: <20260629131232.2487780-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: AW1haW4tMjYwNjI5MDExNCBTYWx0ZWRfX6u/G4Q1VfMTB Xqsh4oePNb8Aefuayt/cwIMwgLh/6sJ55KV5Q9gA2vVOGDmpMSmRJk4AV2WxM6XOoka0EVQ9g6L ebr+2B8nkjm1j9xPGZpAsk9OEzYu6cg= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDExNCBTYWx0ZWRfX07Lpf7HlSqZe CoUC1jLZlsz0ytvbMww8HPIxsi9OKzK6qXlGMIfm6sR/iCWzRqyR+L2xTWEopyrzByiUrT/2qyn /1bmo2e2JHhGlcDuRjLrt5FlG5YzjeXYRwYofa1O8t8uE/rhG0ekcTtiFWjfXI+ycWU0xzZwld8 6/LfKGwD8nRtnwMAcS26+cAXspTP2IDdT6yP1+bq5cfIMB5va4dykiLq2UPAvmBFjBfgQwgOPnd 2CBefOTRrpeE4A89vs31WrroXYUVUdHH1CEdz4BXmsTjGoLG78xHQiC5hkA7iPSmK+LoAZTAdsl 9/aajHEk5KKztAXTlgCvgHTZZdrATEAX1XZkCou94LNgWh8l49sYXqTh97VhcvXEn/jjIJMiIbB vtymrdJhlxeuD20khPcZuzuaBQQgeyJJ6WaovGYHk1cWf59JdO9gc/59xWA+NSkcxhWZgrQ8eCl 5SosCWNqawrKGc11Cfg== X-Proofpoint-ORIG-GUID: P_9GG46jizi6yGVRHa3F3QtGm2i5HB_0 X-Authority-Analysis: v=2.4 cv=MZJcfZ/f c=1 sm=1 tr=0 ts=6a4276a3 cx=c_pps a=IZJwPbhc+fLeJZngyXXI0A==: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=HdTxHAvixyPUp6pof0EA:9 a=QEXdDO2ut3YA:10 a=uG9DUKGECoFWVXl0Dc02:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-GUID: P_9GG46jizi6yGVRHa3F3QtGm2i5HB_0 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-29_03,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 priorityscore=1501 adultscore=0 clxscore=1015 phishscore=0 bulkscore=0 impostorscore=0 spamscore=0 suspectscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290114 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782740841579158500 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 Thu Jul 2 10:18:32 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=1782740978; cv=none; d=zohomail.com; s=zohoarc; b=D8H7b0FTetosmx7oBrqsfmkVVnxLlI2dD1SSJyIP6QuDwyiGsxBwepalHbAzis4SGs+spJjGMJWrJ6DNPaF1zbcAIiDoA//4QSDUN3NnYUg5BX/UE3qyF8mzSiSgs+8vAjGZB30EdRLdNsuFkEhoHNEsR58wOas6uY1Dp52I0yA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782740978; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=IGgY39KWCRMVw3wBa3lrwQyaiOdZ5zGP4IVlJiNPUvbWDAu1OHwY8ka3PwI/hmeFHlljLPCpaahczTjXkjElblZ/w90C8eWVrgWjCBfl/m2ndfQ9ltzpqbtadIaeiumtiogYzpDitM83H6uWUGunjKC+EF7tZgjr22nemmH1/j8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782740978444459.8130080300756; Mon, 29 Jun 2026 06:49:38 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1weCIP-0004S3-NT; Mon, 29 Jun 2026 09:45: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 1weCHa-0003gy-CV for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:44:21 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1weCHY-0006G2-Pt for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:44:18 -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 65TAT3FI2604339 for ; Mon, 29 Jun 2026 13:44:05 GMT Received: from mail-pl1-f197.google.com (mail-pl1-f197.google.com [209.85.214.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f3nq892na-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 13:44:04 +0000 (GMT) Received: by mail-pl1-f197.google.com with SMTP id d9443c01a7336-2c82843005eso31767365ad.1 for ; Mon, 29 Jun 2026 06:44: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 d9443c01a7336-2c9b0992227sm48968555ad.37.2026.06.29.06.44.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Jun 2026 06:44:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= JvcaRvjzOPnVsLj+Umjxfrn/9XQNcxuKMqpMR7fRmpk=; b=Zj5CUH70h7bBQdza uF0m6ljxcaRmoAN1q+3RPL3BGjKKINnWMSLydfLYv1YdnoyssjyOBgwwjjpWgBN8 wSIMNsrLEPn8nYivrSirnE7IsksM5e7ELf41N5crVwoZfy4u9nw8/2Woc/2FTa7s Ifu7FOc93Ze/QsGUQtkXWHt5LbHHDNy2tfDLt9CHt6hoBUWKX6ZrHYXqeK7sTb9h zZUyc542JpDBvtt5xYtdWj5IFQ8dT17ZXrXflaN48rRF/qqUxpSi1p1YMEfNiXD7 GqhJ9CsvtTY8hYK0DT7eEaU9zIbPJpoiBOC7eDe1rh1loXwYs5xC58oGWrbmN9Qf Hu1EAw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782740644; x=1783345444; 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=RgCZ5XCQ0jpyWiGwYBzJ83TeIV4nr5aL4UexGtBxkg6k6rocmQpp15KQ2GzFMAbtFf BW5HOa7OXJ3cWsSIHlQPIWk+2VjTmfOqzfOi6h8o2eOLQ7vzq8eaCB09cd84/cGAnYr7 K2OEK2x8+MZtojY+0lgnqYt6FOmnfdJE/eqK1GNsnFc5nlJZDK6K73GA0HG+2GiVFJ25 NZzu1zqdo004sLMfIXEDc8Qb1iNbTvunVvONsAGWvzAW7df1fQ6F+wXjvcrdwc6t4IhB Eq3ccs8u6ThMXekyZTF+hmLrpfl+p6mSdzad4AxpGpphV7gnG63HDhfg3Ts+hrF4TXxd jeXA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782740644; x=1783345444; 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=rw3KizgItt81r2smRIY+Hii4fFBUsa0esVdz4AcQVbvnS93AysziOlgXWPo3V7Ux2V x/Xe6R6ihe0mWmjb7xhLse+ji4EJZLIiUXtxth5hF49hFBiTrFTCkgpl1mR0ECejwQC/ urBim9dnyepiKfQj/zdbk2xWEKrn3WcUom4TtcXf60wycWSXCMMZje2oZCMpY8+0TMYV Dxsaf9Mxb6p3C84CyYzUr+dfdG7bQe6PLvaNTn8FGLewm7uB2+mo3lGGDf7Rf6soE/Qq p4aIAQurkvoAQO7aTnve7d4ww4Pf767qpt6pMETq/8fwFRIkPb33eJPafuFVQaS4AiOO 10Iw== X-Gm-Message-State: AOJu0YzlAm13qIoAluBwPBObLGUHvt+dFNHlXMjZGsTl43MOrKa8763B kpss8Mz3KZG5zO1Kp2cBQkYGJGaCQJ2AEri9Lg8LnLdc+ONZj1H+GbY+prrLUB9saaTx1BJy5L+ gMoHjd5z8EmcstxmU4b6Ljlwly3boADd940AEZw9oD+BkrtrS3xhBAqQyyU4x/x9S7w== X-Gm-Gg: AfdE7cmhh/Gw4QKDOnxOl2+hcRhQ5Dr3W+TpVpKL9FqT5s07aRllFxvyOiMCRyoT1Hh ajj+LiQigrtHIhu7scPquwzp1qP2//dG922IVCogs0LjmxTpTb6Qvro1zmexsPy5AzrhfoD1xav kyJFCVSnuC5IazKTXe62k/tUtrSRfdEIUL6tD2+mpMKHgTXgAxlh+l9Qk4tlUaRpkTF459/eCHL 97wQpESy9XZsh2ELXsmK/NVCPmvQPbqH+6+bl7z+sBB0Z1UqwBzkYD5JyaDBX/03tEw5kPwrnr3 08DF1L7/YTCVIXK5AC4YhMmaPFi5ivS1WOoGxLGlR8KiPpRGVF+8IGT0Z9r8qLOES9miM0OGvsy T1fxVTZNDj8DMZ5Ng6PstaUwYO0YNNQANGYT5tK+VE6JnJsuAKmNgVVJD6D0= X-Received: by 2002:a17:902:e5c8:b0:2c9:97a9:2097 with SMTP id d9443c01a7336-2c997a92151mr98103925ad.43.1782740644259; Mon, 29 Jun 2026 06:44:04 -0700 (PDT) X-Received: by 2002:a17:902:e5c8:b0:2c9:97a9:2097 with SMTP id d9443c01a7336-2c997a92151mr98103705ad.43.1782740643869; Mon, 29 Jun 2026 06:44:03 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com, peter.maydell@linaro.org Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v5 54/77] target/hexagon: Implement hexagon_resume_threads() Date: Mon, 29 Jun 2026 06:12:09 -0700 Message-Id: <20260629131232.2487780-55-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629131232.2487780-1-brian.cain@oss.qualcomm.com> References: <20260629131232.2487780-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: R2rDFw7Ik3zAxd3YxoDyIXubo7oYMQXP X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI5MDExNCBTYWx0ZWRfXyDWjRed7aEAM dtx/XfSdJrFhqS5B4QoDcxHT9k9OGuDcspBw7prtwXBQ3lDajuTtzVaM4pMNcoegMvdeO3KTlGt DHJY7J2nzMPiE8TomwMpMCE4eRstKD4= X-Proofpoint-ORIG-GUID: R2rDFw7Ik3zAxd3YxoDyIXubo7oYMQXP X-Authority-Analysis: v=2.4 cv=PqSjqQM3 c=1 sm=1 tr=0 ts=6a4276a4 cx=c_pps a=cmESyDAEBpBGqyK7t0alAg==: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=uy5dMy9T3THg1DqjAFIA:9 a=QEXdDO2ut3YA:10 a=1OuFwYUASf3TG4hYMiVC:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDExNCBTYWx0ZWRfXyqGcC2/wPKkB F+mOQLxrLp0YmYDUxiKpud5daypP3+NlPNErQa8+ePkUMZKxRDMlKHGM0VOBkExuH51RzZEDTZU aQeo0b08zN580DJ3/RkCPCFkv6CMTHZwuwQAk8+bGxJwHTT7FlWJEWcAe01hVo2lsJqqO4fw1g2 HlCmC2SKTs9BpPbXzQAzliY1ts5Ylasb8o3s7+dgbihQU+c+dZJDgW3hFPz1LvjU31Jx7IbSalO qITJZF4oGXNj9adpWZAZ+bZkoXGANDBN4fp1seKY3NDe5YV6zA7p2bN+veY+W987QBBA3fOYa/f LYOYjzBG1Qa2vuYJghPmerwq5wOS+HrVIgkaCgkDuZDev2KAuO3osP7U8Mitx4rS0e6OSqqSC7P m9enzUmCnECyR/8AtJBe3qu5hO4Lekuv24ZcZnbAj22Pa8/HF/DjFQQD6Sde1qFkSr0VOYv5dsP UF8Kmqj6l31Ovv4iVKA== 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-29_03,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 priorityscore=1501 adultscore=0 clxscore=1015 lowpriorityscore=0 bulkscore=0 malwarescore=0 phishscore=0 suspectscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290114 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782740978538158500 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 Thu Jul 2 10:18:32 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=1782740990; cv=none; d=zohomail.com; s=zohoarc; b=XN2ZsPQJZcV2CeHM7jT2oIwtvlkQloUgJdeg8k4oCQfaiUz4fh0alVu9V9kklL+DbSw03EjEHQ7otN9dVRCc336JMg2KLLLuBug07rC1HdXFoTbcknCuZavAODHhiGz6E1atr9qNcOaabte+UCFUYpErFLRgAljTX6pLa8uFci0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782740990; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=lB/bhmDzen0eb01Y0ju1nesPHvP/YGdbgVTM+3w4fVvFXLWJVdKHbtjGI5XMg3sYLXl/r1hnLrJeDdVKYSa6z5kiP7kcQghs/ltVaXw951qpvTJmEupcWiYmQVE+uUa5eYs8l+n7sK4w/IwZhkrS++9q0HkvjPT5r6o6Zyv3h/I= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782740990132242.87521573209654; Mon, 29 Jun 2026 06:49:50 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1weCIk-0005RO-TK; Mon, 29 Jun 2026 09:45: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 1weCHb-0003h3-Jk for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:44:21 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1weCHZ-0006GL-Q4 for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:44:19 -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 65TAT3WT2646904 for ; Mon, 29 Jun 2026 13:44:06 GMT Received: from mail-pj1-f70.google.com (mail-pj1-f70.google.com [209.85.216.70]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f3m4tshga-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 13:44:06 +0000 (GMT) Received: by mail-pj1-f70.google.com with SMTP id 98e67ed59e1d1-37d4eede8ccso1950285a91.0 for ; Mon, 29 Jun 2026 06:44:06 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2c9b0992227sm48968555ad.37.2026.06.29.06.44.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Jun 2026 06:44: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= J1aA0AXcl1R5eWizmiiFdBlejhKxkpocBp47xOiaUuM=; b=W64DWmPjggNktFHZ 1TCuQ41jEo6VtQdLozAVfK6lVh/J9U+B5VeSODqAoUY8Dwvx9lU0U0l22OyPNBzH CUtVhXO0YSvPMQx665nmzBVROqyG2OeVvSwTxRiMbKYm3P5ioz1WzyFcN/GwfT/k xg+l5HKvGuufbObhXMv74ErOxPLrPZg46WaSSZJ5yMPNHoWkZenmGKXf26Sav3Ei 3I50cYtKJyIkqO6m1+JMkLYDJAM8etLv5MOFdOGD/Ev3xrFpM4lQ7XzSz5vpNUM4 12JcPVglqrXrfqWW5cpX8igGMkCmLvJERon0mmaHpLVkCg41qr6TV6EbCnZ4qaAZ vmkI6A== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782740646; x=1783345446; 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=gvVwXjgs/fpsJS7fQX7sdEcaukdT6vvhf/rFG7OztPUhpD2VJqTJOCO2P13/l2gsmU hrxNRq7AZyCBmz8V7qAfxnMW8hnlLUR55ESmbhdLw/3jwK5Dj9dILGp3NFlz9hoy/tkc NuxEol1bylJ/0D2VB/oTgZouEZea+K4gP41CwHhRZL7WDuIODASUIYhIXHf2uXnUvOGH 1/J5NfT4mColVwEXumcCd9RcFHVfIK9EGykt2AvjY0dPPTlmEDkmwmcaMIAi8htRyFFY +UAJMDlRNOh2QXRiTHuWdkSwWNOrI9FRrM0RJo9OOVitm32M0mI1G+EKcRb4CWAJN87+ Bnuw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782740646; x=1783345446; 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=TgupBHRcFVMfn4fxwRNGsSgXHX1NHkivb+rK+6VrIZkzSj7eIz7nrXF0o3kpdWIdIL 54ww0JjH3vakSsrrdhhKTzspl+9J4OZbQHQ8i+4/S/p7SjweGNb0HCIq9V+hhk3M0jBZ UrOLKHjJ5Qs/3QvFkLTrMHjfJ+k8p6LM8Ov4jJ5ywTOg+bmI8eKC5d9mLarPVGlhilKs vG4y69iQT3z+Bo9xznsng8lK01lCIN6RTiGtabrphnoafCvc72O6EBy5xZmTTXpPg/KC bytgi7TNbHrXThaB6VUff3poZR5LD3rVtdpBUGYCfdbhhEfFgWg/POkZaVOm0yhHB8l7 TrWA== X-Gm-Message-State: AOJu0YyKnTf9GVwR+exEnWs8QRN7SCfdYJVHVnluwbK5ADI6eAvBA9CU kcyvs0jEHVOHOg9iBnYUlbwN215oX716m8Fkc1PWb+pGZ0uno9e52/xb2tsv1MU5D/2lFKadPrt a3u0Iyu9FD4tTJjOmD3xJGXM8A23DQz6+gnRCFtqDo9VHbtHFAWC1BgPtmY+CB6dnzg== X-Gm-Gg: AfdE7cnMCNZ0AltUKopQUReXdn3kGxSXynzj6JWCCNfdcGbD203rMXGFPhKA6zTlj72 oK/ONzuFMI7mrSTvn2la7Rg4fUHGJdOqoSQ0QjnhjVPjWg8jv86utLdaJtf6zW+i7MRYEqFwvZ3 waEdJN88sWbl1xjXd8My593Nsa8eVVpIaOHObwEDJkIiaWoeLcLXeA+gau1teKp4B6P8KR4MQiU zkXyK0Sa9MZDMtWsi4dmMTZyZpkHIscdr1I4COrQ4FzINP6v5qibbr51i2l4AttSaXNO+0ktXg3 OYR3dINk6z+pbRyhwn2XUOxnZ1BR1P9gvSDIxalYLCyJ063IQmQTRjmeZ6LjvEciZjmMgw8Sc/b bsNnS0cYx8yrh56X4mpMw9ElQ/0Acfv9P1k9VilIb1eHj0jOicDk5d1luFFs= X-Received: by 2002:a17:902:fc44:b0:2c9:b480:f5d0 with SMTP id d9443c01a7336-2c9b480f7c2mr73118555ad.39.1782740645633; Mon, 29 Jun 2026 06:44:05 -0700 (PDT) X-Received: by 2002:a17:902:fc44:b0:2c9:b480:f5d0 with SMTP id d9443c01a7336-2c9b480f7c2mr73118295ad.39.1782740645148; Mon, 29 Jun 2026 06:44:05 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com, peter.maydell@linaro.org Cc: brian.cain@oss.qualcomm.com, Brian Cain , Pierrick Bouvier Subject: [PULL v5 55/77] target/hexagon: Implement setprio, resched Date: Mon, 29 Jun 2026 06:12:10 -0700 Message-Id: <20260629131232.2487780-56-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629131232.2487780-1-brian.cain@oss.qualcomm.com> References: <20260629131232.2487780-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: AW1haW4tMjYwNjI5MDExNCBTYWx0ZWRfX5gjCmYCkR2YC Sv19w4H1UBkdyGKV5EQES0K6brGhYtGS83c6yuXWhaiIPwCjtrQ8NmoGhwiQFipm/ilck9ABesD 5Z4lvhLFOXpIBN71rjVj36euxOwzhWO/inhkdVzCQ3GlZucIeEjUEE9TteDNAh9Tsn7/M90baXn AsEFf+++sm2fkVvdbq50v1JyStDQEFP2gtVfz8aX2DowkUSqiSKYSoYHv7A1onhGd0WYzUjQpKg MBeli2/Zo5efvdnBCozw4eDXbCkS26HmsrjI9FZKktkEQ33SY9oezbxYf784QPAM9jWyCZbyIcQ LMOxqoVV4U41vGkdvTaUl+uWFcXHFuNB72+b9yuXQpLJaPcWFr0wE+7CoqwBB3ioGGNKv4vSOJg RwsFgcce3BEDyhsWwdaGHiuo696A5oHKxamswRuRDdrU3jyt2dtC9GAWsh6ismmidYEAPFv0HUd dEfLf6aBukuT4hPS0oQ== X-Authority-Analysis: v=2.4 cv=R58z39RX c=1 sm=1 tr=0 ts=6a4276a6 cx=c_pps a=0uOsjrqzRL749jD1oC5vDA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=Um2Pa8k9VHT-vaBCBUpS:22 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=9hY_xzidxOicKg_qOOkA:9 a=QEXdDO2ut3YA:10 a=mQ_c8vxmzFEMiUWkPHU9:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI5MDExNCBTYWx0ZWRfX/nQIRyvcOSkm uztTBMQV7GhEJRA3zuCGPnj4ieuP0e4UsmMFoLTChRTvw1VxIdHkq+BYRRr20/FZDT0AAPSX+sS xOVNVEIgh5xuyV6WvTRMQzYREX2vr4k= X-Proofpoint-ORIG-GUID: yDfJZLRlNkbFyb0YeLBzbgrbD5jkB1y3 X-Proofpoint-GUID: yDfJZLRlNkbFyb0YeLBzbgrbD5jkB1y3 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-29_03,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 spamscore=0 suspectscore=0 phishscore=0 clxscore=1015 adultscore=0 malwarescore=0 priorityscore=1501 bulkscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290114 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782740990758158500 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 Thu Jul 2 10:18:32 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=1782740842; cv=none; d=zohomail.com; s=zohoarc; b=ny8e2v8DYYPKlXqyRj0XoBH4OVYJp3MOENLP8iKaru8rJBFKlBk0pCVzZUZz8eu6I/El20iYb2AFnDfH2ocFpW4OcnqPDaTkQ9HD2TXFbS9MRlf6NAXPBqHd4+a0q0U+kH7Nkk1MmnKYilyvz5vLknvZtPKZKR9Tv9bfSW+S1KM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782740842; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=CMAkwzRT3Kst7GQjS6I4P7xukEsAupsqOMXAw0Fu8wFgMx3DDXwxdyN0QzTL0Om2FkbsyqHQr3+pDt3YlbXu5USw9bQTyi+Ut6NFgxTqL8nKYU2odBvbbGXAu9h3i9QWIwE+8/DKyuIK1RjB2dovvZZ6I8LUBh/Lay7UZU0IG6A= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782740842559272.04421790323124; Mon, 29 Jun 2026 06:47:22 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1weCIR-0004TJ-U1; Mon, 29 Jun 2026 09:45: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 1weCHc-0003hN-Es for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:44:22 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1weCHa-0006GR-Qk for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:44:20 -0400 Received: from pps.filterd (m0279866.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65TASvtQ2601200 for ; Mon, 29 Jun 2026 13:44:07 GMT Received: from mail-pl1-f200.google.com (mail-pl1-f200.google.com [209.85.214.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f3nnw939m-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 13:44:07 +0000 (GMT) Received: by mail-pl1-f200.google.com with SMTP id d9443c01a7336-2c804e38cb1so18544805ad.0 for ; Mon, 29 Jun 2026 06:44: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 d9443c01a7336-2c9b0992227sm48968555ad.37.2026.06.29.06.44.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Jun 2026 06:44: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= HRwBm1PEj4CfI6jfh+n9tz4eTBvdQkmFIGL8YkDQmso=; b=JvHjBBW/c5NkgTTJ 1lK+ikynRlwAwRYMjkHQ8rbuv7mF23PB9nM77PxlvGf1FS0JSTw78WccsPqWzdVw /bMlAnz8jMaXrmsgcUVOwRMM1qkm9u2qdurea4ORWurU/agEeHpXJOY9Dx0qT2o5 IV7OOTgV+9fwYfJO64PoLRoZkir8u5DhIrD2QITU3n5L1BtNiST0cQQPYO7XH4vr 3g2l/km85bi8ynZZDfpeUkZ2DM9w7WA3oQ2mxcfq7YYHX4AHiyRZRXd0B74hqEsP kLGrWDpDQ+KQG6wM7m6721BzQvup9dI+NmtMHX6zSxjAwhm67DTqxrzI7vamjuOE dU81Yg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782740647; x=1783345447; 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=gKpRjX2R3dc6HeRfm3bwE/gOCXBuATN/ihbf8URTtGOX19cImTPr+EMeXuee9TicJ+ gTDTimaBT9aN7IbCLhalRcvM+51AtklY/OCG6fIaFyqeEkMluUGvwZahhYX+mW+S4c9n y1K/frsxLWC2Ozll1RP4F4lOamwcpY5DTFtx2DPuFHUd8is1WG3u2MYa36Xc/2Fff8DK DoD/+k4NIkgPItB9X3YHcC037YVWhz14e1F2ci34zESMG9LoyKtShrHYqpDKymzaZydF 9bWO4MF+j0UoH9XlRtQDP5RTo+myykPBUVk7ma7Hmfsq09E8VOcxdYShX9kgMVWGwJI6 l1Kg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782740647; x=1783345447; 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=hhjll9q/dNucszomTCoIjBGP2QVM57yt1SI1jud1TaPqss4jZS5EH4X1u4VK/NCVKE 88UqL0yqGOew21r7h+b1eP/QbC8TGvP48D+LuXeMbuAw/+OAk1kOLbRWnOz7Mv1MTpJY lattzP5TrY8qH9eqlxr8OJ26hgVBtCNPZjg4qPXcL4nZH3afxktz1xNUpiLgYKWU1Djh A4rd/O0mFP7flGdpad4DayyPV0RS7ljBfko+f8Gg8FY4rqirnGIsITF4kCnQVheRXih7 W+UgUpBST8U92u0fjDlZ8ojz44SAu6KqD1Bqrw8BT/bL8KaEnwyhVcJlz69qZCo81jyP ciDA== X-Gm-Message-State: AOJu0Yy3VPrDAKwYjfXwGIUX26H5SPsnWtpH6v3QkmF2KQRtKwHXK7jp MT9so55m0YLgoXzo8MCHJk/F4HSQjg1/Ffd+O2PV0YH3dATWf87nwcsMihfksG/r5Xu7SF8LuNl aZKTQgvBkSKPByZaTOwUgnBJonFzZoIwA1nCGkodufg+iYHYfjrenF0aDhuRK07HCvw== X-Gm-Gg: AfdE7cnSMvV+EPr0SteBnwkqoQ7QmHGtkAWUyaMi6TpoBbW3h6PWjoJWNc+LtPi82ax iVInOgmmclGvHltcGT03gLUf6trQxmme2rNba9JUpKHUmRTi9EBkPWN+a9wzq9D8UVuSwKWxzuI xZ3k/4xCXAt5pdSUpgtYGSKO6AT2ryPpcCKV2GugUi93vB8ryKyXQ6XIEpW5Xuj4oeNQzsFmlH9 OjI3fWovkaTOavJwcTu9lU2VCbcJIGv6hj0OVpeibOKSD3DuiM+tEl+5382ZimU+G2lGF/OzKVd JyOovaGUo/WqYtaGhqnJ32HaOYaWVzCk99jo/wH7z+SskGIxFPXc1Iit0h+WJgTl1APBdMMJxXr PwvTMruOlqixIQ1KJdPGH4jxL+nu28b9IdFMisoKu4vmGb15IYV2bAtEBNNc= X-Received: by 2002:a17:903:185:b0:2c9:feea:4e4c with SMTP id d9443c01a7336-2c9feea50bcmr30514845ad.15.1782740646796; Mon, 29 Jun 2026 06:44:06 -0700 (PDT) X-Received: by 2002:a17:903:185:b0:2c9:feea:4e4c with SMTP id d9443c01a7336-2c9feea50bcmr30514585ad.15.1782740646333; Mon, 29 Jun 2026 06:44:06 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com, peter.maydell@linaro.org Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v5 56/77] target/hexagon: Add sysemu_ops, cpu_get_phys_page_debug() Date: Mon, 29 Jun 2026 06:12:11 -0700 Message-Id: <20260629131232.2487780-57-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629131232.2487780-1-brian.cain@oss.qualcomm.com> References: <20260629131232.2487780-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: AW1haW4tMjYwNjI5MDExNCBTYWx0ZWRfX7/Ay4d6lNmwx iW+aJnanFLjgZj+QpbtC0LL5nlCbTwWIoc/1ycBhhsDL87xOnd0foaDW8lj/w7kQAqMFgBMrX79 3LnI3WzLYyRIO9b+Puu+HVzY0fVmFQ4= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDExNCBTYWx0ZWRfX4heCPCizgpkd o4TH4Rnd+KQA38iRYnU0Fih8HP2l7lk5NIe9rJ0d4cyFJe0dWrBaL3E96xUX2PVxt249nztKs6q pmzzJYloQ6vjD7Fdp/ftAYwO8UUnZ7itWK0caCgORFQa4uqDPuTDJhZaHML32l+9w8CW5wric2h DtCAxYbk3ChepMMtRjcwpFW3jnJaV/TiTCVOCegVkasJI3byuu+v9XuEZB9uE+7zqBCR6QKmYl5 ZdOeb4barhka8irlJPW8XCDYTbXhtaKG/NP/fkqejCfM1bJQg7EHX+CAv24CpCoqz43xXXPX5qO vru1jd78rWjrQYvPxrmsppVRdznpmCLavbHlYJCSGDE/nvXB6sD6chlAY5wwJne53sAwc4xRkis CkjB42OFPhRtSiy6NwG703Is1NFNifGUmcAHQXcb21mDm6vXYE6SAPOQ6NXlRLu2wiMJlaq7Gv/ z3IX4EQh0ae06PPhO2Q== X-Proofpoint-GUID: 32N_mex2Qdn6AQzcBiankn5WomguDEOs X-Authority-Analysis: v=2.4 cv=cefiaHDM c=1 sm=1 tr=0 ts=6a4276a7 cx=c_pps a=IZJwPbhc+fLeJZngyXXI0A==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=YMgV9FUhrdKAYTUUvYB2:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=fg0LxJQkbHe3Ved8Rg4A:9 a=QEXdDO2ut3YA:10 a=uG9DUKGECoFWVXl0Dc02:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: 32N_mex2Qdn6AQzcBiankn5WomguDEOs 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-29_03,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 impostorscore=0 lowpriorityscore=0 malwarescore=0 bulkscore=0 suspectscore=0 clxscore=1015 priorityscore=1501 adultscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290114 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782740843581158500 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 Thu Jul 2 10:18:32 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=1782740866; cv=none; d=zohomail.com; s=zohoarc; b=SwqeIUFaOTGsWgZv6naG5zGPjqvIjnzeQ2iOPZle5sxMBnhKAFPuvnKJNq2KlVGRTVRek2Fmsk9KvtrzZjwPd5X0TJAD8t8NtKrAv3JRq5BoeXs3zOX/cssblL5UOK2LRGF/CpiFJlGXJuUvwkj0DmL2GzeXlQW2ogK2esbE5Xw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782740866; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=nDWP6wcEOVektyvR5yeUg7kjl187XWoPNgLcBabRbfuA8c/QnmSm4Yrkr4dA4cCohGAvPwew6x3GPjRQXnYjsdKhudZhNAQEyKiqZT9sQd4sd58+BBRJP1rkhjRU760xySWTGA4yFbLSnbCMdH02DFtEbuiPfV8IrS78d35bhcI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782740866539176.14642820852293; Mon, 29 Jun 2026 06:47:46 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1weCIa-0004gu-9g; Mon, 29 Jun 2026 09:45: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 1weCHe-0003jB-Ij for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:44: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 1weCHc-0006GW-86 for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:44:21 -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 65TATEs02579129 for ; Mon, 29 Jun 2026 13:44:09 GMT Received: from mail-pl1-f200.google.com (mail-pl1-f200.google.com [209.85.214.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f3kp7hkt9-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 13:44:08 +0000 (GMT) Received: by mail-pl1-f200.google.com with SMTP id d9443c01a7336-2c9b71388fbso28491805ad.1 for ; Mon, 29 Jun 2026 06:44: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 d9443c01a7336-2c9b0992227sm48968555ad.37.2026.06.29.06.44.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Jun 2026 06:44:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= pn/yqs889jusoL8Cmra03kW8nABJmbmt9+r6zbgwxKs=; b=MvTTOfRSBvJSkWjk AZb6cWhwaA9hIC3aMs8YSf79suZ/k+l2JxZgkNP0IVxuwzAdZ5drm0lF7HnmVBH8 B36cC4ulk4gay5hH5zSNvmFsvFJMieqzqFJrQyshyzEfEiq74SndMKZ0EUyuawjZ sM2jvotGrcoG8kijxgvxkpApVDpyZwzRoka54qkkHH+9StjXDuHjGzbJ6tBXf1+v ltzN0Q8PcZCKBDAqZwDSUvOQA2v1AOKD8u5y0ekEi6lpvLpk7UQkpxLvvG/cZerx DmQmavfq6J3I1gUBItwswRnMBHtWcKPIEB4BqwXv4mueFzwoN5yMKfbWZjKVyWSZ W4teTw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782740648; x=1783345448; 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=PnIClXN3SbNyF6KF2QPLlLI87hwWBUWk97ktVQvyOlssNEXwCh0hoAzV9xBx8Tv5Ny YkltMhKUgifZg30HkalV5LlA4aygyVV5EL4NmyeYMcr47EuXHnxdchwBPycZSlXcZcbq yuBdse1StDeLAnmT8H6CzuxMnQ52hR0T1HkGSRrAIT9CwUTM+ckWRep96AM8UTNUGLEu MucVTjvA3FhqHTjfCB4kVb0qcIJuaRQVgwUBMtkR8id/wurXR889xIFsMI9N2i2LJg9n l4ijB+aU3HDgU4qJ5aUtMQOB7wRG0NqB747sVCDnYvGEZfyka+4+PjipJDRykRn2VDLy 2VLQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782740648; x=1783345448; 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=hZE+CYAhoIgOxTQgITVt+AtMGU69qwoV26Y1HSUCi//PguLxvDBLQfxC8ZBFA6v8Rw EVq48Z+xmLXIDkovAmwAjU9+dagCALpG+vLzZsZklGuu0ozeFjxqY0eWwNfQHkagjxQo MX7uVe1AHkJO2QdAlUHCLHEb8lE0pfd0rmtKFr/kZ9xsyg6Vx0KS+3JBvdR9tmVmFVjc 2ied6nPDnV7PKFDE1AW+phr8+FkrRV8BGXFYHUcMN/UkmIXHruNQyuIFGGle/3avyv8i QZk7gtimXuYbeIrZN8b2keiPlF4r66Eb4Bklreukjz18Zwp8xQsCna4G2P8XzZlr5UeZ TXiw== X-Gm-Message-State: AOJu0YytV8vwnO544Dq6UODadg9K7gkKgWKFw/p+V16h/LOVcH+q73Lb Swe4ez2vhinCHo9GQ848yeGjWOi1kH6+mfhdyc2KPUowCOQpv+NeQ/nzWLNdn+vH26NYVBuxyh9 OQw1xMB7fWjKKJSPlCLLkRbtTBAtzgqvOs0O0vSCf9RSXmRQC9LoW8ZpkTtvvViGWAQ== X-Gm-Gg: AfdE7clUhtZOR0gUzgV6aa+bi5ihWS6fARywW5jK9R+DRW6cYTGc+ZcdcecONXJop3t 4tjFQfXGdmOgOa7nHdT57NUsU1AqjC3j+QHyJBDSt5WpCWbCzIzumsA08WnzcC0cEVuqD67TSyD RJaBKwZP7VTnSMmdlhK/IQqeMMQ7g7kR+Ageq1lbWWBI4KgZNtXOCNpPI6F9WlrlzoFjFDZpVGr sL4aZH4h0DVPqXDLsakmEql1xzVnj6v8ZHf+2lYdKP5spGs3B+gsN8vUWvwqUCueqAmLxUBvgXQ UGzfw+j1H4V6UY2qs+idEQYMobV1UYeUiSgwfYtau1s4VR00vKn3K6uLDxLhhlcwQOBNmLM94pI o2vte6Rvvz571LM1jRYYNGFa6Eu/VEaQ3TVqWUdCRif4v+FXlO1KvTA+6W6Q= X-Received: by 2002:a17:902:ccc9:b0:2c0:e5ee:f554 with SMTP id d9443c01a7336-2ca25dbd290mr3910555ad.8.1782740648241; Mon, 29 Jun 2026 06:44:08 -0700 (PDT) X-Received: by 2002:a17:902:ccc9:b0:2c0:e5ee:f554 with SMTP id d9443c01a7336-2ca25dbd290mr3910305ad.8.1782740647863; Mon, 29 Jun 2026 06:44:07 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com, peter.maydell@linaro.org Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v5 57/77] target/hexagon: extend hexagon_cpu_mmu_index() for sysemu Date: Mon, 29 Jun 2026 06:12:12 -0700 Message-Id: <20260629131232.2487780-58-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629131232.2487780-1-brian.cain@oss.qualcomm.com> References: <20260629131232.2487780-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: AW1haW4tMjYwNjI5MDExNCBTYWx0ZWRfX9sVx+ZWep14f jWux2OdKf/j0w8uUYp2/OP8JvIUjNzWge/3vhin45Rn06jkWWSAEygnnZlFATa1GEenGOwnrKK0 a0oh3vEztcpyYihv1TqN3FGr5qE9SyU= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDExNCBTYWx0ZWRfXyMqnEJRW3vau M9V7O4fxA2iGdY9moQM18OfJM6uWlWmujQd9wjUkesMFcRS+1tBizQj1c9UQ36vDIl2RA2Hw/k9 /ai03vK1Ybs5CTFp58cXEh2Zr/T/jhtJErurDPSoJXo1OmzrMcC15zKTXpeMN8eT+61c8ebbJR1 SAJBg51WGj2Lw3BT8aj9EsoSvSOzXA2yhmmbJiX+SjNEm33k2O7nP4P/QUVy3vd3uIwWqVubd4p Sd4DLy00obTtJzOcQ27aaRfsUCBflwBeyvnJpGDWN2nQsjLT4F7TkUYo4EfyGqKvlHh7NCfdWZn VQ2qszeQJLtsyHi8IOCq4zFNUPEKhI5QQhb6XGHhOFdEdL+x9TQyqTho03xdErq37+2/SPIWfrw 3InswmicB+neSZU1zKjT5c3cNx+3C70MkM6Z9SNeShNlMQISnvQ/0X5RSOQLsS1fJXD6s5F1epX S4wvM52e+28UbhtdySA== X-Proofpoint-ORIG-GUID: 9VlbXrJzODg5fSVM_9nUBvlGVCOMjmZt X-Authority-Analysis: v=2.4 cv=MZJcfZ/f c=1 sm=1 tr=0 ts=6a4276a8 cx=c_pps a=IZJwPbhc+fLeJZngyXXI0A==: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=hUoHZ09r4jABJgGRQWAA:9 a=QEXdDO2ut3YA:10 a=uG9DUKGECoFWVXl0Dc02:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-GUID: 9VlbXrJzODg5fSVM_9nUBvlGVCOMjmZt 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-29_03,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 priorityscore=1501 adultscore=0 clxscore=1015 phishscore=0 bulkscore=0 impostorscore=0 spamscore=0 suspectscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290114 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782740867944158500 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 Thu Jul 2 10:18:32 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=1782740994; cv=none; d=zohomail.com; s=zohoarc; b=f65iDiWgOcLkmUvK1EQ+DwKsWFlFXBAG7y7asF0l82JMAVQnQpH3M6aRnUSoy5LyxZ2AZRxzXgrAH6lwE98k256/ffXhYb64ya27n81KdX+noPqNkHpiatrsRApne+/+rBut0Nhga7+vR02JfMhsHmSrKBOjXhvPHuRKBBU5wKU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782740994; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=dRR0rqR7ia+qpVMEySTxU63rzt/kOI5EzC0XdBuleXbdyABk9CHVRT/5mbfmeaojzEAuAGnlPkY4Cq+XOnRHvB81JZsLL1jzSZ6OIVqHq5VwKAlM0jZrW9fcUhnVUEEw1SpcDqAHIHSp+jW/1WNd8CZYlInIuizx2K2BCuUufjc= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782740994758389.58828767756563; Mon, 29 Jun 2026 06:49:54 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1weCId-0004qz-Gs; Mon, 29 Jun 2026 09:45: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 1weCHg-0003jj-3x for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:44: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 1weCHd-0006Gg-Rm for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:44:23 -0400 Received: from pps.filterd (m0279864.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65TATKds2579262 for ; Mon, 29 Jun 2026 13:44:10 GMT Received: from mail-pj1-f69.google.com (mail-pj1-f69.google.com [209.85.216.69]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f3kp7hktb-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 13:44:10 +0000 (GMT) Received: by mail-pj1-f69.google.com with SMTP id 98e67ed59e1d1-37dfe4f6924so2210256a91.1 for ; Mon, 29 Jun 2026 06:44: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 d9443c01a7336-2c9b0992227sm48968555ad.37.2026.06.29.06.44.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Jun 2026 06:44: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= KM8Vmh2bjk7TYidhmOrqAPOj1Wp2rd3I7ixjJkyml2o=; b=J5D1C4Fm1+mGx2dm rI1vAAb8E6Q323DpIhW0E+ZnkJSEg1+Eu+CZ+hqglT9QktOOCqI0uwxM6fl0PTBR p9SqcsQcBOQAqDux2ErGU/No1DEg4GNlWtihNR/+m++/87PFr/IA02MzyRLguJcD BNSjAw55ninNh34JCFBQJ2XI1K2ALIBfs13A+t2qFKGreCZ/gdKmwdNEQBRrTqsu 59H0DaD60WUAt1XJShWbQ3RQwuaj7PhkjgQKuWxlFxLXUFmQ/EJbQdrXa2R7oLx1 uMH/jKjZ5U+VSRfkN4j/p/1JV2y22s9ZyYkyHO9DrrveiZZmdnAyvTthvnuZyXP1 KGY46Q== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782740649; x=1783345449; 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=boDAGR4GkDdM8OiIevY7O+5MyKTwK/ohH2n3wFs2JaVNzL7ZaplFlpvWO0d/3zptD+ W04E2xMKlX7d+7Hz6/pa6FNCqq3pmpGClo9aXEnF/8XlWvGV8QQA+BrCk6zQCwco8TiK BbxuxPz3oFZWytJ4eGtYCVfU9vkwcJBbSo7Ej0UcoYZQTrzcI9U7gBQvphcI350a7v6Y 97azusJtKTI1yTqFSycUuwWr5qX6vwMZKO2MWFnxvX2TLt9qxSxrvLVsSPgape76AV4J +pDnQ9N/6URfvx6uw/wcJ6l4zN6YrHyTwnepUf85uBfEafTVTCYtWHr2P3qg+kjDPgiN y4DQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782740649; x=1783345449; 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=STEUP/eYhZTpFAWaW5raunomh1aeGPoDLdTzggMSmsS6VBfCe35QV5XIL3I4MbHRTe edaiK18jKHOzF0G7nrfHWGN1YUvWCo6wcuA2oEtmhn4PFQJJV0Dpo4FuwNAEvo/LGj0j Dis5oNOoEj2y8yQsXuQwwS7r+Yy8O9zstnsQwVFrkQGkJf6Ajji5eRW6wwt631pDStSM aQja2Ib4K9yZKRb/vhPuFe3R95egU0mrRUP6cFtrIQwZRI1YFO4n57WH+ykKsRcZE+2g wlMWhOoh/mKtE18ydHSfe19m8HdM9AIe+Nh7R9hK+Str+COO1H+et/hQyR3bkAY+y3P/ 0zOg== X-Gm-Message-State: AOJu0YzAuueQ03GVqgSpMEX7mE1K+GyNe3UQ8jVP68XqLw/jIwp5DCVs AuyvFitdymqm5ZLbA77Mm4afMXXwkhdtMTPqc8Zns/FbO+9scuHabua8jYDxInCtX6WdgyplcNb ZSIl09xd5tGvude7AE79ezt+xTrGfg2tmRKlcSpOYzGVIFkotV6MookMcXIwPQ8iyow== X-Gm-Gg: AfdE7ckCb+4StkEUuM603zfozsI4DmJ11i5W1zNnOWkv91NiKkQUxqsuPcYwavmapYH GBRA4ETrxRW6wS6NbXyDFABme39oNZTBhiD1hwjhgl6xlx4Yw22KPPlXYXVBD3nUNrA/Prw3YM/ 8zO57etFAgOC16qdjq3YW0kkQdyGJjMw+loxTUeDDq/FIQ9aqqOyH1G/S3s+hzA4ZC8pkU/YcsV rSh/hvpwtH9gdW52lT6KxevDl1/xrOV0/ymOpvJXjURcBGECz28kTJv1XYK2qgiYxdw3Yazwgjd jmoJc+01TGN52QujSNXUsLQqhTJtgvmnzLQ1Wv6UA7DSZosFh/iHocaUK3CVND5Qx9JOfDWl++U XpV8EqGTx+RAi23sg+6RFWYbkVwy2ZeZQIg3em7gak72rxemAQNSgPj4QnXA= X-Received: by 2002:a17:902:f607:b0:2c0:a9b3:bdc6 with SMTP id d9443c01a7336-2c7fca37f6fmr156981395ad.30.1782740649530; Mon, 29 Jun 2026 06:44:09 -0700 (PDT) X-Received: by 2002:a17:902:f607:b0:2c0:a9b3:bdc6 with SMTP id d9443c01a7336-2c7fca37f6fmr156981025ad.30.1782740649007; Mon, 29 Jun 2026 06:44:09 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com, peter.maydell@linaro.org Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v5 58/77] target/hexagon: Decode trap1, rte as COF Date: Mon, 29 Jun 2026 06:12:13 -0700 Message-Id: <20260629131232.2487780-59-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629131232.2487780-1-brian.cain@oss.qualcomm.com> References: <20260629131232.2487780-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: AW1haW4tMjYwNjI5MDExNCBTYWx0ZWRfX2ZmPCNZVImO4 pTyu4mF2PylYgXo47tK7S5gYv+2iRtmBAg6czgnfi/WDqZaGK0K1yK4q3F/ujLinyr022VS1bB0 MkU+rxUS6P2h9P1UoB+qE6XAYixKYAg= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDExNCBTYWx0ZWRfX6n698iid+yj7 iiXVQQcpakhytsG6DF8+sBtsdndfsmIUjMY3z3kZcNNx/tixgUJp44rP9j+Ft+NHx7CLE1pnmAI wEQUjxQFAHMoecfEtXMJToKBkmAKQrwS4Cp+0Cbtu6QvB48zs+qkNC2WV3Y3HuZO9DPAqL9NF38 HXCt0semaJgBy9iM25iPzZKICt29Z7qSC54RtoXI/QLy5YOIroiT0Tw4swcZPEgBo8HCXFmoq52 +jOGnCECw5VL15TGnR2VMb6hCah84GVp0zI2qOXE5RrdsGY5/54pwgcq8sF7ZKS10Nq0/2+5DXa XN9MTaYOqe53CAG+MDmH/+h7+KRYdupmNqJ0AGXHHYjDcYGdIEVjGbfMrjAAjj64DAEMOcCErWg +1CaRco2Tfv7ADgxriIgVb10aU9b0B6RiQLnfJ5qIL+H5VYbdnY8ZEY8JXoYk/ZNgmWDJCpBFnX LEcE48azO0u9jZIAqOw== X-Proofpoint-ORIG-GUID: XmAVZpEXyF7xtZ3k7idZ87J6mgkWICV1 X-Authority-Analysis: v=2.4 cv=MZJcfZ/f c=1 sm=1 tr=0 ts=6a4276aa cx=c_pps a=vVfyC5vLCtgYJKYeQD43oA==: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=rl5im9kqc5Lf4LNbBjHf:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-GUID: XmAVZpEXyF7xtZ3k7idZ87J6mgkWICV1 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-29_03,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 priorityscore=1501 adultscore=0 clxscore=1015 phishscore=0 bulkscore=0 impostorscore=0 spamscore=0 suspectscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290114 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782740996679158500 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 Thu Jul 2 10:18:32 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=1782740888; cv=none; d=zohomail.com; s=zohoarc; b=fqrd3yQo4RdeVktREyP8WDDv9A+g7B2Ag/bs5oIXLatDAHFF0h+VfThSPTPfo0hoo+FqGhe0K4vzasIIkl5Zyg4wtCC8xO5eZoLu/Q52r3BTwdCQKUvwzewpwCZwkEjPV0Ibi5nYoergw7Fp6Koo++j+Qo6Vjoo02bdW/VYNS6s= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782740888; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=GgkNaIjTJCynnDM6Sk/rquOMNC+sKKStZbV8lorSz+4DDX8zcslfgiH2dO82xjx0a9ygbwwf6kh0k2NaL423t2Y4JSzRMrjf9B8B5FVxML1nnJ3bbMSCpeuqOOfuFTPNkGdJ8qKb9vgXFdXP0FO05ZDo/vEuPAEZ+pae2Awl/oY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 178274088872292.79694003913085; Mon, 29 Jun 2026 06:48:08 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1weCIP-0004NC-IC; Mon, 29 Jun 2026 09:45: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 1weCHg-0003js-Hm for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:44:25 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1weCHf-0006Gt-2c for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:44:24 -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 65TAT2ca2646893 for ; Mon, 29 Jun 2026 13:44:11 GMT Received: from mail-pl1-f200.google.com (mail-pl1-f200.google.com [209.85.214.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f3m4tshgr-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 13:44:11 +0000 (GMT) Received: by mail-pl1-f200.google.com with SMTP id d9443c01a7336-2c825562f8bso20875865ad.2 for ; Mon, 29 Jun 2026 06:44: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 d9443c01a7336-2c9b0992227sm48968555ad.37.2026.06.29.06.44.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Jun 2026 06:44: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= 3UuTOFdc8oYjbXiuLSyd2e3M5N5lZKNz6xk5uPNFpGs=; b=KktI+X9EWRfo1Fgb qoHC1GWbU0YIHNRUdAXLBGyvhH5RT9i7Etkn6NXbMghsRaKry/7HNqZf7/B6s7a4 NBYCUd8UmW8xnj2sE7sT+/KNoiXRKsNvexhOTijDRZIZNJ3aT1z9EenccrcaEmbn BAlyckkezqKF0Y3GOLpPgtmH0RYfFosp6m1bQS8QxYah7VCcVQefCn9M+kFoB1dj LggN9437q6hmtelnmBKptYEdRBR799H1C7fhROpQJg0AKQqSbX6zy+AXiCYgdUSr 2f6/ToBdwj8I/L+XzJB8OVE5RzDUK5kIa6B8GEdjbUrMpiwqzafgYK8Ntbhwcpgg 2Q4AeQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782740651; x=1783345451; 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=UwLqMyu5/kyQwHo8VUR42LGRzqg3RceIEtdXs5PHgxEv9c2LqBjoDO/T22ntlewxRU PqiOwLkUI+x44pP1vsxA0aAylPg3Slk1/P+2nsZrjRfALcQcZd/s/aTAv/CbjR4r9mXh VXJ9gVvhHQ5H80iER1u7CYOOzF88YvVvPZcn7peY7AWhmBqnbX7e3RzRE+ef5ddnMVBL gNTZiSZOoeQWcRgktk7mDLr0dwzkK5Z1XTLjxh5l+GybgqIgNbuKKqmhuGnpt7biUO7h hrv8POGmz4bNeSyP1Y3Vacei3u3mmLkeiBX4IuGKatjdxTTQWVZba7tFfZ5vumrOvQbi 0hyQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782740651; x=1783345451; 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=dYVnj9XlQNa9dofGbjThf+asV4Vv0GyttAhQrwfbqanlECzjhffl2L2XHPXFdQ5FeM U2f4vKEImsHFFhgN66cSBzyP8AdmhvUHedDB67xBFUqvMZD1g64pV6qd1dWyHXIyNx2l SnyTVz4w7tXq0c5EKqB4fs28NeHo3mtjnlvT+vHzZzF3v1rauxPd9w0RMz2B9cEDe1At uOK4QBIrKnafAqBdaC6enfSYOQ9sbFOGS0BkEptxsJZ5rJ3aFa4zyjcUpho75A4+B1E+ fH55KuALU/aQCIFQwTp921LF1tf+vokS2y+Pj5vyonxYKagsRwMtOMIoCGPc2UBPczxG eXSw== X-Gm-Message-State: AOJu0YxZaFIWTJmGveH5BB/Yfuk77mou3OjAWu0ku5HoSB7brQvhLjAq Deh3vwjRfTI/axoyKznbAHQ86b6LDY36dFb+u5hW49ofpHWQQ41xllUxziS4QHSgjSCu5AVF/J+ eiPlwRRTORjblq91nHZ2UzV4z+CvCIK0cyL7uMxCleIR9+bCeNBsFm6jOAmTI3gbfqg== X-Gm-Gg: AfdE7cntzKRASgKxhderkLMKRXYR0qWRjxYd7zURmTr5TrWOpRky1c8LOgf9zar/0hb XudKkM6zYm2t4nQU2UIa7uiMNru9pRETrfvTtwLbzHSKm02/+B8vMBY8THriJ6B2joQLzF68bAe j9Kn0N75RMhWUoQbqRHU/r9kATNLEMhMbXxe89YEgwWwwLdyA1yJO86cuhe49oE7VPKAGkJ7y1g yyVGUvwR9VP9CXGXOInmWK3fc2Bmip/aRID9jBiO7hGrshByLER8ylU7XZobOnIdV8FO+E7/0Zg sUBe88CXupnkPNTDaLNhtlD0ZuTvWm8lZom/kYSxT10XCkpLVRvZR+z8uz2axWX+3PC+DVmTuit JS5UWXuXX1jJz/4rwiCdNgN9tssAZuwnQwi1KVCzx5YQhQ3XQYZ+Y2BdXtvk= X-Received: by 2002:a17:903:2f8b:b0:2c8:1c3e:9636 with SMTP id d9443c01a7336-2c9860ba606mr92803485ad.25.1782740650877; Mon, 29 Jun 2026 06:44:10 -0700 (PDT) X-Received: by 2002:a17:903:2f8b:b0:2c8:1c3e:9636 with SMTP id d9443c01a7336-2c9860ba606mr92803295ad.25.1782740650395; Mon, 29 Jun 2026 06:44:10 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com, peter.maydell@linaro.org Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v5 59/77] target/hexagon: Implement modify_ssr, resched, pending_interrupt Date: Mon, 29 Jun 2026 06:12:14 -0700 Message-Id: <20260629131232.2487780-60-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629131232.2487780-1-brian.cain@oss.qualcomm.com> References: <20260629131232.2487780-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: AW1haW4tMjYwNjI5MDExNCBTYWx0ZWRfX05EpMaI35OD/ tylviw0zYrQkoE5+eiScq3ZevWejl7E2nBwD2pakEIGISSMUFoJNsEE/kDS6LB2NfMS3chYoOH/ GQl6CMRZ9cgzIms820XpPYrv1BVKPDPT9aQDiQwKYT1yabh3VXGYRaNCx1Fktlr3ujWxsWcqTtM H3vvTiJv5/Eiy+VAOQwguzYJf0vykqvJ0dSKNc8tEZGRrPK80oAFpL1G4natBLd3cFgQupI1de0 KCfA8GdmDHdGx/Sf2s3IcbbmxI8US/yWXutGB2klVD2Ml1EOXUiz1Wf/spYvQHNeE5lCmgyVL3B X59Whxo3UzNinpsj/euje8tdhHFoDUu9Fe/4f2wQTfgPEsitymCyEWOtwghSlh9IZq7hJ4/sPN2 fMx4ymK0Hnk81zgxJ8+IGAs3z0qv3Fe/rEVqU5MQ837LFsTjknl2Oo2rlfIPaCbRPA26ji0mZqG IlzyKr3+BK80YgXtjqw== X-Authority-Analysis: v=2.4 cv=R58z39RX c=1 sm=1 tr=0 ts=6a4276ab cx=c_pps a=IZJwPbhc+fLeJZngyXXI0A==: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=c5yFZwH1WPb9xS9x6awA:9 a=QEXdDO2ut3YA:10 a=uG9DUKGECoFWVXl0Dc02:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI5MDExNCBTYWx0ZWRfXzXGmfThAb7Rp YoUUIZ1UYpZgg/yBxiy0qJnj5ZjCK9UcEdnvHmZ/BviI8u0vb90igEQZXM9aaaLjPxo5xBNTxXK gMwzoDv80d8TV6KeXDxDGQCpklgxGc4= X-Proofpoint-ORIG-GUID: yZ0F1tT7VWgNKHCzOepIuWomGzkSHu9X X-Proofpoint-GUID: yZ0F1tT7VWgNKHCzOepIuWomGzkSHu9X 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-29_03,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 spamscore=0 suspectscore=0 phishscore=0 clxscore=1015 adultscore=0 malwarescore=0 priorityscore=1501 bulkscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290114 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782740889906158500 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 Thu Jul 2 10:18:32 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=1782740730; cv=none; d=zohomail.com; s=zohoarc; b=RCL9P0DgiBNTNPi0Cgi69mcYIxAZ53SwGG2HEd+W85VHnbB9yPWX4NrqhtOVuZezSqBvK0KU3mKDZOqbEPEJ3qTz1VUlNF6nRPyMjqDVauSsMCsmK4Zi2Pl2YjvH/DANcMA8dO/UYz1DP1Cn4BRMsiu0f1KbejSNgA7Dmlh/B34= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782740730; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=W60ieOT77BPqFAxukeKPPW97LAMOR0rsEhvmkPkTbe75ZP69E0RxKKLFLUVlb6jSw+I51Vp6HMqR4CIMjov5jY4BjcVVTKRW6N/BCgX24K+Tt4k2o/ooKGsb/S24pZkMssNX9mNcE9rTS1QwXMB4Yxg3GDGcmINZOFvuGK1Xnf4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782740730403516.626661591952; Mon, 29 Jun 2026 06:45:30 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1weCIe-0004xk-Em; Mon, 29 Jun 2026 09:45: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 1weCHj-0003nR-1i for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:44:28 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1weCHh-0006H1-8K for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:44:26 -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 65TATMfN2647667 for ; Mon, 29 Jun 2026 13:44:13 GMT Received: from mail-pl1-f198.google.com (mail-pl1-f198.google.com [209.85.214.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f3m4tshgv-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 13:44:12 +0000 (GMT) Received: by mail-pl1-f198.google.com with SMTP id d9443c01a7336-2c81db324caso23881935ad.0 for ; Mon, 29 Jun 2026 06:44: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 d9443c01a7336-2c9b0992227sm48968555ad.37.2026.06.29.06.44.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Jun 2026 06:44: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= DwmtLwNQ586yD7zGJVwVTp7uqi8JKqPltGIMKxadn6Y=; b=TmfRbjc4bBFea72p Mwifieeu2rbNrbhrZ/LO8n3UhFcM6A/wiFv1Y2NR3+0fzQc7A3Sita7/j1EOh7TH npXj9Xvz8zRA0qqC52bxLF/Mls5Jz5BEfXIYUSB/ZBh8TH4Hj58smkwvO9g6uatK wnTZbhh4qOA/HXFLWIN+6U1KrGAvAluVO05BKff1TjMq2LQaXsUEaTF0m4QsE3nw YAgqtLIeIDXitehb3WgqIT9uVrs1G6QJEjKD0JlQYAH75NyMzqQtZdC5i7Jpy7ux MA6UFpSN1Jxn1WD8mrTtqBfSM/qU2OWv1ggth0WUVDCEl/cklnI7EUP+aAaFNGMV sTGe6g== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782740652; x=1783345452; 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=iQRpaS2goaPbcB73zUQF3wHNSknIx4RB3dIghvCYfWDr5tqL2X506MHOcfanSl5EVs TVsnt4HB/aRstsiy6f2OxALwLQKMJ0Do/ngh1rQRlT+enjX+ZU5VuXBfqQ0DeaY/uJe8 bUp/h9HioFZ77RBOtAmMKJHADyR0FIunW7Z80ANifLYOyAJ2GsEqgJnkqMCQNgQV0Sm8 FoCZuK6V5MLBV3jqEtrNZZ4w7TLGSv68s3X8DOQQheJ1HoVm2glCpccnk5TXLPVAc+/Q gCGSXShXSGKRlzfwC508x68sMNsXN1AAUeMJENMITh7Q0MT6r85GKibjNIUVryqkkw1g jCIQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782740652; x=1783345452; 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=RqPdSmY+tCdrXK0MmoGneNlqlbkScOyUd3e+DJgZZG8/pmepsGJuD4HP7kXLZNojRV fQpjQiARfIGoT/YLv68GNoV8SQMNAoHJoop642PtvG6ljA0C9v63LVUDBuzTqvtyJayA oe3vlY1EOvKqzxjTBKa3/x6Hk1GJ4/ocpxvU21LW2WwCxKTokyoctLCIZiuAbY8WgHNG mJSjAOSic2yDrJ7rbY7jvWKeKlTe4Bj2zkCGTeXYHM/ITTx42utnnMR7ho4RzGqQ6YIW kJkzaG8TmBEYPfYHVa8tK1vXLJ41Y5ZhQyb5aqnSb7ar42hiuAKKwjzucZvWQ2teoWDl Nvig== X-Gm-Message-State: AOJu0YyvM+GjbKa7U1cIx7Zh2dWiMJnaNanco7rjT4JZLa8cavT3HO87 /LCKDwtKQXrIcJiN1zT8ivtSkrCTRauYjgImZ47Kxy1KAodCPbmxBwPbMZOqHqI5J7VWyd1pm7U ywCUUTvwnljrB5iPAeMhJrH4yvAVUpceHkhuB2oYAA1UY1Jurgbl/wBvVVFEyDhubDw== X-Gm-Gg: AfdE7clg9m1eAeozAE5l5SzOHpY+76shVL5t1fNblSBApeVmUH0gO0w/omSnaueKDxO z7g1oCAvxqTDEhOrVpAN8oO0i0pS1vnKME+8plCNsiZ4WRDxcafXmkT3QN0sg6w5llgfK8Qr6L4 4KAQoQDTEFpBSskWuFxi1E4xDPxMmYVRw0QuYLYlWkbBFRGcC+qg0rV0ZTJdqLb9c3hZyWsPmLq dH250e6RYQtqj4PuE04VfBeOG0iAgCQ8VN8YlNxHhfbZ1UcM7uSNKIIKgu1ArwbFeoUG097YeVW f55kBxvg2c3l9A82d6ltyQP38rX1zjfclMn1RlsNeptCtcoYEv/D5q6J3OMeHGtIux3hwM0BEhH hJOXjs+nnrgTxorJXZt3nE7fEH9QkhGExfC+Kj0sRNXOD8jt2hrAm5zfyOAQ= X-Received: by 2002:a17:902:e80f:b0:2c6:8d95:fd6d with SMTP id d9443c01a7336-2ca261cf71emr3944225ad.21.1782740652100; Mon, 29 Jun 2026 06:44:12 -0700 (PDT) X-Received: by 2002:a17:902:e80f:b0:2c6:8d95:fd6d with SMTP id d9443c01a7336-2ca261cf71emr3943865ad.21.1782740651642; Mon, 29 Jun 2026 06:44:11 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com, peter.maydell@linaro.org Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v5 60/77] target/hexagon: Add pkt_ends_tb to translation Date: Mon, 29 Jun 2026 06:12:15 -0700 Message-Id: <20260629131232.2487780-61-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629131232.2487780-1-brian.cain@oss.qualcomm.com> References: <20260629131232.2487780-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: AW1haW4tMjYwNjI5MDExNCBTYWx0ZWRfX8zJl/Q465s0h R5D5XEw3BR+PBjLCjGGNlH/zQ7rdDXHO/tbPXdd6LC2ZiSgdXBRALP5le0oTGraVsPZ70YIz/9T Lx6xk5YYA0tvSHXc2dRXZhqTf/Q33J/dwLRDXZGL3jhepCi1qkA716pVVKORl62X9GGlndesVpF wfACS9BsdzeBL3Qfl2uyldAiCPm4B0MkRSd6zonOiNbeqTR1VzUniCC6qXRps6rkiA5dLhZCya3 LXsKELyizbtPzcdgDhDbiHbqjxI3heOB3NJGPJnNpBkl6XNKilP/0U9pqL9Rr5NBCtr9Oir8ND2 8tU9ieWFUwPrw5FcWNcOJnxayHnKexNA3lrn4YkNAdnF9DRcMZmuQ7PGLvTSIjBXmq7rLtCb0A1 tCe9/yhrGasubyhpld2MVY3uBQ92oejQO7t1Mlb6xNi5LiqEzFnJyDKRKi4XZtPNhN3363cd6IE 9IgNdSy9G+fUVmEADTg== X-Authority-Analysis: v=2.4 cv=R58z39RX c=1 sm=1 tr=0 ts=6a4276ac cx=c_pps a=MTSHoo12Qbhz2p7MsH1ifg==: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=PUAfe4L2FItr89aHCx8A:9 a=QEXdDO2ut3YA:10 a=GvdueXVYPmCkWapjIL-Q:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI5MDExNCBTYWx0ZWRfXzGt7ye8Ab7og OtHU6uWbqapapJN8jVtSmR3UwZ1UIWCxecqX3I5p87MhUjaZJrsn7O+Y95Mk7kHh9tYUlNdQ2lQ vim8xLIbKwxHf68Cr7NaoJ6EeH2/eZo= X-Proofpoint-ORIG-GUID: PZATgKgtPNNp3VBwzKjezv0CwdI_xkbK X-Proofpoint-GUID: PZATgKgtPNNp3VBwzKjezv0CwdI_xkbK 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-29_03,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 spamscore=0 suspectscore=0 phishscore=0 clxscore=1015 adultscore=0 malwarescore=0 priorityscore=1501 bulkscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290114 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782740730939158500 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 Thu Jul 2 10:18:32 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=1782740884; cv=none; d=zohomail.com; s=zohoarc; b=kaFwuScQkuH+xJskCv4BI1U9R3lTDC2Qekv2hTN0XzDtc5uj2zRaCTQocxkVh86k6+Y5dkCagNJ1/oCs4Fk6469jDtzsBt7idKMUnnbQ8blFLMlG/mPplDLNX8gO3p5qv9ovP0QbcT6beLPHl9fXIxOKx0MkYtDO43I418I2+3Q= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782740884; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=m4hEgoLOnV5J5+xGIfvANnRVihmHwfvvrn/WpjooKh+x5ayqS3CJ2sNlk1i5E3p030duxMXVSJ3WiGHNiZINof7jW2e9CdMm8C399JFXqEzbHR1Rx44ro3IPuYvqJkmScB0OuigjGzh3u4PbvtRc81rPNtf3ULCDvaYlriiDfZk= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782740884766450.60437188097467; Mon, 29 Jun 2026 06:48:04 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1weCII-00045G-JH; Mon, 29 Jun 2026 09:45: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 1weCHj-0003nZ-MZ for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:44: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 1weCHh-0006HA-QD for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:44:27 -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 65TATSQ02579625 for ; Mon, 29 Jun 2026 13:44:14 GMT Received: from mail-pl1-f198.google.com (mail-pl1-f198.google.com [209.85.214.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f3kp7hktp-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 13:44:14 +0000 (GMT) Received: by mail-pl1-f198.google.com with SMTP id d9443c01a7336-2c9a700dc0eso12987985ad.1 for ; Mon, 29 Jun 2026 06:44: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 d9443c01a7336-2c9b0992227sm48968555ad.37.2026.06.29.06.44.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Jun 2026 06:44: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= Yp87kcoinbDBfUm50phdJD1Q0SWWmLVPCkRoyO7PWUc=; b=gFpuNgT5ke2GDuuE aKb8B7/k6n7aYhua5TtvmILJ6cJpMveuOmPpSt3kH1uDY3K5SnIrp9AcXrWOcT30 H36j0wsfJnSW2fryOpcG7P0CJUoLo9IONy8C3RmCc1KI94cjQFmOIvmAF45Hbapo 1JsK7OKwY8VOBbNiYZVPe5E7jBggYGPf0oPmLIBqyla90haUWzjeRk9g4f/kc3tB XHtam+Q0o21R0h6Wfo77xqx7wdMOc+zH5NEFLkcer/qdDTgMEIaE8TMlliuuR6U+ qLATSBvTZOtT7pC4VJf1tPzYz27KRpXebm7Uzt2bBVGVtrzWTxZ9KC8Kv6wnTsUm DYNKfA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782740654; x=1783345454; 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=giWIuYSW3wceLOLjNgLtpMD7+w87P3NkBnGMO16pAlICIblQcnXDgwU8K8f38PbkbB pP2N2piWuW42RwuC6APz7yUA1TGze3ItWIbIiR1M9wRrVFCYzoXuDwVa+dzizETZzo+r sT7QvbZDH/QgywS8RD81PXgO9iSXqA1+3hUz7BXN2EF9fdo/FGXAF4wbp3806fviB7Ah drba9CYQ7dEVecCTceNm/hYQPH8tXXfSsK7ibXOsQXDIDuXuyhovYQr7AjuHu6Y9JRjq iIBmg7t1q+ybCb9trXDKL/dVsrnL73ysMLhu8bFLCm0YeuLcb88/ODhUrJ0AQeuwo/0f 4DkQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782740654; x=1783345454; 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=OlXfTMscdZzLctkLE3N6BXxUT2J+SrZj/7ZAexwiuBcPHcu7TN1LXlZ/TcYttxcArf b9THH7ujf+UAiv2G3QeQGda4RwqZPa/durllxcqzXP7q46ZmYUNWTCt7YNM8udonvmFm ISONzVYR9cQvGVmyC0mQkNfcKPknCw9pNOTg1vYXRHcaPO/OnREgpZES0F0BSTgdz8VM CfpMVXW8v79Ez2t26P9TSaBUp+OD/QmZEWFwJtXklRAJYdx+sH/b0vATi6Y6a4B6C6+j gAR4dtfvHpfq9FmZ8I9aaFrYyEjUfmyhn61Zb/oqMP9ns0bq6uN+G+bXQ+z7r/VIvD4m Mu+A== X-Gm-Message-State: AOJu0YwloPblXn2VcruIwj9/Ud8FIte1ICmaSGqLjYhTLg50qvojIR2S eRXQ4of14bA5V1XNAQeCBNfKNLdnWoEPrr4rDjNG57r7wGY538tjPXNs06SfXfiL8umx/kC9UAx sMa6tCSWG0N2v1YxG8O1Qj4Zh9oR2/q6HjZJDg874HmRpozb3scEUu/cftj1ZtqhvuQ== X-Gm-Gg: AfdE7cnQNphVANQLMYFYTlSSUqgAjSTDnBEKsy+5+UXpOhnlJWCV8nEEKk1B35fe+If MKusE00QPpE9wyzAtVaqU7qrf4Hl7QgrrR8XelZbdgWQujRW0E+TIDvNQb3HHWE4r4gA7hCXzPR I/eF6R09wwlHFOPM6BAcaxjnswFqxfAgN701RDnLCaft3gzWQPT5wU4dNFVpr2wMphHqML1sBfM NAHi12Atumm+r+u4g4/6e38U2EBmZsV/BtpARrms5zok2kyXPEBq0/fNJR9jMw6Yf2iySa0dV3x eoSRT+42E1rvp2+ZzKf1cUCNyFEc7a3BJtZDCe6eSKV1deMtfcwFriYuj+iXcIXylKfHC0b5M/o vw5KVxQ6xtqn85pzjd3/DqDcG4xzt4KUYRcdl3n57i++m10EM5Y+5zE7EuLc= X-Received: by 2002:a17:903:b86:b0:2ca:e3f:6a4a with SMTP id d9443c01a7336-2ca0e3f6c4emr21027345ad.21.1782740653618; Mon, 29 Jun 2026 06:44:13 -0700 (PDT) X-Received: by 2002:a17:903:b86:b0:2ca:e3f:6a4a with SMTP id d9443c01a7336-2ca0e3f6c4emr21027095ad.21.1782740653116; Mon, 29 Jun 2026 06:44:13 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com, peter.maydell@linaro.org Cc: brian.cain@oss.qualcomm.com, Brian Cain , Pierrick Bouvier Subject: [PULL v5 61/77] target/hexagon: Add next_PC, {s,g}reg writes Date: Mon, 29 Jun 2026 06:12:16 -0700 Message-Id: <20260629131232.2487780-62-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629131232.2487780-1-brian.cain@oss.qualcomm.com> References: <20260629131232.2487780-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: AW1haW4tMjYwNjI5MDExNCBTYWx0ZWRfX0WeTMMtQuSRC oBdxBobCXaEI8o/FOBa6IzTzReWCF/eosl3StmyRMi8j30eyQmPgZ3JFvCpYvnfvwN1eYhPIoBt ys69xqFCEXgOCgYW0ylvT+ZlHuXc46o= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDExNCBTYWx0ZWRfX5PNXL0r6GQTc kLGMknFevGaaWamPLBmETw38Qj5u5GMtYHCrJSO10gagpGm1l2Dso070/zKs/oDYtTxlaAgjbN2 h3cMt7HUawXK3D5zUp27F3F558/RPJPIkUWiN4j7Daxqx3I7tm0JdS9mlcj5SMi7kpSdHxgwO/W kB7VXTcatwgBO1XXPMzHWWHk/1NY5DHhgb8jlVIbFLfysMjwiczCijx5NTL04WWviT4dusaezVV PSTxcNTG7EcMaOJJ+IvnHeHwrBjJFv+Mno8bFCZmvb54EbGb0r8X9OyP5/O+7rT2nSbRa+SBzkF nk3vIAtTNbKexx69jr8iDzhO0KoxxkPNxndRnjK453pSWzBcT4tslQqwiymZTa+woAPtkGvB6XL Q6BPGZAUrCADfI9X43ZJaRdiK7QMX/8MYMEvEgp42XXc0qiXLMGPc7bqSlZjKJ++8iZGUPPgGEp Oupn+5444OwqSePiKgQ== X-Proofpoint-ORIG-GUID: w2X7ZJndjfEOxf3LkT4_INmYONpTCKJd X-Authority-Analysis: v=2.4 cv=MZJcfZ/f c=1 sm=1 tr=0 ts=6a4276ae cx=c_pps a=MTSHoo12Qbhz2p7MsH1ifg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=DJpcGTmdVt4CTyJn9g5Z:22 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=fJQQT6FIS2xgNqPK2MMA:9 a=QEXdDO2ut3YA:10 a=GvdueXVYPmCkWapjIL-Q:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-GUID: w2X7ZJndjfEOxf3LkT4_INmYONpTCKJd 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-29_03,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 priorityscore=1501 adultscore=0 clxscore=1015 phishscore=0 bulkscore=0 impostorscore=0 spamscore=0 suspectscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290114 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782740886467158500 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 Thu Jul 2 10:18:32 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=1782740912; cv=none; d=zohomail.com; s=zohoarc; b=LA25RSjL0lEku+hFyYymI0lL8EE3bdx3IEomfHF3uS3GxSfA8Zi9MOrz5IDlyyvMrEKBV9gUVZ8EdpD38xWLNd58sMaYXK6GGKtzKx7eBw5DhE8ETlNb0r4C/wx8+6ahUdeBjC2683+j6wUx1UmFZRwyMdVz7c57LXLFHT1mKb4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782740912; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=gSd9YX+eP3h/fqohNGxoZhI+aOOygAN9Tsk8q2LvgFxuYMe7RQdM5S2dEqOmKYKYtZym5rf/oCo9Xa0Hzn7LdT4DnYVR7PgPthCXy9Zah2ufpi604SWsUzjQEz+kYxJvleSpuVRZSXIzwBMBpwvJM2if63yWgCBPIDkCgfrPjxY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782740912745900.715172968326; Mon, 29 Jun 2026 06:48:32 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1weCII-00045b-K3; Mon, 29 Jun 2026 09:45: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 1weCHl-0003oH-G0 for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:44:31 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1weCHj-0006Ir-Qy for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:44:29 -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 65TASuqT2640954 for ; Mon, 29 Jun 2026 13:44:16 GMT Received: from mail-pl1-f200.google.com (mail-pl1-f200.google.com [209.85.214.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f3n5s181t-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 13:44:15 +0000 (GMT) Received: by mail-pl1-f200.google.com with SMTP id d9443c01a7336-2c7ee3952d6so26053055ad.1 for ; Mon, 29 Jun 2026 06:44: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 d9443c01a7336-2c9b0992227sm48968555ad.37.2026.06.29.06.44.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Jun 2026 06:44: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= WSxBtQ42d1TB+r/kba+VA2NNeVAZKwGKrYR4H+pwBnA=; b=W53kfRL1hJ9thlax 5qhidjgqUd21YAqYtiUwV1RtEd7nW7DC/mMKxMw0bJNjfvTwEOYQSyN03n+p0tFp T4539ZZlCq5BUd/S8jGrGsj1b13MSPlR68cyTPRtzCw4DYuMjKMeQ993O/twmZto 7a6jXH2N5NrKKfdY+FSxFQqE2h9xxu+We2Zqs+uTOhz2iLeGkhAt7T3Yuu1f13Tr 0RR22nsXpr9tgSYxyV0tPv+JynlDDUjoiY3lV1ilDg2TlSL9QMUAkAGj3O8VC7gK /6jL2GXFO7JOqlpaJVbzmxOkUZY1FtZiZcBdWdHQtuhVQchqY276ynTBHxkPtx0G +yB7XA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782740655; x=1783345455; 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=DXC5ElaCZ0WZRFtW3H9MdbaB9noKeLo71N1unJhJqWhIKT4pFbGbh6FJLhukrpFeVM JrREBm/gtkrFyerx75hbth33Q3NoMGYHvS3gWP4AHDiSJOHJfhdn8DlklygAhItLAE1h Et5sQoP56x2EyfYYDT63hLQvJTzHqSWsChgUjRWMXBvHLdYlDEVJQ7u7UuoeZ2Tmsm2g OQZXEEHNTN8WFiZv8SysU9zRCIIu26G5yzlQ8FFv6joSBePoG9fXBllFRoZZDThzj8DH coaGC33VgU+2XpZ6Hgdz0oZxzdUg8xUNKS2v91TFMpRHfNwI4nGkbCkJsDKLQy5zJa4K pZag== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782740655; x=1783345455; 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=WuhSggI4BJYsxtLuKYQIM5H2VJ/pwnfQoM+OMCpqj6KKcHlwrlti7VMLKdZOvF6kHX jy8QM7DWDIgwtp4mwB4r786P3a2ma3NfTzqZ8IoizLxii8Cy1+BzMx29rQt7PXUuyWJp 1xPF+S8ClVyTOUPuV/Y6g+21NhkKgT47BBO2Z7oBzMlwgExOoJMrGV3lM1HGPezPDXIH tJwCZILdkzALz+DUitbKoJ61GVUylMyIseQ4UvO3H8us7g2zU33ld7xtgtwO7BIKkEe5 Lz2PDA2OxYv2NSeIou0t+thhM4zpFzAuTaRyD1MBkEM3jM8Fr8tJtCVoI+0DS5bm6lCb Cl7g== X-Gm-Message-State: AOJu0YyrLK5XxeqtasTFMWwNA9EO8ubT/2YpJc36eZ6ZJEll3uXwCAgz 7ZGIlAH11EwaVvQteWQd9yXD4oawIRpR20VqUx/3oN1/jImqm9BVaZ/lt16LsYu4f0Txr3mFGNV ECpMl6NMo1E66aQfS5itov2cH/b6w3GTPKyBwANURZhrsfKn1a3Ms4nyyr70jr/herA== X-Gm-Gg: AfdE7cloLL+Iikf0baLkPc1oes+tC4ZyAAEs7F9i2fjt9sERktl2PEEZCJhWLUv9dKz yWAqfEL3aCuloC4IwfOfgBsHoOhd1WtwKvHQuvDNV9zPg8KO09M+UoDxM8lOJMZwKGyCKCF17dm PLNWk/nXPnUvv9LOd7uFoOFREXuD9JYf7OPN25IJTcemiavSK+vcFCzm9ru0JcfUHoXOWdO4exd Bi7A3nbel/ZQ1CdgQ1C9hPSrUTFQBENCJLP7HwIT7LJkmKi1T3bBlc1t4rjXDBrhOoJklTnTva3 bh8jfPg4eiVe7ofSShCVN9DGl4w0+Ul+vQuCoSusDVkCfwvSkTWCtzP/BdVSvD47SAtXQ8PNIWY m1sHXwu2703tSNi44IrtTXivfvntWF8vPDP5napMgz6+R4pyE8bIVIKi/riQ= X-Received: by 2002:a17:903:1b03:b0:2c8:2808:3ec7 with SMTP id d9443c01a7336-2c828084228mr102940615ad.34.1782740655124; Mon, 29 Jun 2026 06:44:15 -0700 (PDT) X-Received: by 2002:a17:903:1b03:b0:2c8:2808:3ec7 with SMTP id d9443c01a7336-2c828084228mr102940375ad.34.1782740654659; Mon, 29 Jun 2026 06:44:14 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com, peter.maydell@linaro.org Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v5 62/77] target/hexagon: Add implicit sysreg writes Date: Mon, 29 Jun 2026 06:12:17 -0700 Message-Id: <20260629131232.2487780-63-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629131232.2487780-1-brian.cain@oss.qualcomm.com> References: <20260629131232.2487780-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: AW1haW4tMjYwNjI5MDExNCBTYWx0ZWRfXyzAJ+/bsAbpu 1P4HQrOLrq05Z7ZSuxFwYrv1Tj5WJVv3a4npjICQfX2DsCLm6O2JcrLEYxx+tA9uHDOUNCeF710 9gQpmgAxG/0UYC4bHCRyrVkcjxuq8i8= X-Proofpoint-ORIG-GUID: Znia1_c_3k_GTJ3JLsdUxk9m4tWCxXVZ X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDExNCBTYWx0ZWRfX6A9kASZZwuB2 wxCBxCnHwjtV1rTdnRTc+6YflVEtHY1Oowq/2earzRZhf71keysrvkE9mtYkY8SzYpH8682l2TW 1NzRYdQ+VMMyA0IVGJ5hTwXkW0sp9jE4gIWhrKq6eYrL+oa7bs/o3jW35xDZ5InUTcgbjvUNPrF k1Lcza2cXIKAf/3hs1Wg5dhTyQQcI2zVTNUYnQo8ohYnto35r1H/aohOubv03v3WQiNI3uUNwae /IOxdZaQ/BIAgoG7X6rNey5QlbgSeNGMoiWYO1yNePg7E2dR3Uxct/4CzV6gEaZlST5RcgkgOe7 d/VjXTcklok8LuTiwRe+Xc88cUXQy8HmgPRQw4L4Kz8ogMZvgRITMhuItP3pkwVoPy/dUF4Ef6y ic/AmDW/P/yG1hyG4C+K007MptrYSpWHgdkwRAqRiQCSPkosD3KHEXQG4zz31tz+MN7CUMg6afM /8Z2qfk3iY8MjeYXJwA== X-Authority-Analysis: v=2.4 cv=NZzWEWD4 c=1 sm=1 tr=0 ts=6a4276af cx=c_pps a=IZJwPbhc+fLeJZngyXXI0A==: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=ySlkKLH3HnL0fBWr2zQA:9 a=QEXdDO2ut3YA:10 a=uG9DUKGECoFWVXl0Dc02:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-GUID: Znia1_c_3k_GTJ3JLsdUxk9m4tWCxXVZ 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-29_03,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 impostorscore=0 spamscore=0 adultscore=0 suspectscore=0 clxscore=1015 bulkscore=0 priorityscore=1501 malwarescore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290114 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782740914099158500 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 Thu Jul 2 10:18:32 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=1782740940; cv=none; d=zohomail.com; s=zohoarc; b=ZkRfBIGbcMCSOREUDBOJp+QhevOkZUA+yeqbfPuhHA8dPzSztH98XTwRG6fg5YE2jW6mQFIzMJTXJJDKpVuUCxoVOfY7t90aHsK5Jo+f7aqSel0ya5etqxi6BrqEZg6hEai11U87ubDsteLTlNefkd7dmvnKz8p4cenLggROEpg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782740940; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=WE5jY7YYnDmtlfNB+feqtgqQ+ndogA0a4mlOC+N9kqQuFAgz5s9yd2PIzm4moQxnmwYQzbn1Rj8tUYHOPoFtzev/vUP8IajNzZyvePCWpk2u6r9AW9gA9efpmhSmAINMp6DDD+lFpJMFctnbt2rXD07atbVbF6sf0JBcSqWGC48= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782740940090566.3404811236885; Mon, 29 Jun 2026 06:49:00 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1weCIL-0004Ge-1Q; Mon, 29 Jun 2026 09:45: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 1weCHm-0003oT-NU for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:44:32 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1weCHk-0006Iw-K9 for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:44:30 -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 65TAT2cK2641653 for ; Mon, 29 Jun 2026 13:44:17 GMT Received: from mail-pl1-f199.google.com (mail-pl1-f199.google.com [209.85.214.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f3npes2v0-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 13:44:17 +0000 (GMT) Received: by mail-pl1-f199.google.com with SMTP id d9443c01a7336-2c79e5de32cso26130315ad.2 for ; Mon, 29 Jun 2026 06:44: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 d9443c01a7336-2c9b0992227sm48968555ad.37.2026.06.29.06.44.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Jun 2026 06:44: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= KQKd6wa9CP0Atn8b+uEkUcIK7E1HAQywunGjG1NtcJk=; b=XHzjKbOz5w2zUhHE bnnUWhznclSJOJa2+wuainQJhITe5q2fmerr+R5ciW8NSsAp0PqZWzWy2Nip5B4X hA5MMPYUSzUWgt+AU1Foyl92b5GWhAYXx1GvLCTy2lykHAwG0tvjkh/9h2ir0R/V H0WIYzIPn0oZsZjtIFULojkHyQc17J/IiRWvXjw9h8sjEsr3z8FlbqF33B6P8Ijk BAAM0HkEQMX2V1xdaHsoJPVcQgKt31kGUAlAEJ3TXmKWsVwOKtsyZMjwfXwvNSMn DH+d3OKpfe+/mpgYtLkXRqKWFpmimoUWKqYx5q7DNi6pJc7QtRMy1r/Tw2pfYx8t YXgwWA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782740656; x=1783345456; 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=X6ypwhKLfycHJ6KlhBDvwEsuJubrn+FsDCpCgLuIoVePFqXwPcftAxvvV/YZ1FQyrB r7PmWEJorf8F017IGEFRFBystOGKlGjrm7MhJFV2IYATEQSGAFMDUMuSqmqGOZPGo12X iPx/9UmBqdxUw1MPxQwmQjyf9nuO6BCIwY4bYeDBnDV9eoSuqklTNJ+5Z/hVC6Kt9TS6 xM1DYWKPo8hsMxjujkvNEvD2ZSqqR0/8iK5fb/NhoIDrHFzcH/bkk/gUzPAIIc0kG7bN RqsR6R6KpOLw6+NbpspH3mzmJt4M197ZeKB/0exm8PsiYx3GG+w903FvbIfXhkJPeTAL +vtg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782740656; x=1783345456; 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=Dkd+tvD/Blw0jjTm/CA0SE2cbEULor/DTAzfbVYS3zoaJlR78VG72wJD0VvB2kNLx4 2jmpEhQr3+46ZMdN3Gme8hP7GlLemuHn6H1CyEmjPIVCQijVpjbfeT+M49DwxXOxDLYc qQPAmUjpmcHu7ncIFfxYYDu83i9HXS4z5Gd/eMteN7F2OpaC15iHRMk0POCUAZLhL4OZ yOBFRYF1X2oIjA0u7ZFEqSwwCHy7bYnnknFG6lcPioIfYjklj7QR5JE5rJUDiZlbfRM/ k61Z0Jz9kcaq8VEuhVKZNKb/wvxapeVRjaiQmOl4MZzkF3rEXYZ5yOI9a2gckcrzpW71 I8Ig== X-Gm-Message-State: AOJu0YwZxptR/Dc+guYEmLiSq7mMrCAkp2CVJt1M7yfNHAyLoXosphpf g5xT0PRYOZFwQ2hCg1c7hnbjRlT5XniNdFmrEMxq5ubuBKFtK0T8q0yobZeQUG9emixlsKGx0OC xpeRTb3J1Aj3XJ1zjsrN5oW1+jlhHwSW/BcWx0AJeeegWY11TxmT908+bEsU91cqwZw== X-Gm-Gg: AfdE7ckoHjhp1OzQVxGxVWlpEhYTVwyXeNyKc10VR0CU2dSSRpElCp+aL2kKlbdaE2W r3CzhKYJNVP9OTCOrb+vfqrU/oCHS1RIj50hANd9aL1foGrb6JDpQSlKy0+NFbwMS7gNv50EHcD f1z40iMGRNy6eA1tYfoTI4mSdeOs/mwC0tu6rS0yEKX04ccZ+8q8krqVPPxbZhg1evzNRfwOX0F PrqhKuo6RmLyYiGOXLrNcNToYPNtCr5JSwdHLP40ZS8Lm2RPZXuisq2mWAwQLcrGKg2+kwVd1ze 4gXiW92FQW7+euwr2dGwO0jLnwvww4pydy041u8iD6EADYkp3iZ1lC7a+5M19Bsd10AHTkMWyb/ BD6Hq+atiblU0RM/Zsv49N/wvxMXjz3QYCh80bhyWnEHkkN9CEluGHiSOYsM= X-Received: by 2002:a17:903:f85:b0:2ca:106c:7122 with SMTP id d9443c01a7336-2ca106c7611mr18140695ad.9.1782740656519; Mon, 29 Jun 2026 06:44:16 -0700 (PDT) X-Received: by 2002:a17:903:f85:b0:2ca:106c:7122 with SMTP id d9443c01a7336-2ca106c7611mr18140385ad.9.1782740655957; Mon, 29 Jun 2026 06:44:15 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com, peter.maydell@linaro.org Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v5 63/77] target/hexagon: Define system, guest reg names Date: Mon, 29 Jun 2026 06:12:18 -0700 Message-Id: <20260629131232.2487780-64-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629131232.2487780-1-brian.cain@oss.qualcomm.com> References: <20260629131232.2487780-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: AW1haW4tMjYwNjI5MDExNCBTYWx0ZWRfXxck6bk7/7BHQ FBpjOVe6D0jTL51wwu16o940A5Z9BQ7eJxes2deVjd9RnV1eGUpz0R0IBHcV/pCJ1Rmi5TxriaJ nvx3q4Og3bmohWvJA298oKUSA0KzXHzYw7FTaXT7CoweKlLRj6zEJfYj7fJezPAgtkhjGl/tBLK zmDsveHuuQugsoA0+KIq+lzb70aXecQa5EyxOyJx7S4YNXhf0CxxL0aZdqtz9RnjaGQG9vnLPcW Hty1hn5LhiFVDiDqJGbdiNHU2xkl4gweGSlPNwTaY/ND7KbeVCtrt5T4vAa+CMmrFbT5BEeu+nE NVQzrPDrVZhAv1jwPLGeRUGWhBRvIktxHjxlqBcVyi6HGSwxuxautyu29Q5wPrnLVCeJ8qJEdZu nuDQWtSm/S4sLitViCdYaArTYYzOreUVAnN3aEx1nrFuXJbaoJxwaAyVzYAj+j9rnrgK7n325Qs KZ49VIMwkAUYGZeLnbg== X-Proofpoint-ORIG-GUID: NlyE-BvJVjC6rutvR8JdEpHLjNfpmZsU X-Authority-Analysis: v=2.4 cv=T6q8ifKQ c=1 sm=1 tr=0 ts=6a4276b1 cx=c_pps a=JL+w9abYAAE89/QcEU+0QA==: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=Y3CEZXcnQwYgoNz55sMA:9 a=QEXdDO2ut3YA:10 a=324X-CrmTo6CU4MGRt3R:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI5MDExNCBTYWx0ZWRfX5W1MDM+IIcRF qW7OV67qiS+Ynlb8OqC31BQCl6r7TIfXpzn2kM32lf7taM+BiuoWt+g2XnM2s0CARJ5rL3f/5YP KF/8LioxSf79bLtBXFJ7YjWS5PDIKcI= X-Proofpoint-GUID: NlyE-BvJVjC6rutvR8JdEpHLjNfpmZsU 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-29_03,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 priorityscore=1501 suspectscore=0 clxscore=1015 adultscore=0 lowpriorityscore=0 malwarescore=0 impostorscore=0 phishscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290114 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782740940559158500 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 Thu Jul 2 10:18:32 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=1782741003; cv=none; d=zohomail.com; s=zohoarc; b=mbtXtG/4m5cUloMB/0v+njLYix9ajNIU0HAuc2J7Fctvjolc8sr6DT/XciodN0SaJTKH+eQ3WPncAZJoHk7Bpz9/uWEA4WygVDMC4mtDlpFf8XarKbRlr/hLAr/Wy8Hz/q/F1rK81yJo4aq9YohRj4yFvG1kPo9wAA9NdYQVuUs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782741003; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=hT/sWKwVLTqH7rxhQH2HOsoe+WJk9zLe5gAObROYn5kpBo0YTynd0vFCP5cxVeTb8d/LDurRLTs85/mVL++z7KXN8VZuGHNDa2KxzSK8W3uQlgmNC+5XHSqEOJ7RvfH20Me9cp53GH+1e0RS6QDRQJFgZ2nT0FD441XPTBoaqwM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782741003409619.086099214403; Mon, 29 Jun 2026 06:50:03 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1weCIb-0004lb-Mz; Mon, 29 Jun 2026 09:45: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 1weCHe-0003jC-Jc for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:44: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 1weCHc-0006LH-7y for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:44:21 -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 65TATR4u2592803 for ; Mon, 29 Jun 2026 13:44:19 GMT Received: from mail-pl1-f200.google.com (mail-pl1-f200.google.com [209.85.214.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f3k7vhwud-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 13:44:18 +0000 (GMT) Received: by mail-pl1-f200.google.com with SMTP id d9443c01a7336-2c8284701c2so18083355ad.1 for ; Mon, 29 Jun 2026 06:44:18 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2c9b0992227sm48968555ad.37.2026.06.29.06.44.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Jun 2026 06:44: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= nqsoCKwlR/1AtxhbSkaDMpXnd9wjaz9i7dlB1dgLGBU=; b=WbrJVJA5TbvDDz2R CQNTEJEWp6j9nQImwPVXDUSnlWncPjCEzSEyRkOIpDbz+ANPlI2atBHy6BXYTeF3 VZBFk1szGpXR2zl4VVfeQuN5I2dhoMcQyjfyZGJ1CP6cMFVpwQ68M3yTv89Tarzq K3KMnhq3qdJJEUOHRnGCPMtmNV+wgAaKigaLDC+7iCGIPLcsdsgxn2YXnppgVEdo fRrOumbvpy+7PTH53cPhVjZrF4tzJiWacE0UsEbEO4NjNS+wcyswP94y4SHFUUeh 1QcOcZNygrjHdiIENUNDYWo57K69VmESdD+iJ6o1YPcrgL6lL0o2IWD8WkWvCL4L DSLybQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782740658; x=1783345458; 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=dXhYuQn93Q3jDs7ThzLejROwgHoBgelQCxYqNYuaGaJb3iEdRWd7NnDr27HrJmA7cC E3wcgUiO9oeydiYHov2UjIqSPV0NzfuKy/oHw8/nRG/RGfW/doWuaBZ3XlE7+TFre0I4 55YIqiipT8PV6p9Pbfp4zg/egFwZzkZT2asD8f7Vzb++0LXqcld7gaLHXEbugCjUWXuD oIViRcqgtqvxowHhQY1j5H5UFADlVNzwffgpbF+YtMVps8D1Y5sjIoPTXAgsyCgawYDK lp4td2tlP38TA6pnsivGuh7QzxJL6/46q23mUzn8sHLAjPhhUBrxw+bS2N9zIjLfvChX Q8NA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782740658; x=1783345458; 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=hZkYQTLkt9D3x3EmueOSgo3t+GkKddKAEW9060UI36ST+Yt9yGk+oooyzjQTgT9GYC Tp2fF828PxCxSS+g00xRGBmzGFCHcTK3tPpgEm1FA3Z3tgbRNVuV9reeagsr0h7NMMF0 9x/QBptGT3K/VEHV1qsSZwv80F8+HOpH4kdmHOPPYe3foZMOPWzVajW8padjK3vh153u TZv39kDCPrI6b665ScB0U/w37OzJ4CEcpnAwOs98cy40UbYY/fqLTFvG42jTFc4kjhHz sGJoSLsMMbO1VxyyKdB3IVhv6egjonRWRhnrkAP2OHCzZQuGDksSA3yL4Aibe70SACyD eOIw== X-Gm-Message-State: AOJu0YzDPIvQXeaJqVTlaYhLwVNHOcaFxwe5vVx9dwzBTxt3mnBuc0J4 GoQNU6XwbBhGplY1fW2ZRFDnVppNlIhEOUD8dYp8HE1Q5QyUU6TgBCCJR66BeksoEIozElO9276 cTF1i5n1ExpGMVG4Nfmutij4h4b7HTD7lYqwz7+XF7857XrLjHvjKPOdlSkzvfiQCkA== X-Gm-Gg: AfdE7cm8j3Ri4FJ9FrBxRp+6J8oqUv3J3vFBWJ4SqfUP5JyedgAP2TIoG2zCDYsXxqz ItweEHmQKgh4XCpbrRYyMEB/a+tMAsl1n9pyS/DQS1W2pJItjrtj1WGFdvLamAyJ3YgF2Nnonv/ bybbB7UCXkTn92lyR7cwEYz5irgYUYahnd7KyU5zA879/dJnYFmm4xknE2hmAZcw8JHdK1JFLiK 8nP8+/bT6l6Xao7VrOI48dSUKn1IXXPPMJz8pICrlVW8GAGEAb4iRUyNZS5k6bcYDfQvvY3s3Ks jhPNYA7OF/9OOA/TGLzLkL4DnM5hG9xn7RDB289/1zW+C5k2zr/nlvYTtJcojU1ROQ8Jbw+72KR +5aX9m9qGotDJQvzWA8QSoP19rUJwTMizIirp/21vyTJwGlR3olTCk+3GkJA= X-Received: by 2002:a17:902:e84b:b0:2c9:c991:6ed3 with SMTP id d9443c01a7336-2c9c9916fa3mr62720765ad.12.1782740657799; Mon, 29 Jun 2026 06:44:17 -0700 (PDT) X-Received: by 2002:a17:902:e84b:b0:2c9:c991:6ed3 with SMTP id d9443c01a7336-2c9c9916fa3mr62720405ad.12.1782740657291; Mon, 29 Jun 2026 06:44:17 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com, peter.maydell@linaro.org Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v5 64/77] target/hexagon: Add k0 {un,}lock Date: Mon, 29 Jun 2026 06:12:19 -0700 Message-Id: <20260629131232.2487780-65-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629131232.2487780-1-brian.cain@oss.qualcomm.com> References: <20260629131232.2487780-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: ks-rHLfEbT6mPIIbxS4ZQ5YGlxH4A8rn X-Authority-Analysis: v=2.4 cv=CqCPtH4D c=1 sm=1 tr=0 ts=6a4276b2 cx=c_pps a=IZJwPbhc+fLeJZngyXXI0A==: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=ZtvnA-OJD4c8FAOZTSoA:9 a=QEXdDO2ut3YA:10 a=uG9DUKGECoFWVXl0Dc02:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI5MDExNCBTYWx0ZWRfX0Rnm4GmhSFwd f0V26G4onjbQFAUwNjsgZT9vVJ4CLSi5w4In1hBafdg5B0VEpjo5J9Y0usFwV88ovMCJIYWCLiV t5AOf4bkA7iqkRvp9VeGngiWwTfO+og= X-Proofpoint-ORIG-GUID: ks-rHLfEbT6mPIIbxS4ZQ5YGlxH4A8rn X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDExNCBTYWx0ZWRfX182zOjQUbjVf /xP7Q05jKEGDZJnEoVboqUNvOE9jTaHKC3533ZhMBl8oxhcd1IhKLU8G1h8tVAIC8HR8cKEut5L vyMRJqw6WomJs0fReG95WQg7vqQw+kEy12R7A7aQD4YNKyujA8azr05KMwVvrLK+XPQgj35Yab3 7CfYLnCDDpTiJLtL1thmD9DHR0z+ZvLGTrdADnrK4y7+JrfGXIB6t3eeatZTYGvmT6K7coFrIbi +5sTYg6T1uYT1lvMxf7MLxUr45gMovBme/evx4RGBcPw6h9jrLviLTrCgQSP13hSOkk83LlWW7F Bj1jXclQwi520LZPMZY12JHMf+eWUl4Qqt5QH8lBCAB+LEnz6HEulgzuMcZGHoZw0kc2fCZE/5I 8dEJ67pJRLKsFh0kcmvbzYAv+LoiLxaqJ+DMJF2n4/qsTssUzDkPRnos9ubaihrWTJGLPvgvVyZ R0fw40mrmXqzRTD5rqw== 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-29_03,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 bulkscore=0 clxscore=1015 impostorscore=0 malwarescore=0 priorityscore=1501 spamscore=0 adultscore=0 suspectscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290114 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782741004838158500 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 Thu Jul 2 10:18:32 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=1782740943; cv=none; d=zohomail.com; s=zohoarc; b=VFRRn7p4l3JEATr8Dm+s88yWLkoFp6ZMDw9iP2/uK9EzQB0bHhfGYUcadjuDK+vaK+A0XnsmH5FMZ9gALraIIC+MQwjMVm9s1OsY3qfH7yPhpYVU8Osv0qhFEY+73Rb3LXuZL9mFmgR9MEVHo2/XvUNzlQc87l2eYTqykLQ6eRQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782740943; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=DWZj5/4FemUxMdTElE2HBPZiPpxSYaxeK96laa9uzP7XPuUnN/4lBo+hx7QloUlXq8EAz43ZsQU0LMKELYTE8AGSINfUHnAG91AfOUdaOBJehUZuLnBOO/+9LKExoTywk/ZwvlzClovcGh3GTkWMDckusrL6a5oyacfFw10VRTo= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782740943450574.6240666574763; Mon, 29 Jun 2026 06:49:03 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1weCIa-0004hU-CA; Mon, 29 Jun 2026 09:45: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 1weCHq-0003r6-2n for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:44:35 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1weCHo-0006Ld-BS for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:44:33 -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 65TASwLP2641470 for ; Mon, 29 Jun 2026 13:44:20 GMT Received: from mail-pl1-f200.google.com (mail-pl1-f200.google.com [209.85.214.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f3npes2v7-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 13:44:20 +0000 (GMT) Received: by mail-pl1-f200.google.com with SMTP id d9443c01a7336-2c9d85160caso10729745ad.1 for ; Mon, 29 Jun 2026 06:44: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 d9443c01a7336-2c9b0992227sm48968555ad.37.2026.06.29.06.44.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Jun 2026 06:44:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= k98P3mzy875bIQ72dfi4cpupNsJGfuDp4DlfWaLieyw=; b=SIrMvL9aL/tTQK8g Zy/pPMlhmw4/WVnUvTXuZZzI91WJzURPHC5fpC/4EjTlHdmbmHx5FGB+yLc6h9Rf QeuqG6wuLDHfqtccZ9dK9Hiw2hblA/G19NMj3qnFYV3P/UIsRI3bxILqbCjj432I lmhgWB6cFCn4fE9zW/pGg9UzYgeyUvz/fP+wnRQY0ywXFdlODwQC4Xklg34Nt7WT AB9k2t88ujTQH+GjJN+fk9+DMuWE3g6ifoikvvaBeX1PGwRwROHXCoz6k6d0Elti nkyJWoViGi5ejNUbc+K7NVBMIFF3mD+VeJQL8Gdh5frXSL41x0mYXQw4Au1shf3N Xn6ifg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782740660; x=1783345460; 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=kLT3uln05+wBHRRHvRlVMF35gSuAMn5TwLdjgZMa3JlliFdEYuVeJ7ar9PU3/9MJ2U mcm9fNi+hLaoDMxwbQcYSpM7x3ReImrUgWx6vjyz0tLoh8S52zwmnJYuXsldWRXun0Ea VKT/kWqYGFaJr/AYYAvX8BrQBnFWtnC7EZUTlAaaUoY+0R7MLXm88FejKIeFp0Lqzytz Ki0QXjXqhVg7Ksama1ue3XkdpBsxoU+1P4zCbUqinzJ01HPXWxpof6GpwvNc6gcg0sFd Yy0EPmC9PBkIqd2PSPgLiMqw2jp/dgcxR20pQh930/We35pnqO6xxWTQTZce9tsBewoN Rrtg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782740660; x=1783345460; 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=bEBg4glV/UhCr38uRmicmvxzPW1x3H6xuJ+O/FsXYTByKmyfsVI9RzvgN4iSFrp0Ux o6s5rfpiCP0kZW/EDOuRNzefzHrc/WjITZSg7TPWtU/gpmfMGFGpfC28e8ILtrNpNGWp xHez6tOASSQnc0lTOmxLUT3w9ZIRMg4usp9zU69VevCtRsR6bNHIqfC8Gi+AmhZrH+bH o/9ZJvr6UYrwqf77D68RWPejwJXqp2uZ9EZhNyRBOionfcFlNqdVdwsbf6SjgqT4tIP/ zVvjd1kydrK8zHzUGKKUybXvYXGAJHJBb4JbI80Cr9sVK+AVavxGQjXB9ryPXcEhQhjV 44IA== X-Gm-Message-State: AOJu0YwkVvRb9xl0YA3gsrMmxdVq5s3YF/nVRst3bPInPkaqdolbnuCA iKuhwHadYJG+km3JKXNfGcohwtEFMAfe5/iGfFgsO71bJoRa1GjJmsU78IW28ihiduybcCmoRyC I695c8gsMy0f+ckkssEb26P78wPT5HqxRtE/ObhuwH9NGUa40PsnQUeaqTxQemr0YYQ== X-Gm-Gg: AfdE7cmMAJgM4wQNr+OkiTgv06pyWzvEH0cyOsKkD/3Ei+2W7ITiUsVjEmZWA16DwOy DACa2KPalYWfdyqj0sgTF7pKSNNM5h1m2wYBiu6IJnAl3xYpGe43KG5NVTabf8bOs2gv3mx3L1W 0S836y39TDeCt6tH+oJcMSncECmIpcoKK0eeH8Rnt6NtTo+JOEoep3g5MN6tRBq603qLwWV4gq4 fE7ySLsaAgyZ322gUEchVcccP4dgqR41FbSy4t7HQbkcnpX7NWAZgcA7N3UjbVX6T2JwC/AU4rk S8c6Yf97RFU5DHDWmER3mjX0XebUiVz/yq2sZQO5kqi0QQBIqo6CEKQUqu1j17PFt/+xT5maNgx 1Bsc/ySv04rcJq8n4rVzhya2DDOBaehm9Jf1dKgncAl4R0L09uhtK6Rzv9yI= X-Received: by 2002:a17:902:cf12:b0:2ca:12aa:a390 with SMTP id d9443c01a7336-2ca12aaab7dmr13131815ad.0.1782740659880; Mon, 29 Jun 2026 06:44:19 -0700 (PDT) X-Received: by 2002:a17:902:cf12:b0:2ca:12aa:a390 with SMTP id d9443c01a7336-2ca12aaab7dmr13131605ad.0.1782740659368; Mon, 29 Jun 2026 06:44:19 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com, peter.maydell@linaro.org Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v5 65/77] target/hexagon: Add PC to raise_exception, use fTRAP() helper Date: Mon, 29 Jun 2026 06:12:20 -0700 Message-Id: <20260629131232.2487780-66-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629131232.2487780-1-brian.cain@oss.qualcomm.com> References: <20260629131232.2487780-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: AW1haW4tMjYwNjI5MDExNCBTYWx0ZWRfXx94Ky8k2euU5 demD4jr3Sinw/5otbsqllQ6g36N3YLR8xavRxGerpDYzkXmv7jnNiRqz/oJKzAMWLQXZHYk8b9f lnmXkfpJh1/awH4aE4lhboGgJ2mXbaWFdnbzv+oSTCx4QYWbFSs3hMXvD1KLALWCtTlwFzpZSTz v/Qd0IGNm3gY4+123ozrdQYz+SyIHWUFfJI6VEr97UkhACKF+y0a0D7xlAU9yUr6R9aMAg/FQo/ HabgwevDwLQYCx2l06hIg9y+z9I/Pq5/ljfYNyIZB7uKYjlEOCHMoFVc9RMCfoT1trQeti+VRl1 umpa4ccr0JtjuW2qKYRvSgUMt7HGXHa30mAL50IhF8Vg4fSUYRg3OKlZAcZUc3owGuST8MynoFM wFcK9RxJiusCzwVYwcQZizgQdjNnJiU8PQPbgNjIkLubCgJ3PEuRyM2oSjUefNmH74zZVsHoAD/ IvZPsg42jOxwoFLXSqA== X-Proofpoint-ORIG-GUID: CCU4k5GArym-ViIqxOlU-Gr64vNuGe1n X-Authority-Analysis: v=2.4 cv=T6q8ifKQ c=1 sm=1 tr=0 ts=6a4276b4 cx=c_pps a=IZJwPbhc+fLeJZngyXXI0A==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yOCtJkima9RkubShWh1s:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=4FQt9sIIQT5CW9ciUtIA:9 a=QEXdDO2ut3YA:10 a=uG9DUKGECoFWVXl0Dc02:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI5MDExNCBTYWx0ZWRfX+jY2xIYXUkPP 0nC8QWvxiOVMvgunkcKHbEuKUV5FgPHWWN/dfaNbr85PT74q+1qDPUt+r9SqyFlyTjUaNKN7OTS qlFVEc3X0BvkMqYcWRqN80Iaol/TTDU= X-Proofpoint-GUID: CCU4k5GArym-ViIqxOlU-Gr64vNuGe1n 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-29_03,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 priorityscore=1501 suspectscore=0 clxscore=1015 adultscore=0 lowpriorityscore=0 malwarescore=0 impostorscore=0 phishscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290114 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782740944346158500 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 Thu Jul 2 10:18:32 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=1782740749; cv=none; d=zohomail.com; s=zohoarc; b=jzBqafTW+Z/d4BYDdUwnA6syPrjlfkWaZFYxv127VWVQR2tEfOxlnxywQe0ISLOB/7T/fYYTPJKVIcFttRwptmkB8AdhOouu9p9nzDZGjmnLDpI/pf4YeqZmb/QsrCJJ5puJNRhgPk1Z0ZvDSAZfaU0eBMTGYvNLdtPgmaTIQOw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782740749; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=gog2HOl1hTVjcgXUorlahqZtkPdQQcmTa9EXkzzMHnnkt03EIEAmOl0RJ3IXBX742d1fsIT6X6rTuqyVhiFR5o4R+NXCm/7JrXN6RDFE8FuzrPYV81hHanQ882rvivYqkTdy0Pd3VOFKOblQZQPrW5S7zfFUb9l6HVryn4UduvQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782740749187598.7007595377933; Mon, 29 Jun 2026 06:45:49 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1weCIg-0005Ax-8E; Mon, 29 Jun 2026 09:45:26 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1weCHr-0003rC-A6 for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:44:35 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1weCHp-0006Lk-6Q for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:44:35 -0400 Received: from pps.filterd (m0279866.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65TASuGe2601187 for ; Mon, 29 Jun 2026 13:44:22 GMT Received: from mail-pl1-f197.google.com (mail-pl1-f197.google.com [209.85.214.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f3nnw93am-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 13:44:21 +0000 (GMT) Received: by mail-pl1-f197.google.com with SMTP id d9443c01a7336-2c79e5de32cso26130665ad.2 for ; Mon, 29 Jun 2026 06:44: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 d9443c01a7336-2c9b0992227sm48968555ad.37.2026.06.29.06.44.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Jun 2026 06:44: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= 1ECOxl3Fg5yOtnmQVv6BfaD55uXykPkSbZivFHhIDWY=; b=eMrC2K+0+lJI+Znr vB3SFVzo1/joTsl3knvZtHtaU1aCgQxEhHPXaAb1SLBbuTkV997LtPemsTc8FRsb Hrpw1zfyuV0kosGCzPF/WZuRS8wpm9rQdG2cTx6SLt9sv+/0iE4stH6fc8BxD4QJ rdqfJnTAy2YXq/F1K91qdUjMnos6P5WMEQ2nPAws5WVn1IOzUMofl9A2c0hkCTFR FGOc0RTdZ91JVDtgEoS98V+kSNsE7zNJUPKTJEokrKnIAOmCZEe2eprsUVpKjfWd esIHs/BOwFv6k63iwByrGb5OOrmwm625wJmoX+pw7zrR4jb88zRYSeMTkxGVZmfo 4AlKzg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782740661; x=1783345461; 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=LzTC4bNDN51uf5xkOk8gsTgrCGEd0LtVM+U62+fKiTnCb7ekvL4Bw1vEevdJUPuO8Z A+1YdQN2LvNlVUaeJCsYDMe/Um4DXHW4ONZGdCTPQyMTB8GdREp37i5aO08FATab7R3U BePT413W4c4+M0W5JRC34/aOJTO3OnpTKsSzrD3/TwhsL2stH3o2oFV+WjZaWnu9CPKt 5FbpzJkaqYCix8p3R58mCXZHomBu0CHsa7kgd4vliyzKZdOlxGKTEZSPoXylXY86RUih GSPRv54qCcO0zy83xPNyYZbgHbMWEbyp57eXfxbDjRYZDc7mSXfWrJyaFF0n1PPjdHLJ brDA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782740661; x=1783345461; 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=SFxsXPH7OnLBaX7qry8L60blY/N7ovg+Pa/GslYObMCaBVsqMN8UPDvIuNLocuatJ4 eSFzURIhyo36eWWFa0GYwwytMjGexV2Vvm5Wwb//N44OIES4tWYlzqwfyGZkV7fFksvw PEglUmia/zWxQjJPd/7qGxU+hDR5M2Gd0imAoY8D1SZpO3MUntHhvCw17T0dUyOKgH3u w0N5jbbOjHFysucjBSOsT3AWIzCBo9l6i1DQKkFcnO4igL51RtEVnu46PV53iAeQ7Gbt mW8zgNBBjameaibd3TQIhrmYtolmWEQ3e6AGfOEcuxig1m9AKeN77Ehb/OowrmP25/Tc Hk7A== X-Gm-Message-State: AOJu0Yy6OW0hjd+IiK+5olRHmgVzW/iwz6EU29/3knIE4cwoPdegawl9 IuCsQ14Q8yOAACDEIY/UbTku05FHudUUitr1RJTJIGW49EV9rFB4uH6SpCMINmf8e1AyblQbqQL aumwuKpzJOSyFCcpcMAqZpWN/10m+SG869lgp7vili5sM1PtM3E5pdTjeNlv2+RRaOA== X-Gm-Gg: AfdE7ck+/yVYOQc38RlYA0fCl8qMlO30Hp/qGloKArutCNca6IJ6006gb82EfM9YPNz 34k7n5RxrE7s0yTO8PKwRaU4VM19fFYs+pJbaey4QLs3BQCacZ6aEL40wVBm2fWMYfYZyGWlEm0 rxs12ef04sQEFUkRFbVnedwltEI36MWrH6zid7lbl09cWaOjW4yDdNUqwa6K1SXKedlkpZ8yhBo 8vQVoDsJvJfcV5PDvi1uFP9p3AiQODMpd34Tihd93RoqlnYLvBz73QwHCAUuJW8eBzP9z+cAWXA buH+q6dRlR2XaAF9N6+862M95XHRN1Po+EocopefV1hj1k4VXeHkxMQsvXpwgUQIdXfLF3DC6+h WKzeXn73PUctGWiIwTaCg+WKx1lxgZXzhmhvsKAZrB+XOxaRZFslKUm/yWio= X-Received: by 2002:a17:903:191:b0:2c9:c083:cd50 with SMTP id d9443c01a7336-2c9c083d4a6mr58457095ad.17.1782740661100; Mon, 29 Jun 2026 06:44:21 -0700 (PDT) X-Received: by 2002:a17:903:191:b0:2c9:c083:cd50 with SMTP id d9443c01a7336-2c9c083d4a6mr58456825ad.17.1782740660586; Mon, 29 Jun 2026 06:44:20 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com, peter.maydell@linaro.org Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v5 66/77] target/hexagon: Add TCG overrides for transfer insts Date: Mon, 29 Jun 2026 06:12:21 -0700 Message-Id: <20260629131232.2487780-67-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629131232.2487780-1-brian.cain@oss.qualcomm.com> References: <20260629131232.2487780-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: AW1haW4tMjYwNjI5MDExNCBTYWx0ZWRfX5XEJKyyDUh3+ qlznpwQ5Q+VEqqIkn/TrTZuTlgzOGv4tR7LYHuVTUplUv4FW5h8gxTx2+YEh7x5GNP6QwF7/LFB wPZ/tYqum10E8UZjn5QAWx980eV8+bU= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDExNCBTYWx0ZWRfX8R5iMi2Elk/a KF8EXttHCXT1xsmdmKiwtkGW+Jlg8BERcoKHMxPlIRcL2gxN8TqnaXKxZtfhgKAB/yHLPobNW3J ZZoJV5zYX3KO6gl3xvHigYEYXTP6HzQTTO1V7vUzgOJXQBjKn5/OhLvw3iI4oACl4A2zkAAYfVf xHaSg/X3R3Ak806rQNTLs3OdksEW1ZsVYowCS6DHVKw8aI5cNF0dsQVA6JDBzlSDQzEDimftJVr u7wIkUh0TSCdY/HToLc0BpPdK1ccNaoa26DSQTUFPYpaIX/tkAsoQYl82e2zZTcTUsvLT9PmqRr 9IvdBXR8uANnvbGdYjtl4yngYMwwGFKkA9tYnCTWKWa56ibNnzTTpT126s92K3Czl4grArcZNHG nGpKQHbIK7mZHV0l6vtCPKkUK9BjpLNIpo++VBy2ynsEahwhVi4JrJjXCGMfPpG8seC2rrl3s+J NvoAi/uemIIjIsRbYnA== X-Proofpoint-GUID: TinJzsQrI7MnpuvB6p3dx5WcjDCXwZNp X-Authority-Analysis: v=2.4 cv=cefiaHDM c=1 sm=1 tr=0 ts=6a4276b5 cx=c_pps a=cmESyDAEBpBGqyK7t0alAg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=YMgV9FUhrdKAYTUUvYB2:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=LN73x9Sj_Gq4gUX8wwYA:9 a=QEXdDO2ut3YA:10 a=1OuFwYUASf3TG4hYMiVC:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: TinJzsQrI7MnpuvB6p3dx5WcjDCXwZNp 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-29_03,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 impostorscore=0 lowpriorityscore=0 malwarescore=0 bulkscore=0 suspectscore=0 clxscore=1015 priorityscore=1501 adultscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290114 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782740750912158500 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 Thu Jul 2 10:18:32 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=1782740873; cv=none; d=zohomail.com; s=zohoarc; b=aBSeh655tz4vNGMvL9ssbQ2gi2luVS0hWKHCUqz/PogNNJdrofkcNp13xrpvWEjurlWnmmkmWZKMqRO3fc1IRUuMg7yfIaITbrPeYLbeBbniV1hBVp1PDX51H2G2Aa92AKFQ664H/WTVml/vA4/+pDAxzmk5xh3Yy4SwQHZgiSg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782740873; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=kyX+VgOpxgo8rgi4hqX1ri2+64HwCcb0GORIwdR1Iv5/7Aa8saSf0A/6LjsUAK5IGV8JgtMbHh+UJURi8P8u9D1T2eg791NzBlY5kTOeUhpRwx9Fcgd8l4rZy3ks0V0L0Dej2n/ILSDeJ4KV7qbNH6rbhv3TYXSGvIRJDcbSVCo= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782740873884570.9075326254904; Mon, 29 Jun 2026 06:47:53 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1weCIV-0004aX-Q9; Mon, 29 Jun 2026 09:45: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 1weCHk-0003nl-Bj for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:44:29 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1weCHh-0006MK-V8 for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:44:28 -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 65TATKq62656139 for ; Mon, 29 Jun 2026 13:44:25 GMT Received: from mail-pl1-f197.google.com (mail-pl1-f197.google.com [209.85.214.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f3np7h311-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 13:44:24 +0000 (GMT) Received: by mail-pl1-f197.google.com with SMTP id d9443c01a7336-2c9e994869aso6915645ad.0 for ; Mon, 29 Jun 2026 06:44: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 d9443c01a7336-2c9b0992227sm48968555ad.37.2026.06.29.06.44.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Jun 2026 06:44: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= W9aRU99FRJkCFdVjE14GeGuaLGKvifAUAOZ13h7xav8=; b=AINdiusTcjjc2OsY LULNCN516Uo8S8NyDv0G85mMkPzEQdCGbTxBTyCMbfhdZjX2rJYlW5hZarSUkJdP cF3a5IuOihK3wfG8ZeE+ycqWUlJCACGgvvFYSzRmOmQ00PwIwHbYLY9kyYg8Ta7y SavGxKi/mUkPzARVSrIVhase88FpuzrN5z/HvOa18r3W9JYfse3bRG7nPpS50lD/ rK8U2Lfo9e+Y0iw8qMZpJpuRmhz6KCvPxO7q+976dPvrEoHI/TxVbt0VakXGR2dN jZAGUixiwQy6zP8pvxchyOluZSQn5bJ0bhTw0eXUJJsfFSvROsa6aJPmRJRKjv3R +tYzXA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782740664; x=1783345464; 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=cpXLM9v9MRs0FI2cIHNGpdtqIeJzFx5R8npplH9KyV4fPe3YA4VHATMzvfEKEMtsHp aMV2ZC2p81ejZyruzaZbW57HtNWNmtyD3ug1VqWrOFGz5h3iyrRdshUUdsUI9+5JstvU mGeN99lh09STo4tgRWmm3aEAM1pTgHHKGQgzN7TyLfFx+TMu933Kj/k3QgxBQyHELR19 oturja0PTLYlYWU+pngwZHDCG8isZmQT3qqy4GuwzwJvpKdUB2LiHNbSCAWCw1S7CnPS i1U0bWoHQG04krTU9/3Z7FoszZOCfNioBydpzn8UZaZoAEQnSWhMziPMeNajAd2rfYQY xdGA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782740664; x=1783345464; 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=F4taceoKhhcZR5IhMh1ugxoEK+pefOAf6u3MZCOI8ZcZ4F2Hlgsr7Ej2ywHN13L5S6 vTkRB5WBk6oFWR4lrAnWLcr7VYMyCa/CKKC5iTGDUUlEJu63ZM297/2qtX2Ojx2mpRQ4 GSz1Fg7AH6QNUFDZho4zLx73gXX4RjGE1qaT+VRGFL5VhbqCbgtLGkxXBRbcGz+FBKW7 5Qe+Ekx0tvze49aL5ZMRHbEJebnGuK42N/Nm1k3meEA/Zwg5s+9Kq3SoDxVs618dT5Tm sB04o4a1axM9uRyWnTMRjCWIu0bcdM1MnRBSrCUAIFbeA8EakIt4/shYMTY778JaJIU/ PY7Q== X-Gm-Message-State: AOJu0Yw+68+6QainHf1OZB3M6aUpktFt0qiLQYUgp5PKigbKrd+e9sNr r+9z+tu0DIy9yjEQoNcwX0MpOOIyk24DFtOUn/iXMUxVy28PoBMVcJhKqyLpaBq2EcLlO8EVaW4 1ynlVlZ4e5fwjTfQkSHH4MP6Tv8qXzKYGvMrgDArXNZX/N2bQ+QW6m+GgZKJDwb6sXA== X-Gm-Gg: AfdE7cljKdaK/fgNMPXqnymk3kBVslSwIHMM8kbjhKuOrxK4uOY+9hE5bRxJ8DlwPyX KuFk9ZfhEfIhwljj3saS+9HVDXz+UyQG2X8TjrCClCuYO4Z5x0fDIdzvwCMa9w0k47CH3oAboaB b/fgtR1XtBUn2Wo3xXMr7U9vyMzE9lej9U2dUS7KIwXN8Qn1qjzMwqTQTuGLHmaJUQXOEiykWsW IkochOUtjPt0ePY3jXkOvTlgEmiBq967oHSgGnxuz+/3UR6jGelymwqChwmkrwiEPpH5fpIMsRH GWOI4xOxxMzHF2qph+Rj7U7P3ZEJWsOisfuaHWrmEQ4uNqVDoIYXicHTvBsywoobgUZSZ9+ydQr 5iPwr+8xxMTO17CL37JblxXreP9YJjp5up3NiJBJj+E5uZiqxjPopTjGo2qE= X-Received: by 2002:a17:903:2f8b:b0:2c8:1c3e:9636 with SMTP id d9443c01a7336-2c9860ba606mr92809935ad.25.1782740663946; Mon, 29 Jun 2026 06:44:23 -0700 (PDT) X-Received: by 2002:a17:903:2f8b:b0:2c8:1c3e:9636 with SMTP id d9443c01a7336-2c9860ba606mr92809605ad.25.1782740663490; Mon, 29 Jun 2026 06:44:23 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com, peter.maydell@linaro.org Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v5 67/77] target/hexagon: Add support for loadw_phys Date: Mon, 29 Jun 2026 06:12:22 -0700 Message-Id: <20260629131232.2487780-68-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629131232.2487780-1-brian.cain@oss.qualcomm.com> References: <20260629131232.2487780-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: AW1haW4tMjYwNjI5MDExNCBTYWx0ZWRfXwKy0XZ3YkuXH rnUoH5CNmfdJOZjLyMnQO+In5+S9jjXXGr+AhMK2RVfcJhktAU0beZgr2aQvxZoEPyVrgeuEhJq 5QMZGo6M1M/79cw4E0Dzvi7vta0eNIeYwbfc4HZUF2likxHodppcwPxLUm5ONO2qUkWHeQBhbMf o/mhEeNsXBPBKKqoHqgxC+DjbCtoeLXUfA9i+7+LauUEgg5M9k8nlGp92P0NR0fGbKtAZ3XyMI0 1sgyigYeLQfCSJC+U2gM81gahAcyFH3JhoDgkI4XR3mev2H4xPD35ZRN+6ydfoKqXSAJX/YBhZ3 mC0BjXGVfzbzrhCYIU5nvcIBOZ+4n8QVeQ/hOt0RPY7LtmUZnRRxquc9hF84pYTUdbMhAteeId6 bVcb6KES+ZZ6t9i43pqIVsPXccBA2xSJM3ZxLUGLNayVBcBLTBTkJkzn2wFuVLMFEUM63R29/W0 YqM6bX3wNMRFb0z4X+Q== X-Proofpoint-GUID: 5Nvl8s0_nvbqeNwJl3rAEGiF9u9Sljan X-Proofpoint-ORIG-GUID: 5Nvl8s0_nvbqeNwJl3rAEGiF9u9Sljan X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI5MDExNCBTYWx0ZWRfX1hxbGn9jgy3n Z/e6N+BLKzQ2T1xuDFaFLT0HwKvvlC8y/nBdNWUebDUKEBjxxuIMe6T6eQnu5cwHH4ihxD1Mmbj lTM9W3Jo0NGayFZLX7dF4IIimg6B6yY= X-Authority-Analysis: v=2.4 cv=OcWoyBTY c=1 sm=1 tr=0 ts=6a4276b8 cx=c_pps a=cmESyDAEBpBGqyK7t0alAg==: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=M_0_kNSAHlZdZebFLzYA:9 a=QEXdDO2ut3YA:10 a=1OuFwYUASf3TG4hYMiVC:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-29_03,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 adultscore=0 spamscore=0 clxscore=1015 phishscore=0 bulkscore=0 suspectscore=0 impostorscore=0 malwarescore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290114 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782740875835158500 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 Thu Jul 2 10:18:32 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=1782740829; cv=none; d=zohomail.com; s=zohoarc; b=PuAaKk8I5jzORY84HupXyLpXix0G44/T/KDFPO318Arxu4odROr7464tOWj2D6f4UzcQTZihN8JLYHjUNqAToBq8GmHaAjkGL6DboWDW4WCyM3CFFMEV9PG+1oTuqKoXIuAqG1WKX6ZTkuUJEHYYM3b781lzpvl43odUYslSEgQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782740829; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=MxBuhhBoZnEPkHB0+f1aPM9sodFTD909MON99baP25zIwHVbrcVGxXzxyv7Gvho/6vIOb6PjXwUUwZf7h4GZWiNFPmHdrZlqBtIIo/YIMN8HGaiwk7kblQ3Qb8V1J3BzyvVLZcTT0am5bDvgOJYd/u5tKokmfGIRikXXsYTuBUI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782740829611743.5612713569371; Mon, 29 Jun 2026 06:47:09 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1weCIq-0005yn-Mf; Mon, 29 Jun 2026 09:45: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 1weCHu-0003t7-U6 for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:44: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 1weCHt-0006MP-BA for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:44:38 -0400 Received: from pps.filterd (m0279866.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65TASuGg2601187 for ; Mon, 29 Jun 2026 13:44:26 GMT Received: from mail-pj1-f71.google.com (mail-pj1-f71.google.com [209.85.216.71]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f3nnw93ax-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 13:44:25 +0000 (GMT) Received: by mail-pj1-f71.google.com with SMTP id 98e67ed59e1d1-37fe90ee192so1235769a91.3 for ; Mon, 29 Jun 2026 06:44: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 d9443c01a7336-2c9b0992227sm48968555ad.37.2026.06.29.06.44.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Jun 2026 06:44: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= c10dnjx3jWBtOFG53LaPJvlCxFR1rsBjBNQjpvdRffY=; b=kNsdpf1oO7Pn9iNl 8At2cVzqNlw9pRt1pBSKfBVcBSuKqhGJAbKgEr4LFGm/Q2bdxFrlq9htM2+hErJ1 9TKo0KV8BgXBN2U30IvsUiNR2QMQEi4klVTOWlkMmE2jn17BNgllqMPpUQZ33dtI C3aQyj9xMd6J5450WdG2wGKBDuvXUvVogvD6cHaPRMhEa1GQhpAASetZN/V+jLCY LH4jq7HTu1yPAN6Q9HBincltaYYaPMrBQhgs/yWPpsOm8wPuR3YtGM9oahmfS1k3 kE6nPiFZgoHi8JH/M51OFnMhEVySqEW+wyhsGy2wySO0Z6bQ7e/jOCe6cO1zHBLX pSX1Cg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782740665; x=1783345465; 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=jJYMG8WgYk3Zl8VKtQ3ZprJ/mXqrHBdg9XRAclzjBQUbw/KUwWbVxBy1XS5+lksvI9 gN1tplVtL0ygvtcl+PzU6VkH+ZoAdie4nIxOY/7wyGEJVp77Ubg24Ouy9vvycvkYE/OT H1SBKz9bX0fXMl2ykXX6GWbXkWLM7RFvyagosrItLprDqi4AS/K0luph+lQcW3WKPv/d jt5/eWB84DPaAdIIwdmO6x0hDcJYF07DoinZm3JHNPiCDTvCIgoaOBTQBEo/hZF7z9j5 jTQJ3T7ZdzjtKNLAbrfPWgTjAqLjPwyC/mJXWmsAZMOs7p4xNCvnWtbBuHQSARzcRKwQ E/qw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782740665; x=1783345465; 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=EF8jGFDhHN30AHWby9HjHh0QkKempy44or7Rn22mBznwY053v59U4pkXz/VP6NjTy7 l9iJWX3UnC7mxRhigNgv4qeIFcMFNLQ4BARkMlzgqlRZcyM8aenKEM9k4hgfUwBr/BbA 03s2A7RGVKzWkiYe8AwR1Ok4EbeuTByDs6H1O1wCs3DjaHyH5rxx0HxstG0yVy01Rii/ 1TgVEyKR+XCq6QT+UbiwFSPynKt5TF5OObYyLs7Q8+EeXYgoKC+b2zTT9u4WUfSMERoF o5vbjj203Gz19Zv2ngnSJb5TzwF8wHZc5cfaz0+qGGdtnfGG7oGhqSBVHLrFuankxGef YG3A== X-Gm-Message-State: AOJu0YzPfeOc4rj0h7Mx5h1UPHWReYIAqMxeI1FZab0AFUVoVA5N2RGF cG1fP+bKJRyxUus5Fot5wdaIX59mmc2KnELgrGw0aEYJEp/+/N91o95qyBl7jV/5/CzsmAnXJae gO4hsHJF6Ci8l2eTrF0nu0xw4AwWqI74tPRXStxi2uVKiToUQsNeVy15VEB9M3WfbPA== X-Gm-Gg: AfdE7cnAec9ZPtzcUTlnjngXRZ20EUGY1r0YsOcPBh6tgOa6Ttb4AWxAZtdxcraDLf0 DQVKYo3HLXsfiAlhrKWPZYe9XwDC5cX8PRxLpL/8Q5aKnxf02EvMbpv/MHEdbK9qoFAnd6U2Mot G8VchotYfa1364jb2CxrqssUB4K9qoU4pgeK8e5BMyzUeuO4LdRJ8V6YEk/hol/wPBbGMzIhYAk 2tdO1X63VfT2csqY8nctprwwq+NjUQdRf8KEKt/Dj0D36kOmLoIcVZJj0KxbahcvwB5HvhojFfj 4Ij49YTbXicA8RSwGTJKC1Dz35qYxdAykg9XiV4UaC/3LFg02/6tziFseE7QMYetIlAUfvCrw7h Sinp9YRW/Sig0Wzt+2M2Rkk8Dc6jYVlQngImFKK2F2yqC7ZA7CXWNN+z6ik8= X-Received: by 2002:a17:903:1850:b0:2c9:dbb5:c1ec with SMTP id d9443c01a7336-2c9dbb5c4f3mr51529915ad.47.1782740665246; Mon, 29 Jun 2026 06:44:25 -0700 (PDT) X-Received: by 2002:a17:903:1850:b0:2c9:dbb5:c1ec with SMTP id d9443c01a7336-2c9dbb5c4f3mr51529645ad.47.1782740664796; Mon, 29 Jun 2026 06:44:24 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com, peter.maydell@linaro.org Cc: brian.cain@oss.qualcomm.com, Matheus Tavares Bernardino , Taylor Simpson , Pierrick Bouvier Subject: [PULL v5 68/77] target/hexagon: Add guest reg reading functionality Date: Mon, 29 Jun 2026 06:12:23 -0700 Message-Id: <20260629131232.2487780-69-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629131232.2487780-1-brian.cain@oss.qualcomm.com> References: <20260629131232.2487780-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: AW1haW4tMjYwNjI5MDExNCBTYWx0ZWRfX2cqRsw9q3PqO DtsHc67+IRM7C80jIDMUsPBP8InzM5sJ6GIgTSqvW0v6947rl1LkHLcvBDN6ugtfu//01QW97tG ZHIXRH2om+Ewvij0x0rjO8v/0uqZNUg= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDExNCBTYWx0ZWRfX3AtpI1r9DfDU 4PtUd+UYOXDF+dEcLLan4X5DtxiDAubnFGv+PYd5GG7ZpvKoWt+aoOXOJJYMFV7EcgxHt8kBs+9 5gU4OMCRwzk4Rq9gD7TtCyWtKqgfm2MwYPyJ5UBCLDIo+y7Vth9PC2Whcy4DLfTo9DN01jqWGOW bHTG4/af5B39g9JIEMTORikM2QG0J7PXHnPGtpKjgC0O8gCEH6qsMn1VPjl6Wl/8HzpG2P7pmW0 8+JLgzX3Dxx7a74R+Nk+hUfd1dagiVge0jgU16beirpCzvvDPD4GNLXLXxdMJE+LMCGjMetuPFk yNtdptPVwUY+1IIth274rKuj4sGsdBVydboFeVTKtNC6wAnRVHgiy8TGfieRkbHWBm9LD/K7weD OXlJEe7nOwJcjKX2fC3EcPbDqLTt+H9W0CIV+kHJqLsFtO6morkww1XT9rVTdeYrH0jWfuSd/G4 VBs2bcgdKxfnfdWvPMQ== X-Proofpoint-GUID: lbfKsO8eYQWvTG3CJOUkzLX-NzhPBqJt X-Authority-Analysis: v=2.4 cv=cefiaHDM c=1 sm=1 tr=0 ts=6a4276b9 cx=c_pps a=UNFcQwm+pnOIJct1K4W+Mw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=YMgV9FUhrdKAYTUUvYB2:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=IJQQmebJWjVxhimlKuwA:9 a=QEXdDO2ut3YA:10 a=uKXjsCUrEbL0IQVhDsJ9:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: lbfKsO8eYQWvTG3CJOUkzLX-NzhPBqJt 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-29_03,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 impostorscore=0 lowpriorityscore=0 malwarescore=0 bulkscore=0 suspectscore=0 clxscore=1015 priorityscore=1501 adultscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290114 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782740831544158500 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 Thu Jul 2 10:18:32 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=1782741069; cv=none; d=zohomail.com; s=zohoarc; b=U7W6f/ZhsjyvDkS2VWRTdMNAenIj/GhuUQN/4IdC9V+PhY/Jot7+EEr7NlpIW3GvLwEduQ5L1M/zM2tfsL6IPMw2IfKLge7L92J6uEeNqeHKSBKBjHoZeJmuluZ/3IEDRQAP38bXcZR1N9MpWlYoctkODc4H8oVhDNqqFjPe5Bs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782741069; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=dvXlGm0osYxjT8oKC7dbh/xHzFemxT6yZaPyHKpfHwE/nMFv7noGafNLqITp+RKjcW03iq8MOqk7fomIa0e+eWRQdL+nS8jbJNJvt/rXp83QQTc2yo/cb0RHXpR06MPde8L86Ja+e6IiDSIgkkADN0YKHZ0SP7VnPJxPsEPZJ8E= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782741069348448.83545078850057; Mon, 29 Jun 2026 06: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 1weCIf-00052h-9g; Mon, 29 Jun 2026 09:45: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 1weCHn-0003oc-5m for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:44: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 1weCHl-0006Ms-10 for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:44:30 -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 65TATKho2656133 for ; Mon, 29 Jun 2026 13:44:28 GMT Received: from mail-pl1-f200.google.com (mail-pl1-f200.google.com [209.85.214.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f3np7h317-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 13:44:27 +0000 (GMT) Received: by mail-pl1-f200.google.com with SMTP id d9443c01a7336-2c9b1b608e2so18074225ad.3 for ; Mon, 29 Jun 2026 06:44: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 d9443c01a7336-2c9b0992227sm48968555ad.37.2026.06.29.06.44.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Jun 2026 06:44:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:content-type:date:from :in-reply-to:message-id:mime-version:references:subject:to; s= qcppdkim1; bh=IR53Mjz5etxJrjMQaZOHC4cu/qgzTKOGEQyPVYlQwQ0=; b=ME 0VvZVaAcLFz9UyZ3tvj9QUZpadwOtxApfsoSQQHcFNMyJ394+eQqFG/pAiMsucI3 6IFdz+dlz6XpX763UuDDkg0PsgttiPGgq7DAazojidlNl6C0AUZkxUQMdZrgLEcW c049Cht68hvtiY9sBYHYls3gxRmSJk00R5fwjrBZM7yZBm1/pTPr+b+JwBEf1yNk uJVKuZbzS3OqdznrUdnmjRwZaZmkxYjHGV1005oQ75nU3w3pbosSI4kNb3TGhw24 r9Hbfqi9NswFACXzJJFO6oAsE/MIvSYzS6myFuZzgZqKS/wukVdveQ98kZwXOOQ8 Zk1vZd5FspCqxHY9N6pA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782740667; x=1783345467; 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=M6EHv3yXwWGeVr3i0+EDd45JKWt4lLEDCNy0n+eHGqpd6uhXpLYQ4lNqn3xMftN6Sx IhPG1rbZT8k8IhboZLNYB7lTDOXSgy8mE9EI2bIpGXKUH+e4I2pBYraMLL9dflE7IGkX ts/Mx2TcXN3sMPXjuXyxbl9Wcht90TGX2b4ctFd+3su0lTBCsKJakfyH+MeInqLXSV7Z aVYU1Lh3WiP97sErxteDuCD/UxVE0udWW5I5m0kjQQ3J9l4igwrqc7siAuwutFNlfasz S63XKHZchrWFf1D+ByRAICmqI+m3nsVvtIGT5P52GeyFPoK8PxYM6CcAr6nZ92eoJMUs nddw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782740667; x=1783345467; 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=Rpyn06iUU7uOmpXUJtlNTAQhTokY6Lf+TBIgSNsoor64oCtDiOpp1RbKreNyBfzGbR D+OyBbvtbiM9hoFChKE62XPV+lsDDZZEJEDk8AqGeUj/7r/iszKqs6/PqJeaHwVogOYS xn4umeDtCQiW+K1ZrwsvxfeP90UHAHLGt+go5br54p3GKP2LXqBhGOxUECMKTfQleUVw /7sfU0RNfitA+hyFJPsdsMxJUPC22H1cdpbWvxbAXW7mu4/84mvUgAGnzk4HYsEMRqpq gRDS2YZvf0ZdogFnGltJRAdO4KGevnX3uQVUtu2G5NZVdtMZJCLBWBAUOvupR+MBh1Qi uKEw== X-Gm-Message-State: AOJu0YxMwat1XeRqm8QF3z+dRTLV0cT88uswJpEw9qwUYqFg5IlFe3x3 2DVJ9ceBEurRosdNg0wlij19siPIUdYmSJExkWdCGNU+d2JobMD/6gQ+zZwlU8gw42JdxjJ2vvr sjiwyqulhV6aANwhkadQQFlrzHgyI5IzvmHls7gljBgfwjygL72Dgiq/hc0VBI8nFaQ== X-Gm-Gg: AfdE7clkVozTtdkNSdbsjtlQ8/N2IPAfif+0/aujeKDLhcFuPuz9Cf83Jyvaph6I4fx WqkA0y2iCJCYtO8qJNf+CloU6VbebdUlRu3pYAoJ2JPLVslNNCTDOPkNnOGHo4myHZQ0z00XCJ0 uZHSk+sVPUW5iEwGP7EWD+RYuyLLdIclLeAkpmCJ91Pe5gdAKHUd07uLwAQw6MY8d1a4p8B10gh fJ/oF/RLgx0GioL/qZhZc7u6rrl1J0R+np9DJSD2VqsRjBWaKGswac6whg/5nP3H5SvTGGaOFUI snvQdCIW7V6KevboeoU6aMjrz8vZWKpDpMj8z3JtLOac4UejSeeK0NjbtGAGqWQ4N382VKPYAjw gB7E91PBVPNlS/tC4Ac3EA2Uh3H+LPQxDL7BawPCZs1pMlhtB2NHspIwSkmo= X-Received: by 2002:a17:902:da92:b0:2ca:17e2:2acc with SMTP id d9443c01a7336-2ca17e22ca7mr11589945ad.21.1782740666979; Mon, 29 Jun 2026 06:44:26 -0700 (PDT) X-Received: by 2002:a17:902:da92:b0:2ca:17e2:2acc with SMTP id d9443c01a7336-2ca17e22ca7mr11589625ad.21.1782740666425; Mon, 29 Jun 2026 06:44:26 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com, peter.maydell@linaro.org Cc: brian.cain@oss.qualcomm.com, Sid Manning , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Pierrick Bouvier Subject: [PULL v5 69/77] hw/hexagon: Add globalreg model Date: Mon, 29 Jun 2026 06:12:24 -0700 Message-Id: <20260629131232.2487780-70-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629131232.2487780-1-brian.cain@oss.qualcomm.com> References: <20260629131232.2487780-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDExNCBTYWx0ZWRfXxgl1lzPjRan1 x7G4iXyE11CstAYFO4yt33LBXRQEqnxMFQvgfEsgIwS/3aUh+YkOZSxQgi4yy0FqSlITVHsI+Da SVMIEHIpAXZV4l656U0lBG7DRRZLU6M6Nq4NTYpTxvbuIdsdLapwaeuG2pGS0pOExVlMBoIFAYm X/7Dnpp1Kan3m507KsI29Mb5xCIU6HyD26LQcPmvRUmv6gSOEQW7CipvG64Z7TBQddYwPlokjhW cMK3xjDTgwHeYKfDALtAm4XZJn7FhDqqdX14CLlX6xublHvHbgkqb9VhFuQwuaP0C3zDepPjW/z MOhx/ILOcV4JNNESm3fvTuR+9KQn4gL84HLLFplhIzxpqTp4xDOrWy2x8nrAI85tQSml3eQcGeV Q2OYaprybHI8IIwaG3DycbcsdfNIe0kn6uX1K+MjiBtQUuaPZZcMyhbLtTIKuC5ZX3Xjhgq4vV4 RSHMLqTnuTVhhHx/kaA== X-Proofpoint-GUID: PDnQ5wM354ZwWnE9vWU0UxhOhB2vcUdo X-Proofpoint-ORIG-GUID: PDnQ5wM354ZwWnE9vWU0UxhOhB2vcUdo X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI5MDExNCBTYWx0ZWRfXwZchNWkAFvnV hi3FcEHCNwwAxU09LaE9dJHg89wROJ+d00Vcg40EniWOe07CV63oUSCsthbHHOHTf4i3J4gog2/ WCrxmEkhT8MSNu28OeolqSQ7LSpDSBY= X-Authority-Analysis: v=2.4 cv=OcWoyBTY c=1 sm=1 tr=0 ts=6a4276bc cx=c_pps a=IZJwPbhc+fLeJZngyXXI0A==: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=EUspDBNiAAAA:8 a=KKAkSRfTAAAA:8 a=ykHTVMA0J60qDn7DFlgA:9 a=QEXdDO2ut3YA:10 a=uG9DUKGECoFWVXl0Dc02: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-29_03,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 adultscore=0 spamscore=0 clxscore=1015 phishscore=0 bulkscore=0 suspectscore=0 impostorscore=0 malwarescore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290114 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782741071255158500 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 Thu Jul 2 10:18:32 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=1782740847; cv=none; d=zohomail.com; s=zohoarc; b=WbgkZvwhuEGnBPwd0DjYbwb/ojeGQofclDte2EDOQcebdnnlT2JgKkm/Kk2cJjk/wAYd4s8Tn88Yaf12ntVJfWhioyy4GOgXrTllA6IHDIN8IZhnHxwLdUngUDv8N6Beupg4SlyQoHsaTvU4fFX1YIwHNuz60Uo41SWkmJg80No= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782740847; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=BFhkHhB06xj2jNq6DMXryUbiv3cOyAH+xorCjxywqkA=; b=e4IZvaYwtTy8LsPo1bmsEx3+RBep75I37IAxR534EH+2ruuLcj8ee8p9m8VMbVGS53rvZGeI9qrEE4NzXGOHIlMu3cyyPO02rHxtkipPAdOMlx2xFgVXr1Nh6W+K8dTy8Cp2JfrRRIqC7S+7+j+L/tuMgXLyeqVvBqbDQdey0rw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782740847613643.366639639956; Mon, 29 Jun 2026 06:47:27 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1weCIh-0005Gz-IM; Mon, 29 Jun 2026 09:45: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 1weCHo-0003p4-3h for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:44: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 1weCHm-0006N4-G4 for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:44: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 65TAT40b2627852 for ; Mon, 29 Jun 2026 13:44:29 GMT Received: from mail-pl1-f200.google.com (mail-pl1-f200.google.com [209.85.214.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f3nbgs59y-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 13:44:29 +0000 (GMT) Received: by mail-pl1-f200.google.com with SMTP id d9443c01a7336-2c9b71388fbso28499335ad.1 for ; Mon, 29 Jun 2026 06:44: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 d9443c01a7336-2c9b0992227sm48968555ad.37.2026.06.29.06.44.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Jun 2026 06:44:27 -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=BFhkHhB06xj2jNq6DMXryUbiv3cOyAH+xorCjxywqkA=; b=ew DK+g4X3Eup2B/vNn+IhQqflNJuwJXvmeMBXT4ATEIm1uvRuB+U1/qwX/xEnfRV8n 7Y0gaSIaih20SA4Rsyzyx7GHtnj+Gjorakun2HEOMOJV27FAWyTlt0YceTEhFkMf 39gO2VTHTcuHMDlmVl0Uu65lEd6CksmStHAPP6wgbiN0Y3B3qSJ2U+OtlLwkgXD+ MeMi+PNA4PHgKlR50u8U9NosOmFlDKLAqofPb9qr9ma9nocDfWf7tRv86rHJhlQe 2i7/Mo77o2E3dLeDv2LmpIEAeiGKSRUFYhT0gh1+FNsTSMwG+UIdmj4SJ2C/vpmB 1M6JR7UeXbmMEfDkqF1Q== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782740668; x=1783345468; 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=BFhkHhB06xj2jNq6DMXryUbiv3cOyAH+xorCjxywqkA=; b=f+jnWzBCc+HSGOQyJ3cXV978zyaei24UglrHk7IV//U5auTalmXFPfErTPLxbxzKg+ t664TPjbI9Q3K2DMF4yoZoqccessYKDhucYLXrz6X5rydqmETAdSpCbQDYttR4ZGcChW b4IgkKjZwXGH0cKG8xdUWSOIpMiNL7NDjfgM1CdS07lxQdEHCx4KtUKIh5l46g8aPRsj IANMrQRtt+VqxA6nWznNPnwl61mMT/F0oAUxB5uLMaPVg7YaiEjwetGuTY37VoVH90rd qkCcQKTQUoTD9x2BYs+8l0Ho4jeV8Hs0bg+OK0PCuv0KhnhgkKVl47nI7EklNWVZsOTq 6YIg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782740668; x=1783345468; 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=BFhkHhB06xj2jNq6DMXryUbiv3cOyAH+xorCjxywqkA=; b=CLU1SWutHAbXE3+ryh/KY6suVlrL0rfKfF2rQar8aHxIWsXVuiLo4f5ha5uneKzCAD 2Rdyjgr9YkUdVzbX+wNJlbYags6B0Mt2xqFBGdBVee+5SAYd+Cnm7ETTZOsKfaRR857w bEHCBb0Hxyx3vsmkfVK+alAXp0TpoELAMFkAJKhSSEhMTgjX2FhQLlg5RSubOn7DQ/qs bVJF+YVOkrunq+dmDSXi9qJQqrLAcIm6VQgrj5iN25IrDAWsLZGgErj58Blczo25o8HT 1qm+WJLAYegYm/ckDMKKTL797hImVr75RniDNIGEZ76dc8JdJb56Nq7zxNzgev8jdX9x JiYA== X-Gm-Message-State: AOJu0Yy9TKJO3s9SQeqVaPrycdxXq63TNb6DIqG2CGX1rWIul0E5JlqX 1LrZ+99fQHMhyhKa/xvqzObMsXaiLScFSDgqOorvx+fyR2ZpLUEMyfm7G1bWKY5ul2FlAMsvkWp mtgPcKkGA86GV+lZar+v+eRcfjSqt3MchSmb1xUFIQq9IE/2/c43Hfwnt4bDtl6viTQ== X-Gm-Gg: AfdE7cmGUeYRCX6seJuC3Tll/NKJpPGjvUX27/x1gV65NoE40mUzbwYeaisWNXSZCPU rZbWg7oBpCIXuwWma9tgW4GybDqHrX3ivaxHaExViTS+74T2oXkWiNWspVQRLOFwgW6rPpNHnw7 bgQE1Q4DaxFtQlw/sTnL3GWlXorQdJqkXhLzJTmVOEOB3eJ3TIEzu7fZPb2iRhIWYPyA6v/Pkjh B8wnhEStdJgEmVHKWjdvEcPCBNBbWHnNFgGCbGz7p0QKGYBneG707dJMHmU1zsFy3XQWCQYZgka njxHr9z/AdPc4ZJpjcRx3dd1KprG12EuAE/dthePG6DdhxkGEmV1Q9dAZ0A9J1GJYjiWa1lmPCW EfTN+YNalwjNFBfKwgHIZIg8a2pLpdtQAptI5OPa84sZSLdaOVjIYR/XU8qU= X-Received: by 2002:a17:903:9cc:b0:2c9:e261:95bf with SMTP id d9443c01a7336-2ca2652551cmr3530835ad.26.1782740668473; Mon, 29 Jun 2026 06:44:28 -0700 (PDT) X-Received: by 2002:a17:903:9cc:b0:2c9:e261:95bf with SMTP id d9443c01a7336-2ca2652551cmr3530575ad.26.1782740667931; Mon, 29 Jun 2026 06:44:27 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com, peter.maydell@linaro.org 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 v5 70/77] hw/hexagon: Add global register tracing Date: Mon, 29 Jun 2026 06:12:25 -0700 Message-Id: <20260629131232.2487780-71-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629131232.2487780-1-brian.cain@oss.qualcomm.com> References: <20260629131232.2487780-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-ORIG-GUID: 34pKLX9JTpOpFdZYgdTeDCv7itwah0Ha X-Authority-Analysis: v=2.4 cv=Z4Hc2nRA c=1 sm=1 tr=0 ts=6a4276bd cx=c_pps a=IZJwPbhc+fLeJZngyXXI0A==: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=KKAkSRfTAAAA:8 a=EUspDBNiAAAA:8 a=8QmChvNvioVktlEtA_0A:9 a=QEXdDO2ut3YA:10 a=uG9DUKGECoFWVXl0Dc02:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI5MDExNCBTYWx0ZWRfX5sq7idSOPCD6 AKo/9gr3jZkbEgBgw+WsJH5hyHHjoerjHRldEtvq0+gzKnOd9mV1q1jHH2XVj6AFrBmGqoXDDjJ CIRAnbYJO22QVdjg0ThLj+FckjPKUG0= X-Proofpoint-GUID: 34pKLX9JTpOpFdZYgdTeDCv7itwah0Ha X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDExNCBTYWx0ZWRfX3P+WqdgkXQpw lVUvDE36eam8KEJ4jT1/1gpxA4cZw9zyARP9Bz+PLEB+TKAJqlYIc+XB+JzPocfcqAUyqdqZAZZ hc8LiPezdEgBbPiNoc2N/c5JWrJyw4aV7RuHhIgU5zWNEhn24ynx1VFln7iep4lpogO2ct9eNfA tN65xxLzT+dpfuBHDclHUX/uz/jtpPY6Kd/zFTAgKEHc17dKhk22jyYR7g7KVTY+GTLmDtoSGzp i1b7qkg4nb5Ium8aGSE13J5MHpWSPf5fBYvocSQP7Yf0Gmf06mUMT6TGkgWNBgpib4b2QqFSg68 XXvRKkEDrxi6aJsZMzx+RFqgQ+dGnSL/Fp8dBeknBh914OLJKt6hXGK68hhRRo75ISUIEcCPx7h OOJOr2cqH167lY3NsDS/JjrmCgxtrDvsDgpfjxMclgH4cVUL6SWkDU9Nq9k8y48zeR2U5Vlr2go T0j5Bantu1k0Cq2ZS2w== 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-29_03,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 suspectscore=0 lowpriorityscore=0 priorityscore=1501 bulkscore=0 spamscore=0 impostorscore=0 phishscore=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-2606290114 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782740849897158500 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 0d1df06ccc8..164328ded83 100644 --- a/meson.build +++ b/meson.build @@ -3601,6 +3601,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 Thu Jul 2 10:18:32 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=1782741040; cv=none; d=zohomail.com; s=zohoarc; b=mrm4IomzY4F3PpZvwlnlaG1JySRbkUQPoB48maOKxWAShAnJzQbIJSHcQ4jQpyvl810iHEPCxNfZZuBKFZiplD8OK5m0Op1vL/0dl8ZdpSzUgc2WJjcbKqR+wgKyQGt1TYhBevvSg7QDZwhS0GgoOEKBMusOSSoN5KvzLLjo28I= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782741040; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=YNwaAkNAqEEsrw/cAcbB5/L+U3f0ig70c2YqofDX34QkRSs+xuctRWBea17dY3deVyFaCHIOhbU5k05+N7DLrlXHv/Ak40a0b4+W4WfSmInfirf/26CQg5VFHgzS77T0Sn6yt8bxhhu3YUAGmYxbRunsPoZ6TXTYjiZC8HK5aPs= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 178274104047331.727229238388645; Mon, 29 Jun 2026 06:50:40 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1weCIf-00057A-Qk; Mon, 29 Jun 2026 09:45: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 1weCHq-0003r9-Ik for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:44: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 1weCHn-0006NK-UF for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:44:34 -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 65TATSto2592854 for ; Mon, 29 Jun 2026 13:44:31 GMT Received: from mail-pl1-f197.google.com (mail-pl1-f197.google.com [209.85.214.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f3k7vhwv3-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 13:44:30 +0000 (GMT) Received: by mail-pl1-f197.google.com with SMTP id d9443c01a7336-2c9b1b608e2so18074435ad.3 for ; Mon, 29 Jun 2026 06:44: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 d9443c01a7336-2c9b0992227sm48968555ad.37.2026.06.29.06.44.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Jun 2026 06:44: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= EzOvoGhvtPKig+yChPX1XxYwqHpTeQ/TAqtl6EODqY0=; b=Se5pym1ux0DcOgyy meeZ8igwt4SOlGDkDv/d5wNSjMbNNZOGVFK+hnEiZt/FUSuB9ToVDEGFtxli8Zsm gaJp09NcbBhV9Otak/x1BXpFMCDa9GYBWyzpeOZ0PcZE9SO0jn8wKjxYgf9qDMQp 6tEjgey7s6tCMALL7+nhbkmVCGhZEiGLcMYOA+R+jH70g/Ctr+4Uj9TwGwiUag8r y9OCHr2UedTC4Q3HVeFxNTBVYTGVZ1Fh0O0dg0FkBNPmYdsjRa8j4bdt9RPMK+66 SnMuDByCdCS2w+VHKs/rR8IfKvd86wNQ0wE71ZhcoqlvxBTsLu8zBK947Y47uJpS O+aAUA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782740670; x=1783345470; 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=Ge0e8y16kpTneNrURiMaYvKSoGHOIuL0BRQt0uAVdtGdO2OQOwINprer+nOcVA1e2Z l1/pCCuGkK1xtkkWcU1AmSO4F/rgpzStiWpCXrTI2bg5eyBAsIrAJRzCHNNkZA6wkQ76 pBpXJxbqSDosrDGulSXJYwsuDhnazgLr1Um+Ed/DO5WDxnB2BudsW1rv7/cRdLnQQqqQ h79CfvuHidteT7bJQhVNiMua2nXtof7z+6u91OF1VOfepay9ah8RY9OvVhzG9xIgy1W8 XdaqByRhwgw2sKnd7CgC+C29WETDMKqeUUhJsbx8qmh/+kq90K43GGa5oHSmBCxHFNjq XrMQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782740670; x=1783345470; 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=P/Bt8mHq+rTf+tcSaeVq41kFfC0ZhkLzMbQHHszaNhlVq4faBW1FgXpfWrXIYyleLN e/y4htpvU0W/NPxtg/5qy4Eh3jP61cTzL3YpYCyF2ClLxnBUGkviH+XucPgZU35wOnLq XTaK22co8Saqr7UOFXWHoB815yQnBaKHCetmuYZfNKc2qhmxX3jqwY4cy6/zb39OnYy0 7ANLRR3f/PNBKNOfbgYtf5S4+dhPk9uxc9BtbDg8Eq3KPDfXe1lCB8KuKHJqpfFLcdrk PL1/H5rFZ1mHP7MChJ4G+uRdGpOL1FvOUsuH6aUwYhqeFB/5egHyfO0OaMDVQ8iQSUFp XpdQ== X-Gm-Message-State: AOJu0Yx5+4YiNpcur7/zpuMnaPpqJboths/+WNwzYmCbnIshQDa3D5ia ZD9+BhGrQGDRF5pa2K0N3OGkm6bvD2yKsHuDPh9auw1vG1WdPX8bGaKl0j3hz2dWG3T1bylJXfC ZhsmV39HkMVJkeYwKyT/pFDXf7lXHSacdd20t5gUF5KYdDkam3RJljY1Tbm5rAlGi7g== X-Gm-Gg: AfdE7cnJBgTv3ETQWHjv2VVnxxj2R4u3iPsMfXbOXmvzkSgKVclNiy2U8mxMV/5lf/t 90HEiylwEI4B3Jhxn299qhjq/XA+MQ5BYL6eIxu7Pw+nKKHjbsBP7Htyb0ifJmzDS0Q8bo3+qKR hz0yS2GH8l9BC9o0PeRkRuc3BfInjQ7KiN+8b9ocw8Qr13amkQpS80xOCi9HqAYn+3GG0slK4AE 7qCTmSy5p9vO907YTMJT0e/rOWJKgP9sHi9Wm7r/4hiZOPS4hEySQ8oMc2WSVdzxIS0eWmeqMxN RaXA1JKkuzYCENlrPwbyT8PN7WBiMxtkj7Hsk3gSKjirhhMlLNmV9ajrEycLOjY9wZSoOXVADzH wXvtkINoK6rOEBE8+6z21J0WvO9pD7vkazlNigI+0hvGCB3YwnVGauypaXJo= X-Received: by 2002:a17:902:ec90:b0:2c9:ceb9:8668 with SMTP id d9443c01a7336-2c9ceb98a66mr59434845ad.46.1782740669870; Mon, 29 Jun 2026 06:44:29 -0700 (PDT) X-Received: by 2002:a17:902:ec90:b0:2c9:ceb9:8668 with SMTP id d9443c01a7336-2c9ceb98a66mr59434555ad.46.1782740669330; Mon, 29 Jun 2026 06:44:29 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com, peter.maydell@linaro.org Cc: brian.cain@oss.qualcomm.com, Pierrick Bouvier Subject: [PULL v5 71/77] hw/hexagon: Add hexagon TLB device implementation Date: Mon, 29 Jun 2026 06:12:26 -0700 Message-Id: <20260629131232.2487780-72-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629131232.2487780-1-brian.cain@oss.qualcomm.com> References: <20260629131232.2487780-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: 5ruS8JVt78oCcFJhEtlGUV69HViyjoVy X-Authority-Analysis: v=2.4 cv=CqCPtH4D c=1 sm=1 tr=0 ts=6a4276bf cx=c_pps a=cmESyDAEBpBGqyK7t0alAg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yx91gb_oNiZeI1HMLzn7:22 a=EUspDBNiAAAA:8 a=PVkRrmxsJ_TG981LwpgA:9 a=QEXdDO2ut3YA:10 a=1OuFwYUASf3TG4hYMiVC:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI5MDExNCBTYWx0ZWRfX8twoDaTnNxdK /3p9PwSV0pNmq985J0lxug+YM8ZMhKYv0SxcmSdIFodOd3IYY+1kQNrBQ+3psEwCHtSEt3GCX3C sgVDXmdVt+tjH2VUa58kMvlb8ahX6No= X-Proofpoint-ORIG-GUID: 5ruS8JVt78oCcFJhEtlGUV69HViyjoVy X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDExNCBTYWx0ZWRfXwBMcE8vN78tv 31UXJdrvPJWA4Pfp/R6EGj+Pnuhu+Isbfuo9f2GC0MzlyNArC4GPWng7R5k7U2D2m6+wks9RtLj ZVhTDB+oUz60BpGlzRZIIO+HZapdUdLArtDy1+XFGh2YXMzC9Io0FEGNeJIXCqJDGN47QKp4DYV UiKeD0YQD1d4H2etQgdpAsVpRJVlZ6Nv/5Eki3ulr0BlnyKqUnNusSDSxmNGN6845Jqt2F25cWq HVMXTp1R5wQ5sVKRxgzeTPW58ZktLnoyTWNw9tfw8BXJHtzN1ymbWBuYphX3Xio0ezma86NO6xe 3ZfyCMAAVviQ6BP1jHwwlQWKnl5WH/Tj6BmYspxDJMofjbDecx1eaCY5Tji2dEDDpOBqe5FVxwO cADlB9vEolnQLuzpByY+QHn3SJmUl3knYv+MprBXFGE2AY0MniqT2a/R7jVWvJGIZyhHOcM/MYb 54M0fRueO2KPGItyd/g== 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-29_03,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 bulkscore=0 clxscore=1015 impostorscore=0 malwarescore=0 priorityscore=1501 spamscore=0 adultscore=0 suspectscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290114 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782741041212158500 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 Thu Jul 2 10:18:32 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=1782740904; cv=none; d=zohomail.com; s=zohoarc; b=YHN1mqEWAnn2EmEJGMBJxz6ndLppmjDci3XA37DKfMgl2jVhf7IgfLn/7OhGpS7L1C+wDfPBVBhz5A3qvAyhglLmV0tMijUzlU+dTIqRUUYxdwEJR3WLWudIzWf6CW/g7KbLqaJy8G546dG0SY6lLf0SUbf75izXLHufXtcdQ8g= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782740904; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=y6CxL32NuFJaEjknoim1Iu1/zyb3eMIE3FRb/YCDnEs=; b=ckYilmak137R5WLxMQq99EcNxsifNGhVJcHATldrt+aquADKToyK/oWoa4ZNJ6q4I1lu0qlLClHnTXAiFAWA9TFxg4BcjlBe/6+Bi7gzLVFda7DzKr/6exNSERfzwQW8kfH7fw+jTFusT7GikFr8uam6efzrtZbKlmAZpv+c5vo= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782740904469872.8770081685421; Mon, 29 Jun 2026 06:48:24 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1weCIq-0005xO-F6; Mon, 29 Jun 2026 09:45: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 1weCHs-0003sA-IA for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:44: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 1weCHp-0006Na-Mi for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:44:36 -0400 Received: from pps.filterd (m0279870.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65TAT5Cg2627904 for ; Mon, 29 Jun 2026 13:44:33 GMT Received: from mail-pl1-f200.google.com (mail-pl1-f200.google.com [209.85.214.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f3nbgs5a6-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 13:44:32 +0000 (GMT) Received: by mail-pl1-f200.google.com with SMTP id d9443c01a7336-2c7cfa17fe6so50702975ad.3 for ; Mon, 29 Jun 2026 06:44: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 d9443c01a7336-2c9b0992227sm48968555ad.37.2026.06.29.06.44.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Jun 2026 06:44: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= y6CxL32NuFJaEjknoim1Iu1/zyb3eMIE3FRb/YCDnEs=; b=ljs2vKqIQ7QrQ1z9 nkJeZbloheG4qCPKj8kWwXJpRzAOZebbt98M2bBlSqxBR1XNoWLCdSezrVHBN3rd YwJbesp1I/uQQr9He5xH5FFgmHE0YGpJ5I8EIenzUg5bUjaf6wT5XcOWbhZHXUzO rvtlEmjf04W6BaN1PJz/36jBuYhbhNHwbGckzek4bOFnsD3S0fn/NBswo0iOSSvt an3UueoEzqI8JWkotSJ8iVAvKSr3a8ZqEU8Vzh+kammxcNgQ94Htx4BduvEl6/V0 hNv86MDsx7ltnAtQCVU2bzUFVQBULNfXOBR+B+kgi1FZqqRjcgu9cqiXRW14N0qL Cyp/Wg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782740672; x=1783345472; 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=y6CxL32NuFJaEjknoim1Iu1/zyb3eMIE3FRb/YCDnEs=; b=PXUNQQmVoEenQkVdxaBXMNDU+UNsL7EFpHo5yXByse9tm5tqnzh4l201JTHh8nmziq CYj0eNHlZlQNTD4xRry2GR88bgE7hr3U7wET5G/8As60gB3159LgfBuNaRzqBiif1fkP hQLr2yvxgjl4DtVBCJvYp9P3uzYAzYcMkm9gNaQ2t0rsJrl2WF2rhKVEPzNPaCs3XbOq 3wKmEhfQ6XfYl5lfYXC2+rcRrk2ObtAzTR86nsjdS+bmz1dvi/ncczJUF+lAFmFqefRG MKmmYoOs47ZEAjMFOAyqLjaYcjW4rC8o1vD6xyl0ldEQzdpwB89CfAJ1BN4d2hHiQxeQ /9kw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782740672; x=1783345472; 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=y6CxL32NuFJaEjknoim1Iu1/zyb3eMIE3FRb/YCDnEs=; b=r+MXNbRGv96btlVPbcNu4cUUfCZUVykmYS/DLaeMokUbAQPvWBPqTbUcTVASvUetyG OZXZLbmMbZ7TyfkoG5apjMuN9TzHS1vrQEqY0JmoBIqpQiTOQDWvHUDl+kiYslWR9L7v jRv00+CVV1ePzfuKGo45Yfc6n6daPac7mLXxyFB5BfohW4PdTrcNG4wdSF++lN9R2lR0 q6mcMbTWmHtrrD/Du0041kWrd9ro3A8s6nxnbejG2V02Sd+Mv9PDEFURSd4UfLc3W1Ta yWz9nSn8qHtkLT+SROcjz4mtxx4JS/aeI+bgiOpiCABcNxf9y9axnIi7//xLbp9pYYhe 4dOg== X-Gm-Message-State: AOJu0YyozIrMG7J9I1h1J0Ytq/jXI7VuZmpVBBT92PaA29Lieqn1Z6ga ZWyi6AFD8pyn5hf2MJpukq4pBF/LDGHLRU991IjqwAoJvPODOtU5DQZPqhoko1JyY+zYHqPwGAG k21JNqWLXgZsQrcI5qGxFQ+rAWDzjk2j8MAe+YAFqwsXma4KqSlyJ/oYhxmDgHE0YDw== X-Gm-Gg: AfdE7cklT0s5PckqCPr0GYMVqznwzqNDrJ5NOtOBToqA46vOBnc8ToC/kiabWcWmFtv JCR8H8+S9TaZYOru/OjhqHR4jaXYKUQXyRkBf7ptGZYG8H6LhG5GsUW6jMUFI1W/icXF68uVmuZ wfBZ0/AhJF/ZEkTFV3pWb/1DR/nhMI3uTuaGsNsu1sVnZzjVAe052RA4QQb7RpQ3VqUms1ykTqu LEkd7LhGJTqR/2kNICYvESvZwsCqV9ffPpeOX7ZsVxi6sVOu+rjfPghglltyvDQh470YMG8SZBX HDIOgWhhqdajT3inKQPSJJfby68tBgQC8JtMqKsG3TqVIBOArl6StpQlb4l9WlmemwpHmqyEGcv VkqUbNVqIWLJMdRKAlaEfNrqD4i1cy1urtc9TIHwKp8mh4mi0g9/GkfrIxjQ= X-Received: by 2002:a17:902:e80f:b0:2c2:bd7f:ccd4 with SMTP id d9443c01a7336-2ca261d0284mr3951755ad.21.1782740671608; Mon, 29 Jun 2026 06:44:31 -0700 (PDT) X-Received: by 2002:a17:902:e80f:b0:2c2:bd7f:ccd4 with SMTP id d9443c01a7336-2ca261d0284mr3951245ad.21.1782740671022; Mon, 29 Jun 2026 06:44:31 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com, peter.maydell@linaro.org 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 v5 72/77] hw/hexagon: Add machine configs for sysemu Date: Mon, 29 Jun 2026 06:12:27 -0700 Message-Id: <20260629131232.2487780-73-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629131232.2487780-1-brian.cain@oss.qualcomm.com> References: <20260629131232.2487780-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: vXXGK1q_ozqwy0_wuEkNLOHDHrU5oXJr X-Authority-Analysis: v=2.4 cv=Z4Hc2nRA c=1 sm=1 tr=0 ts=6a4276c0 cx=c_pps a=IZJwPbhc+fLeJZngyXXI0A==: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=20KFwNOVAAAA:8 a=EUspDBNiAAAA:8 a=eE4CN_At-pr7qPS3jZsA:9 a=hiJlUhq8NronkB9Q:21 a=QEXdDO2ut3YA:10 a=uG9DUKGECoFWVXl0Dc02:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI5MDExNCBTYWx0ZWRfXwArwTSA8B9Gu nsFVJERrrpjeqz7r9DYWzpzm6+wyQmqZ424bmZCYIVGLbr3j99sRCPb8Gp7gdnQZ3Lm+rnNyqcV 3gDSu4+QiHbFvclPSCKEeLFbcoSG71o= X-Proofpoint-GUID: vXXGK1q_ozqwy0_wuEkNLOHDHrU5oXJr X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDExNCBTYWx0ZWRfX1+kD7pRk6/lA MbXEW4eZ7Tt/lMSfIDASKmHlGHD5K9chB1yr1/KdRuxAutzVO3kCh7hW5l29itc8nieQWGMkOJm 8K7t/Nt1RH6dhWKqTefGtAn7WCulH6jiQDzE6o5PEEes3feFhk2FRl8Jv8csFsQPaGjYxFF6cOq o3fpw1alUs1HJxrnEcg+3ByHqasNFoQnJVtm7BKijG3rAY4ocnLvklcx+U1Ry47gQh//LYBtno9 iwacq4C50cFdFYhFE4x3CmhRoJExUdLjEB6lmvkV73e+Fg3O8oERI/e96HAx+hLVuPMSIjlya2T p9rr6yBzQ2EdESQIbNrB+eVgXqmGDqxYDIhLRDit1mUquPL05tC3yJys1FFsgbV4Row4+BR8NAW Jkp2Sa+xF3dfTWAZrHDvQK5w389s9C18d48mGL5+m9GAtW7r2QpZTLJx1zqpiZht5nK6EypPl0h AJV59R98Vc2QVtVPYDw== 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-29_03,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 suspectscore=0 lowpriorityscore=0 priorityscore=1501 bulkscore=0 spamscore=0 impostorscore=0 phishscore=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-2606290114 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782740906109158500 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 5376f7d8d26..3998abaecf1 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 Thu Jul 2 10:18:32 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=1782741015; cv=none; d=zohomail.com; s=zohoarc; b=eMoTodqXly4gubPHrFIihQS9xrFRePg8Km0UxlMusMju95va8YboSgZKKf0ms6j929McPWlx3ZoYLMxknQMZwTGY7w6iRoBkU02fSyUsS+A8zcaYdzvrUuRwvC4b94gl/VJK2As74eWPZAqMWM0rFYhRGwN5gast1jc2Z4XaWM0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782741015; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=i1uHCEjJXPCk818JXZmOv2MM1n4bH4BSCENZB8x2YokJRsnAZpINx2KlgwyPmjbbfmpQqeAqxidBzPJzvIF4QeCJ9xnAnGdDtqf5H/4BN1B4N1faQ1FGWgNwFmdirQxl+gxuEXvL6P3frixlcBkYS0uu9vQRfjCMEDDPGN1jsxY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 178274101548229.04186139056776; Mon, 29 Jun 2026 06:50:15 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1weCIJ-0004Aw-NX; Mon, 29 Jun 2026 09:45:03 -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 1weCHs-0003sF-O3 for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:44:38 -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 1weCHr-0006Nr-1Y for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:44:36 -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 65TATBNc2647651 for ; Mon, 29 Jun 2026 13:44:34 GMT Received: from mail-pl1-f197.google.com (mail-pl1-f197.google.com [209.85.214.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f3kyjhj6h-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 13:44:33 +0000 (GMT) Received: by mail-pl1-f197.google.com with SMTP id d9443c01a7336-2c9ae1da340so35448515ad.3 for ; Mon, 29 Jun 2026 06:44: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 d9443c01a7336-2c9b0992227sm48968555ad.37.2026.06.29.06.44.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Jun 2026 06:44:31 -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=Te vWyd1SZj8Q9Jnv200rhaCuHytCrGfXcpNPINw3mZ/8ubXZ0pjZtgftxlYX5YGVc3 OEjILMejG/8mnRnyWUTbRwmDqwlvD9lCLbym1w49/ZCVGLrsLId4B/27PqxkMwZ3 4QrFVKx+M4SWpPrUuuvo/G9k/c61B+xu9Zq3HaM1+34swbuKv9e0dC46zxAstjcQ w4yZ+z+G4AaXf+TQwJink6lMVRIRDv3xy63cf/GUSAb+Z+jVFvu+mf9IP//z+sBd M0twPZR3UgxCpAxJ67Z8cUztOIMSlOonATEne2iHVYU06y5AmnBiAYrT6nK0M4gx NbXZK/3hruoazphbb5yg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782740673; x=1783345473; 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=DV5PZ/rS2LQR9YFFBSJM+OIQgOoRX62Bvb01rwOKxMjbvDOQ0UhX4HCOkeiV2LOV6g ALSzgILi96Bpt3Stb0lvrAiUXI0si0q/wW/HA61+6lyS+/PEN/i7HmUtl6WMHKlfkm2K QzPFIY9yL7XcmhGrlkjC6jQgq4lNZdK7WJD+prbg283zbLdT7yZDfbbSPMK3CwQBRpL9 ARcO8y4tbb09GJTrpZ5oZTmKhLbaM/IA4ePgiOBVA7WJGcYGvhSho5bb0PF9iRMJB5Rm s8XjMD9fnsM89Jq9t4AD5zNCH/u57u/yLpwt3D3vrWU+2akrElSd9eOsOraXZ6G81/U2 VxWQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782740673; x=1783345473; 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=RSVw1s4540UPHVqTabKT1MZN7NQ1YZu7AuRVuLMG8vVn12gH+UqWeJ5+yI4Tatxikj ONGNri86Pj7TXuzFcwsv3JUE5clq4pZYDGMLO5PBzoXDB9dDphDxkdTqPgExIHUa8W7U mnFQVF2yutp1rIo8NubUd1TR0Lz2Kr6dG1D4Fk7Xd7u9rlP1nPT4oLQKRrZm7MDKIdCp WiPB1gXy+6ix7tfuWin7lFu+BN9mwGAX+KLZ0wFBkmIu6NyzCVzm5GN024IphPRjuien weQn9jJkPwoNhtqk1gExzU9c69rnJFqPoe6gyXLj4QankLn0D9qjxjbipLUd8wiVQO5s k1uw== X-Gm-Message-State: AOJu0YwleN9GMHTcsiHVobFnZptqYuuIq+Fbsvu3dEPRHz3WmUbh8TpR AdA1h6GosbgSk3k2B0ZwLCzIW4DHQR2Z9ImkAgdR8rHf+pq46b/oR/HunN/nYzA2lHqCKtfWNPs 15z3KMk5xguvMJhNT7XtWFGpslKAWtJYiRVTTr56l1wo/lYW/cel1vqwYF0r/htOj4w== X-Gm-Gg: AfdE7cn4JzFcf2+sbX4wY+uszSInBvxQNByVSnnxJmzP8R/niWwPgVoAcIrE5tTz3FK gS4IlRBPWlA9kTxdyA705yBoDf/ErJ3nOVkBDM6GMdgjpzauuT0sP5RrJSV/ABLV4vQjaAg9wE6 pDoW9CS5YwnEtcj3SWrzthIjGtLLyVsix6uLsq93mnOyQjEJbHQEk1JHBgpL/hOE8TDTd1T6X2m GvOhzzfWT6qcLC6Nyp8dDk3Evt7IZh4Qu1KbjMGnDJaoSBDpWut48an3cTLswzfNBqtZVKlVXmx h3h8svbpncF+EwoV9BqCTpQT6kaenPRzaK4M9MxB+C3r9Gbzmzs27Xyf0f82vwZXZCP7xZdMoJu aFNTBd0fg+STBXkeRoJg/NHQGB4fFnx0Ywl4kj/pKAE0NHmvj1EKev16em+w= X-Received: by 2002:a17:903:2443:b0:2c9:ceb9:865b with SMTP id d9443c01a7336-2c9ceb989a7mr53432205ad.21.1782740672837; Mon, 29 Jun 2026 06:44:32 -0700 (PDT) X-Received: by 2002:a17:903:2443:b0:2c9:ceb9:865b with SMTP id d9443c01a7336-2c9ceb989a7mr53431905ad.21.1782740672374; Mon, 29 Jun 2026 06:44:32 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com, peter.maydell@linaro.org Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Pierrick Bouvier Subject: [PULL v5 73/77] hw/hexagon: Add v68, sa8775-cdsp0 defs Date: Mon, 29 Jun 2026 06:12:28 -0700 Message-Id: <20260629131232.2487780-74-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629131232.2487780-1-brian.cain@oss.qualcomm.com> References: <20260629131232.2487780-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-GUID: CS3CNw_CQLwx49NwV-qHWCOzzYUco7Jg X-Proofpoint-ORIG-GUID: CS3CNw_CQLwx49NwV-qHWCOzzYUco7Jg X-Authority-Analysis: v=2.4 cv=Ftk1OWrq c=1 sm=1 tr=0 ts=6a4276c1 cx=c_pps a=cmESyDAEBpBGqyK7t0alAg==: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=1OuFwYUASf3TG4hYMiVC:22 a=TjNXssC_j7lpFel5tvFf:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI5MDExNCBTYWx0ZWRfX+9tF88z44tNH AG3GTkNrLFB52TpeJKyxwI1mcVzQgGAaM+g+8rpJ+HW7SsGTTmsVmt5vq/5hYn7kIs8fhAj/5nv yGhlJAPYsqfPkklxlqO8Fn/RusMKmjY= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDExNCBTYWx0ZWRfXwNeHvFtPSFRU gWKQyTHxQEbFMSuejr492HU9bZRfm4LgUXuZ/1E3MyhBEJyJQ3GlDYJ8gLLzJiuIuUiQJNu/gkq +I85PnEv8J5FP9emrwiDk9B5H5uBIewuLiw5Qnq9C3+BwDn9uleBQwS9zomhgmmVWk2KINTiyWc ABtXagDzqz9ROxVFz03HaNxlXQ+AIMK9C0O9f0wynNohtm7Ez6Da2E7I2dU1i9UOjW/VbMQlUs/ UE925hBs5PEw3jKezOmWyXCIhtgfjRseJ0GikHPSvlrtmpXBKk5njBkthmA8W1jHrPQHkySNeWH Z2xgpWU0kOHhOCdKJUlHgpbwepOkXKodguGqj7oOymH3Whfav5ZhxPy95qoy/mLzh8F77tsgQpA 0PWhbT4hP0vpbojnDd8Lf9Bn9bLJOpmQYMfO8TeTAH8mJh1zbUlk72BwyHSSEpe9An9ef6tA9z0 pB9q7Sq7FcOQj23VWIg== 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-29_03,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 lowpriorityscore=0 adultscore=0 suspectscore=0 phishscore=0 priorityscore=1501 malwarescore=0 spamscore=0 clxscore=1015 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290114 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782741016895158500 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 Thu Jul 2 10:18:32 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=1782740949; cv=none; d=zohomail.com; s=zohoarc; b=lKLPR8g5obefevpEQBs/0LdlYzoIJLxPef4+Vy4eVRiWQ9y89DwBJueD0QEzMsdxzCd28Gv9eC1XBTGYONiyoCEiri4FfUtgFtyJ8ahTVTwbQA4Rver0aGz5WOOx+sO09ye9Jy0R8QRK8q2WsNIeRlBCvzeqm2LuvkhJSLriHV8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782740949; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=aVvH30OVSAkGxp0g0JHTXKp/zV/xiVHSHhQ5pjS+bXEhyV2A2BddXNu9if0DAtxM2vF72q9SKa5mF03h22f7lQMs+7Ch+qeOR1va3bs+84Aalq7rgeSpjIhufL5/ttNWokjxZx1AoByQqWo3+GmbRMUj6C+AnHsEw7S+/NNByCY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782740949332215.90333629629583; Mon, 29 Jun 2026 06:49:09 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1weCIK-0004Fc-LM; Mon, 29 Jun 2026 09:45: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 1weCHv-0003t8-6u for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:44:40 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1weCHt-0006OL-Oj for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:44:38 -0400 Received: from pps.filterd (m0279873.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65TAT6uD2618925 for ; Mon, 29 Jun 2026 13:44:36 GMT Received: from mail-pl1-f197.google.com (mail-pl1-f197.google.com [209.85.214.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f3pdkrv4n-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 13:44:36 +0000 (GMT) Received: by mail-pl1-f197.google.com with SMTP id d9443c01a7336-2c9b71388fbso28500525ad.1 for ; Mon, 29 Jun 2026 06:44: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 d9443c01a7336-2c9b0992227sm48968555ad.37.2026.06.29.06.44.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Jun 2026 06:44: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= rn3nrXF+9M3gB0m5jL2ztn1CUMGQuvNbgLv/5EwohVs=; b=ct4y/TyNxTLOBRLY uqc4i4N98Md5TpHmxZIqk5mMLGwFNRj3Pio39Otq9SFlMj7XI9zECNo5aY3P9mzS DxikxR2CzOPYCYDSFeWPonSIkju3csErqSlGlUlmq3aelWqWLh5EMygaBJenCQrk Vn+rGRe0b0A9AH/iXfNuzyg2bdSDbNVJZmhhVEdZ0JHUYdmsWpzX+vfy2spYrrrP E57Q9MrfmuM9Rn8kw4wn14oY52jR7Tuw380Q1OgkRZmpK/Z8jkVVP64YHRLtfTzh qBm9GXtjt3mOfwnaBt8BupZnZs5hfNOSOlzK4xPoAoM0udAOBe8Pa43jo1UnEwNw q9oRGg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782740676; x=1783345476; 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=kmS1r4Ye5hiVcytA6T8mMGfB/CmxKkZxj/qgKJwijJGBUfyKGdO9PsOzxKbzPIqfZd AShVX3uzZ/QnjN0LfulIvD+OeRF8YHcb8LZBVc0ugmZGeyJcXmmelEfIHWVC7+GnlO1T wfMiuj5iFRkXttuTUfz0ezgsRymARKlvMuMZXzjbPPOHBUWz1RnTHZeDFROFA8eILd4u /ff+fSjr+GAl48RY73JkP2tnTM0jd5O5Y2cQRRztg1VBp2KPkhnv/bzJkkCoxaBT+UIM qw7T7QpZqqfcpe885VwdN0VeegvAq09HIAqr29t3rzRe0U7gFXeRIUH/B66XBUO++5zT q0DA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782740676; x=1783345476; 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=mdc2dH/yOckEN4w+nPrwFxrdR3opSAHuwWU0LCh8UF97eM31DL68l7kl2DZS91FkU6 XfwCWK9hgUkhdgK83H6O9KyXHA0mEWrpfCpKWLFMWpYNSrAsebPny7z1L9fVPEuhd/U2 qbdHQch9aUdWI4HQt93Nh9YJdfZqkduy8bjWcTaFdfcBRlDXYU9TqDbP3+2s2NTcHMXq LuLNZhwigm/EqlDCRpeze6XvMVzyq5DO1HEFk8WuVBXy9ZYzXXIHpsmQnMQx6NMqPFGz hdfHm+rxKkaizXupyCQvupzGaZ3qNjWwYTKf6pFgFIvNXQIoEfvCuwBxuGFTHXc0+Tce mfww== X-Gm-Message-State: AOJu0Yx00YJ/EWB1O6Qjjumz1/O7UK8cHSe7jLYTN8Z1xdsGoZ8Bcebw SnBRShELofVsQNtAIqhXu0IvHNLNZawt1MspPTVOTbFl4TlgxF8fMxNvdlIYlGejW2iz4ujO0FJ tzth3pgls/pT7JLtkDvybjiI+l/kqYySpwFtI9cIktQxfODgSOLIs18LLEVn7vqin4g== X-Gm-Gg: AfdE7ckrYgRFjjViUoQZ49Ud0HA1jvukFylL300ZeH+qxoxVpXdeJhbJgfNLPp9up7C tHr2LPWMmXvVMqsMhBo/xnxGUAXwvKAVvogJou++HGkwQAGj6iWdJZKKzYy15Ww4mkY/+0t8pP6 BB9fkfl35HJzDXGmTEJKfjsaOAO3J3uGAvofjkHToW6+xJS2YUj4N0NZF2KCNbOp5CQnbL1+4NW u6XjjZDmxdo4PWkd5yqSjABEoqnS/OkGJMM2ZvAddEL2Sb1+HShxRjn066NhNyRsTVdqa1ETtmP NoV4LKxfsPqn9ODqjTpiL7Anl2bynNlHxcuIzDNMOOoCrSLX3ixy2VSCKb2anN8iTPwpMYsLCX6 pqH97OyPTjvTWOZZQ2lRCZX7mW7ZTKotkwbj0ar7uFvU88peXDah8hMY+4Q8= X-Received: by 2002:a17:902:ccc9:b0:2c0:e5ee:f554 with SMTP id d9443c01a7336-2ca25dbd290mr3924585ad.8.1782740675726; Mon, 29 Jun 2026 06:44:35 -0700 (PDT) X-Received: by 2002:a17:902:ccc9:b0:2c0:e5ee:f554 with SMTP id d9443c01a7336-2ca25dbd290mr3923905ad.8.1782740674546; Mon, 29 Jun 2026 06:44:34 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com, peter.maydell@linaro.org Cc: brian.cain@oss.qualcomm.com, Sid Manning , Taylor Simpson , Pierrick Bouvier Subject: [PULL v5 74/77] hw/hexagon: Add support for cfgbase Date: Mon, 29 Jun 2026 06:12:29 -0700 Message-Id: <20260629131232.2487780-75-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629131232.2487780-1-brian.cain@oss.qualcomm.com> References: <20260629131232.2487780-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=R8Uz39RX c=1 sm=1 tr=0 ts=6a4276c4 cx=c_pps a=cmESyDAEBpBGqyK7t0alAg==: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=7umkzkyUMl8fFcUskJ4A:9 a=QEXdDO2ut3YA:10 a=1OuFwYUASf3TG4hYMiVC:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-GUID: QVzJwHeejCkjrlzcaM8o2Op1p1kLWxBO X-Proofpoint-ORIG-GUID: QVzJwHeejCkjrlzcaM8o2Op1p1kLWxBO X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDExNCBTYWx0ZWRfXw8mKrjZot445 XzqU+BVhR9+f6guYiPqYw7Mvdt37/ZEVOhkfMTtYMXtPBhaGIB1Xd18tMWSJL78dk6BpIqJHPeD M3CyaARYVREYGDcjlMmGDcI97E19/Pf2nDfi/e18nHRMDH/OTOq1jqSHC8PuVm50BgXCszCZe3D BIrBhxYaBV4rcr4Gm/54vrb8STquFJX9CvF+jdqOYE+Xanw5yaNTSyM/MKFsT0eXGOPO2Bmmds3 V9WcYtMdf90XgzlOdeJVjAQlj+p0yK/GJPpsi6qY4IjZY1cnE3vtCnqAGY19wQnyuJKueqrJFot +61aoF6f76kK5BHp3juszIqeDVmO2mK370/V1V2rWFEmjckr0uqPzDaDw59qjoNda8hpApy3Fgq Vz0aUbe0ChAqq8ZJYqCuEFznJRi6MUtD7/9K+j6FxA0ASJG2y/1bHymtGCp1QXl/CuBAOYPwNde XCJcg/BtkUMn3d+wD9Q== X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI5MDExNCBTYWx0ZWRfX00lidcX8fJh7 J3+KWFL3oXLTENR3DVG3OOCwyn4Oqku0nOjBo4NI/DWDXyDWVnsLyYj0Vq/g5FB737LcXyRqDvS dqfmROdHZtjB4bDCZfcECh7AD+iiZrw= 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-29_03,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 phishscore=0 clxscore=1015 lowpriorityscore=0 adultscore=0 priorityscore=1501 impostorscore=0 suspectscore=0 malwarescore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290114 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782740950342158500 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 Thu Jul 2 10:18:32 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=1782740888; cv=none; d=zohomail.com; s=zohoarc; b=hlzd1QTGAsWNoOXOWLKXaVsF+qpm1b9pAOAKYEcjVYn9Q/ajFc6vTmyWY/libUBWj+tob1HhxWrZVR8zDSFhZiSrw73vQXA+pn1xRTbSbSJ9Mltxbk0mJmyoTnKJqzkOPVJjc7ziiKIhCtMlSp53qoB3zzdkIeIk3bv/kcRGRmQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782740888; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=DM7++QGB9GmTMFbDy49xEx0+EvG3fHygx+cTnWTwfqg=; b=WT+AC8AyZ5cIxnHbd/rFIwyWsCQaIeREwEhFT0QjvhAdoRfDigLc4N1eRcG1S0O85AKFJ8XF7fKzg5CkwHMz4xGIyHqf9QBKoJeMUDcLbS6MdVrPSNt3cotqizNHjjcPzEjfzuifwvTgvj3kD7YWuQU58RHLC1ETO8E1JS6BKrg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782740888799157.2842487245057; Mon, 29 Jun 2026 06:48:08 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1weCIp-0005lc-4S; Mon, 29 Jun 2026 09:45: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 1weCHw-0003tW-8x for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:44: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 1weCHu-0006OQ-Ch for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:44:40 -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 65TB5FsP2728548 for ; Mon, 29 Jun 2026 13:44:37 GMT Received: from mail-pl1-f200.google.com (mail-pl1-f200.google.com [209.85.214.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f3qha8jsp-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 13:44:37 +0000 (GMT) Received: by mail-pl1-f200.google.com with SMTP id d9443c01a7336-2bf55c3f44aso23298035ad.0 for ; Mon, 29 Jun 2026 06:44: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 d9443c01a7336-2c9b0992227sm48968555ad.37.2026.06.29.06.44.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Jun 2026 06:44:35 -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=DM7++QGB9GmTMFbDy49xEx0+EvG3fHygx+cTnWTwfqg=; b=ky xMRLGPXFhRjQqdj+2egHdUIneJ8+W1+dLPQ2CqwHHZis+w2RcUxRl5hrYTVbGhn5 bjw5HMQfxGRTfR32JROVmHvt2S8Dd5bXxPBeUZbKm59fXVm1q8BF+sjDMd6FPtYo 38EYYnKAVEn85a7igO2sEjSQ9wx6p2cNWtf0XT9/DQ0xmvqbEdKikzIVFXiKD/7b rJB6W2640PhGuCNey2BIDg0A1iNMEhPhQed+goqpUqvvDzrd1cT+99O7E9nlsuHb 3Z+x1J48jIGb2h2ERM6TODonCQMQsWcCn3LvKkWfDaUCSYdZ+aAMuUHC1HiPIqvo kNN/kAqSIcfxZtR8VSJQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782740676; x=1783345476; 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=DM7++QGB9GmTMFbDy49xEx0+EvG3fHygx+cTnWTwfqg=; b=ggAQXSks204HIeIc8OQdktN87/e4UsBMW4LszNDgYGaBLkG+1ipt4tkYRstEFi4T/4 Ydqaq+i7ByOBktZrRMK8A+ACUXzSi8JlTSKg4qkfdC1zH+1SwnXHx8W6qZ7l5VqvViMB vKzbx/Xo6KcLMwxz1sDDqw1mRQlUQx3d3m6BumSp7q4zbVPjyuExqVe1pZfF0557Js3t ya6ZjhL+USx02mAp5nW26W4PP/67xwzeS226dr8W+KNIE9iZGI1pvNTSWBvOMcd1/3/N e9YoQDimWGbQkPZ/qhd9Syel33tt0CcLYXGbycM74L9IHYbT4yxlRTJiUe5CHHl+sh8b TmNg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782740676; x=1783345476; 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=DM7++QGB9GmTMFbDy49xEx0+EvG3fHygx+cTnWTwfqg=; b=dgs5+HupCiyYgtTpT4Kpyg2MVeRD9f9iHRAZBY9IilRutJd4wdJLUYcuDTLkfjrwOx RuKSfD90T3D1/L/1zHj+JELNwMftZtzMH/Ait2E4uKqZZd0gWzUnZLpKeTgVy/OIBbGI n00qHhdIHdRmvmlZT/Xa3+Uam1qut1CkLsFCZmRCeesiRKGvrhRGUX39Q1q8AsjT0Bjp o6UTeNRb2rRmg+vcD9K56isijWg2VIKs1aKFx8F7GL6h6+mdpLfVJUQ7qdUIPIbhNtgT A5+qqwBfbybRXzWUtV7etYmrczsLkN5fZZodjzD4RYcJPn+zjk482zGQuo2i66YWySeM CDUg== X-Gm-Message-State: AOJu0YyCB/FeDGRvlnI0uwCSMSsnQQ8YZqrtt1/eGA2UiKXtoTmZUpZ+ nAeOL0Oy2szw5a2eFA8vLYdpjAYGXgf909ajfu2cHMvVvfJACyXlLQrHFHlGBbfbhwSwkYlxXoh 7HAWYx/mQD5w2hKgAzpim666Uw0zahw/XJtFKbzCR25dM0j4D2cgQo2ikVfnVzIaeXA== X-Gm-Gg: AfdE7clCfiZ4OaqP4s2Bq7a/IcWrkbB4VuRnJ5g41wvkcT9nKbi7dWGe8ZZoaC8qpIH D2w4ov067dD2gxvz7YbFcuphPcWqFOiE+w2jsY4DACysEqzCNeM623PUuRLLgB3I4tAkBkAwQQ7 dTQyEXz8u1l3Blw4p8fT8Pd1pLj15pLTOTJhJNg9JPqHw4/NSR68Bv7FUk6X1zaTF/J4KaUsRVn 7lneqFLvXnxWEHWs3+H+4XxIrzDqlgLV/emYkzzG0dGCsvsjFo/Uwqw6AvihZ3J7T8+4e1RzDnf GN4OaVLOaSetRsp+2iFC066130crSKvTbSAs8BM04a0JzfZTwomw0QF63k/E9lkhTllEh6kEw6w 0m6IhsqyAtstah1aFvyoZS7N8LZ3WV0RNkevgwxX415pmpKXp9hEWfG6Mghk= X-Received: by 2002:a17:903:f87:b0:2ca:feb:2aae with SMTP id d9443c01a7336-2ca0feb2cb0mr16842245ad.21.1782740676326; Mon, 29 Jun 2026 06:44:36 -0700 (PDT) X-Received: by 2002:a17:903:f87:b0:2ca:feb:2aae with SMTP id d9443c01a7336-2ca0feb2cb0mr16842015ad.21.1782740675842; Mon, 29 Jun 2026 06:44:35 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com, peter.maydell@linaro.org Cc: brian.cain@oss.qualcomm.com, Taylor Simpson , Pierrick Bouvier , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Paolo Bonzini Subject: [PULL v5 75/77] target/hexagon: add build config for softmmu Date: Mon, 29 Jun 2026 06:12:30 -0700 Message-Id: <20260629131232.2487780-76-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629131232.2487780-1-brian.cain@oss.qualcomm.com> References: <20260629131232.2487780-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-GUID: M3nZJ-lno54GNoOlC0gzXtnkdw37Ls5B X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDExNCBTYWx0ZWRfX4l6huS0zBHL4 wh0EJvvVtT+vMJU8I4wAY0Yh82nD84YJV8JlKPFa8zug5Ma1YTsi/uCa9m8fD1pm2p9VIKiGMPl wthvnJbKTDUk6XzObR16vvTyIt1L0kLYe+Wnk2I2932Z2YHDXZdN6aThw209FcUMW/M/Etmm6Gx IwGobyRMJRmNqCO4uP+oLuD9k8XrX60amrY8N6HPJ2oSRoUtXuidOiUT8qmGhJyEpRJKQGBjt5R j/UjVVoBc0p+/Vir/WMePSfESsEuY+XfpTMLWRy/6Gvmz1zx1nLfpmzm4ZL6yGubSj6st4d/Aw4 uGgxnRJL9H6FWKJdH68hCSbdojp9PBywVo6RowcDSM7C6SqPEcpYn5+YUGfv07USIqtSxKuuSJ4 3hm17748UDuCERJJHRSoYzA+JBmdcw02L6aOInNg78C3n0JPDcc21mfZslSBkIEfUBrZLhsOXvZ ygcfgXlE3M50pC4jHHA== X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI5MDExNCBTYWx0ZWRfX57OfTpG7Tzg1 1xm63eIy8ZTw0rOrEYnL1ot4ISTfkPj/sbVGeFW04hkt+UMDmzTEIokyJr0p2tcU1H89hWJhC7G Mn1WpeJef/LdeEPRYcrRLIX10v5hY+g= X-Authority-Analysis: v=2.4 cv=O9UJeh9W c=1 sm=1 tr=0 ts=6a4276c5 cx=c_pps a=IZJwPbhc+fLeJZngyXXI0A==: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=S56xvJB5AAAA:8 a=nnu-IgKveahPCV3q3nEA:9 a=QEXdDO2ut3YA:10 a=uG9DUKGECoFWVXl0Dc02:22 a=MH9Ivq0PDQRhlrFuIVvX:22 X-Proofpoint-ORIG-GUID: M3nZJ-lno54GNoOlC0gzXtnkdw37Ls5B 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-29_03,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 bulkscore=0 adultscore=0 impostorscore=0 lowpriorityscore=0 phishscore=0 malwarescore=0 priorityscore=1501 clxscore=1015 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290114 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782740889974158500 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 3998abaecf1..3b305d8ed0c 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 Thu Jul 2 10:18:32 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=1782740886; cv=none; d=zohomail.com; s=zohoarc; b=bur41c8OnmReKSQL8vYntF+SdcsQI0SxxUXimsucry25J9SNJpB8NnRzN6YZ57NqjxkHCM6fUc2aQGPt+28HcxMRgCJf226kxilUHkbDHvU+vfurEu5Q/dNsVJGScgJqGoeJm++qZJqS5LZYGxx+vs+cMAm9nFg9YzREkpVIWnY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782740886; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=abz2Mq/n8SBffnhENbeePyVHL3Y4otUvCkGYZ4pslWYh4oMnGwwOAF3EchLRujL6hhJLdjc/8poOp9P9xl7HWH8lyojTdnNtKIzhoW5WNu80JWEdgiFtbKwks5GlDQZTzZdSTdOlBXuns6Lqoy/y8DbeLFyHxjrcg5oBVQqSqeA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782740886080531.089174327851; Mon, 29 Jun 2026 06:48:06 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1weCIr-00066R-No; Mon, 29 Jun 2026 09:45: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 1weCIC-0003zn-3c for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:44: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 1weCI6-0006Qi-Te for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:44:55 -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 65TASwea2641481 for ; Mon, 29 Jun 2026 13:44:39 GMT Received: from mail-pl1-f200.google.com (mail-pl1-f200.google.com [209.85.214.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f3npes2wb-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 13:44:39 +0000 (GMT) Received: by mail-pl1-f200.google.com with SMTP id d9443c01a7336-2c9b1b608e2so18075495ad.3 for ; Mon, 29 Jun 2026 06:44: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 d9443c01a7336-2c9b0992227sm48968555ad.37.2026.06.29.06.44.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Jun 2026 06:44: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= yceAhRCtNZOpbaG7j5M0kMisT3HAlYGvNKxciZB2G+k=; b=YqhAmawBdc9+IwMK g9rQXXy4s41YfX3xJjT/Xddn0l1xJGnjhLEQHKrRt1J76gl6kzQLoLkodw8G7aye 2YTLGicIJPqfti2oXu1CrRvVfOglH80QmiHi2WIhvkiEzoY4lPuZq5e4lOs7W8U1 ADT8UoiirjMeZkjNyR1mtPky5JGt1bRo04SviCyW0aF8cLaZOO8QDNVkoPa7urvy VRCE5RE/d+PYQ+tGAJQDhNXyjDors7vMn8a72ROu46BUPY40Bp6hY54w+D3fXW3E 47MlXRfQ+y4uo7AjFmHjd2MpLyJ6q+VHcRJ3TgJ0K7aoPrtYm6221dYEFRaJWatC 4b9fsA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782740679; x=1783345479; 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=VnO3uhqyPFGMGl81hxt954+JSGudrqWWfsD1DJGmHC7QwmRhZBoD+3wArRupy9xCGU +KKn+lszu2H0lLAIt9sh+qthGb2KdctHGpydAq3656M8VR+7rCoHUROFGJo8KlSclz0S 6hcarjnycJIIuErtxlAqTd/CebpVKs3s48nqS4OOxyXBiJ5mYolDD/BHNzyq0/NturAL AjhQA41SJkoZa3XciHccTeSJ0xb8caWhhvSam4lr/CvEsl7E1qIFsLvj73cq3gKG4IQi /hknaf84tIMmW2UAWHYa0m7yIzr/Apu1dD75hzk2rUm3imewn1vC/p4O9bRBNOEmZmOm 1IxQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782740679; x=1783345479; 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=aikwHeb4qMbc3UddzwWy8djGURPVMLQUqh1LAJFE/WAudrOcNPsPbwXYflINLJ8lDK JfudeJ/ll7KNI054ow7ai6bk7QxDqY6qbxt3lT+gA2d9BIgR0+6I2nQKsr+9u9jUCc9H V/sJiTcEJbJeU+3M8l1iPoI02aALWCcIL/1AtnCEu7Uk0ja4mYxIPRPq9VzRssqa7qgx +RXlGYEMWElnChg/ffmEKE0CA+HmxzvfhXft30yg65Vvgh+JOP5J8apQfmZvGvw15eGB 3vQVDserD0HN7tHgLOy5D1zPZPypsM/8b9PxIsih/0ekV1HSj7NlBHoo/6uTBKl4qdC7 xnHQ== X-Gm-Message-State: AOJu0YxJsnVbgc4nXYFVFyDgYcv/dr5PBB0ifs5uQAElN/9HSFdQkbRW ouUbLq7SIziDHnQyT5hN5muWA/arPzQVxnlBSsE8o51AhswyTN23EUqBYBEcVk4odusAU0fU1L0 zLXPSmvQ/h8D+62spqYPaRmlBxvR5HLPS6qLm0z9BkizxPcct70G21of2CkO7KVNZwg== X-Gm-Gg: AfdE7cnADV2a12bI3br0OXblyrKn657+K3bNIZLm68OEAMl/bA0qaitKaszAd2ppHlw 0nugYDGs/1jTWCzF9xHR9fnwc8NkDY16qLhLhuu7G87csP7p/pwcVXrLvsWb9t8PY+zjqrnEEGI 2GxQqg8N+3Sjar9Da1wy/8nRIvzkpahf7bmsXc2Pr/1fHf7Q3xWfp0ZolofikDTlqsOnfIeI2ZN UlZh0nkl+miTCXU1wkNUPAy5EjxoWYxIWxq/wD2fT/snT8faCmBTQnO5J/4liZ93xpCQ+vb14fG kq1H1LmkAqy1q/WFqWvf6mn86zSNm9EAvacRCvmMKmOij0IyleFlIqwbwwSAUGxPIGJOBC3K3Nb C9fhe4sJRAdqSlyhGRvex9aYPhKPU4ybPqoOCUGx6ON2l1Q7leQEoWpsJ6rY= X-Received: by 2002:a17:902:f693:b0:2c9:d539:bdab with SMTP id d9443c01a7336-2c9d539befbmr54120515ad.30.1782740678494; Mon, 29 Jun 2026 06:44:38 -0700 (PDT) X-Received: by 2002:a17:902:f693:b0:2c9:d539:bdab with SMTP id d9443c01a7336-2c9d539befbmr54120085ad.30.1782740677801; Mon, 29 Jun 2026 06:44:37 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com, peter.maydell@linaro.org 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 v5 76/77] hw/hexagon: Define hexagon "virt" machine Date: Mon, 29 Jun 2026 06:12:31 -0700 Message-Id: <20260629131232.2487780-77-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629131232.2487780-1-brian.cain@oss.qualcomm.com> References: <20260629131232.2487780-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: AW1haW4tMjYwNjI5MDExNCBTYWx0ZWRfX0ict2fyt08ow CwdIxUFAm73yaf1PgHUAHZHdHL8yfUmaSkX3XsCXPX2wCkhdg6iQrvxBZFBikeFPGqxvlznV4KA 8iwohhdDnbUcnpwU+xQg1TN9auRxkh2cLiHIDTq1nCbwj1IFF3oqd9e31nDRj0gVDuFfhk9yoPw 3upRfkkd+mivd6v9f4z5p+m7JtjvYvWMHAdho5yQXZd2UYItjIwFH246d6C9abJ3lKzx6h+vXHR 3zyG/Z54LCPHykKOhoiOrhgW1m3nS3umv00nmLHHb6dnbmSZ90ss5DgPQLr5omSb74ADjukAn0Q viybptAgPyRwJL81aSXnH9qLJVEfQCZLbzPB+SS3Nk0Q6DlnFwRbEDJjxuSLT+oJMuRuiBpxOlZ GgIE4LmuIaE9CwsJNo3xZalgj+too33+7Qovcsn1s1FIMMALnae+nx9wSskKyzA8/KYV5kjeBjx T/hkTg6Xnp13uKNZw/g== X-Proofpoint-ORIG-GUID: hSrJfOY_r3A-7vZuAaHXzvAoKjIVBKKP X-Authority-Analysis: v=2.4 cv=T6q8ifKQ c=1 sm=1 tr=0 ts=6a4276c7 cx=c_pps a=IZJwPbhc+fLeJZngyXXI0A==: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=CPh6EXbgsUTdwlFVG8oA:9 a=QEXdDO2ut3YA:10 a=uG9DUKGECoFWVXl0Dc02:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI5MDExNCBTYWx0ZWRfX+ahbFNPOoZmb IKb422X2AAwFQTYQfh7eMfj51Wzpdnl9Qo4ql+6eNWrACEFFaXokXF7FI27QrsnB+f2yPNeAOaH 0Q0RkSRuSxwLMwPhtoGj3pUXFpltK2Q= X-Proofpoint-GUID: hSrJfOY_r3A-7vZuAaHXzvAoKjIVBKKP 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-29_03,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 priorityscore=1501 suspectscore=0 clxscore=1015 adultscore=0 lowpriorityscore=0 malwarescore=0 impostorscore=0 phishscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290114 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782740888035158501 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 Thu Jul 2 10:18:32 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=1782740830; cv=none; d=zohomail.com; s=zohoarc; b=elTu5rhzOLsPFhJc9WVLFjlwOaJ1DSfH/QuAAPPcaHYrVpXSt3lAcrGjb/qhLRauTdG+zHF7exF/awrRPv0kLeSe7mgLYa7V+vbhqisIx1aSTZjN7AfUiXsPyQzeTCUYNthuv1UNQKvs5+Jz4RCko7BOiHB2PfrT6DUGPqhSC/I= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782740830; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=6Wt5EJgewH9h32VqnTvpeUdkce3hlYMJmq6TBx1dEGg=; b=MrThbe/HJsZ0p6KaGD0iepvXYwVxyCth6rXuC6TBDlv/q3MV8rxxmsF7dddMPwUlMYaKAhzbjUHUWnGX/wHrKmfOj2EeBt/aT7NS80skduMkBYkBp+67x5cFU7DLe4qm4t4zkpWFoMHUm7UnRbf3mr0okmwzRCvEzfi91iabocw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782740830444370.3919212380033; Mon, 29 Jun 2026 06:47:10 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1weCIr-00065S-HP; Mon, 29 Jun 2026 09:45: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 1weCIB-0003zh-9l for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:44: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 1weCI7-0006Sr-Nr for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:44:54 -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 65TAT3vv2646911 for ; Mon, 29 Jun 2026 13:44:40 GMT Received: from mail-pl1-f197.google.com (mail-pl1-f197.google.com [209.85.214.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f3m4tshjh-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 13:44:40 +0000 (GMT) Received: by mail-pl1-f197.google.com with SMTP id d9443c01a7336-2c7ee3952d6so26054435ad.1 for ; Mon, 29 Jun 2026 06:44: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 d9443c01a7336-2c9b0992227sm48968555ad.37.2026.06.29.06.44.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Jun 2026 06:44:38 -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=6Wt5EJgewH9h32VqnTvpeUdkce3hlYMJmq6TBx1dEGg=; b=VZ K/BQjPGeK6qnmNw0vDKNBmhS26YKcFXtYO8vt2hbUraoqqga80CHt8wo7Fv5WZa2 2qNJ4E2lu7lK0SogLv3VFF3sMMV3KfzU/WqmrB1PFs1d0ut8M7iFkcv2TdTxvbds y5jaCMiihVuttyLVFLfHT6WpoMb/NJM/dWmrgQTlaMT0hvEx0VOHfz94hRfxxqiv dqb9e/mov5Vx6XAPpAzQEJsMYFQCQ6Tq6r1JyqfW5I6weBzemBiNp3ERdc0H08fI BtRlD440CADzjhLY+UTJLJHSJ0MQQOUyY7g+9Q+7+BN3vawGxLJc+cof3f2tmyIL V1nhaW+oZZVeMOulAyRw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782740680; x=1783345480; 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=6Wt5EJgewH9h32VqnTvpeUdkce3hlYMJmq6TBx1dEGg=; b=PAJzaz3FqDd6zDvOcF7NCXF8NmdR9Xtbc+PnE6WRdAxH9V+lwov7S/cYLt/Qo/E8qh wZIb0myDCvP5Ji1dHxYenwF73rqOneckWSpn1QMkc1V5bouy79Y3PJpz1A6EYUMsZ50U Avxjg+45F2AkTbq1zaaxE/5QVKSd3Tpq2/ttdbCeChRMa437PIefEEVi/KLmxEm0epSj lcE9oEzUmlPzCPYI8jlen4iLs7cxC/CyAvJe+WZjfMRiPzH2eaRmEjn7fOk87MZeDQAF f7rcgMiNJnp4ZQ5LIGRhvaso9eQTMWwSaS6/a0JcAZGC+4B5RJBQ9bNXnv6UiGB570Q6 x8mg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782740680; x=1783345480; 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=6Wt5EJgewH9h32VqnTvpeUdkce3hlYMJmq6TBx1dEGg=; b=GXrWO24YCcTF2R3uw9juXSw1vHGJdTP1FDZ54sSJA7FGQRGTF8Tx9D360m0HsM7xd8 Tav7+rWJhOEC72N+4uAOzdQ+9UohqgOo59qEqALJEIwizYcrMXz4prkNAexnyG7AkAea 1pPdojURY6GVzFdypBKc0T01uEXyZQOJ8dPIaD7DvmLmZOY18CtTXeiEAxEC97qQuI8V w1gk6sYuTdh4woQZyyq+XIlVJj3dwGBhuHin7EEAIuTMDIPQA1B6nMfq0N1DgLUhcXtw hjnEfPOQ75UlPmMr2iLOrdZDeZYMZKaeMF3eIzRkMsXGVrYKv2sbyogoxicGASsuIQ8g ALIQ== X-Gm-Message-State: AOJu0YwaL+1e4Mt1KPK9LrabzJBxWjzf9a4SJ6L/yfwUcuEa158rYTez nC9XhkmljuVkXLPCOrwKVRCZAlL6ej5DBmcoUHBhuHmPoJHvfaTMtjYzb3vxFbHkcuFtYxNpOlV AXTpaEeRscvWchNCZP++yIeB7LLm0MFU8MB8rkHCc6v+drbIICRzLvETkySn3Qrf43g== X-Gm-Gg: AfdE7cknq6Ic9RVW0RkgDv5Ahvk+Up+7zigY87rGN+fz09Jo3jwZVu9x6fMxfVvyAHI IoJPPGqMRlrh9X6e7EV3ZFNmRTowYxnmF9oXupVWB8Y+LjD/GUuCM/3ekPiKTbm1G3/BVMSQ92Z YdN9vl9HIqJl9vCTQe3fCb1ZeQbW31R5SdVJk4l38S7UBOlNI3SLRmu0Bod6vUA7Zp4EP7J/GiL JrFez8uyGpc293s65H8HL7gtRBMuzlbbR4kgjaIsElHm5OcaKPcxQ85u1Tj/mI2LG1VjrEwVXhK 9752TUYQ+yGObMGz6maPnGfPMP4wN8WnK8P6OPuCgeh5CsNXBLQn7umJqE7ayQKcKANehP335Bu FZUbZ5P053QtFg/ygaly+uvfrYXPPM1GYg0Kb2vewfn5A9+WF74aVx+7udwA= X-Received: by 2002:a17:903:1850:b0:2c9:dbb5:c1ec with SMTP id d9443c01a7336-2c9dbb5c4f3mr51537495ad.47.1782740679653; Mon, 29 Jun 2026 06:44:39 -0700 (PDT) X-Received: by 2002:a17:903:1850:b0:2c9:dbb5:c1ec with SMTP id d9443c01a7336-2c9dbb5c4f3mr51537195ad.47.1782740679251; Mon, 29 Jun 2026 06:44:39 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com, peter.maydell@linaro.org Cc: brian.cain@oss.qualcomm.com, Fabiano Rosas , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Pierrick Bouvier , Laurent Vivier , Paolo Bonzini Subject: [PULL v5 77/77] tests/qtest: Add hexagon boot-serial-test Date: Mon, 29 Jun 2026 06:12:32 -0700 Message-Id: <20260629131232.2487780-78-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629131232.2487780-1-brian.cain@oss.qualcomm.com> References: <20260629131232.2487780-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDExNCBTYWx0ZWRfX0ON1+c48iZlw Iyv7YRUJ0CoLl4wqFB3M7Eqo//0bPIi1SO0BVKgZ1uXmbzU/EEcMD6U7TR+RCnRCDBZZH5Lvls2 7P1s9yha/nxVNwdh9zgfqm0c0jElVZZ+0D1vcjOUxELN8JMDEQ9PP+dxseml162ZxgcLNk1jOU5 MgSt8sqrlIYjZPzSX6/iG4Gi0ourQLP+Z/GK2p52XlhB0OkjNabWN3DStNQ4952v0Rp/epHEay9 d7jyOhlSvYJOJ5ImGbGqD8sZnJ2Fdy/xe2XjRIR+sQ/tXKEbXAg7o86a2ST/WIJXUpy6hvFS8IR 0Wn/4r1DscZ/ibSR5Yd8GU8D4NS1njTsPbG/w5srl8UayVkvYjK1ANs+8oakfaiusc5G9SUjYJp d+/P7oEObQ1xeYlRWINKHq2Ma0BuqqB5rMDnAx2Suuqbu5Ub3cCbYN0jHAJHP6L38CuIXTzesNd 8aGXv0kURoJ6G2FFtaQ== X-Authority-Analysis: v=2.4 cv=R58z39RX c=1 sm=1 tr=0 ts=6a4276c8 cx=c_pps a=cmESyDAEBpBGqyK7t0alAg==: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=KKAkSRfTAAAA:8 a=EUspDBNiAAAA:8 a=_K2MQWaM9sUw3x3I4k0A:9 a=QEXdDO2ut3YA:10 a=1OuFwYUASf3TG4hYMiVC:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI5MDExNCBTYWx0ZWRfX9EsTpXvM2o+c ckenkrSHSYf1j1EHzkSWjXzS9JNCxfMl6dKG1+8jJEobJ6CoY9MSMmYLe3LQhijV4wP0sn4s/F9 XbiJGbwWGMIe23xv/jcBBcRIhX9QeAY= X-Proofpoint-ORIG-GUID: HQJ6gyQb1vekIzsmIBRlVlp0bXgnqGoo X-Proofpoint-GUID: HQJ6gyQb1vekIzsmIBRlVlp0bXgnqGoo 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-29_03,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 spamscore=0 suspectscore=0 phishscore=0 clxscore=1015 adultscore=0 malwarescore=0 priorityscore=1501 bulkscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290114 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782740831576158500 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 e154abb05d2..822e0bd2869 100644 --- a/tests/qtest/meson.build +++ b/tests/qtest/meson.build @@ -296,6 +296,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