From nobody Tue Jun 23 20:53:54 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=1782167644; cv=none; d=zohomail.com; s=zohoarc; b=PVC+6otGvnx3+VgK9NuosYYjBFFZ0tfY3q/WX9fPCCEbwEHbHcOas/SwonxJXgwt7NZGNR+5TQCEuhwn8KTxB4Eu/ZNwj4Gax8UjnqDq/uH3PDN/qKWquAcwlkROlmLP1/Y6YXYhMATudVntlCx4e7XQYNtuQAkBm7CmMEdj9Sg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782167644; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=2bTqkaayXHvx1tK63Al2vAr6LUw4GX3XcKczCBU7MVM=; b=UfBR12kZPGXwwdBWBkscD8mH+EPsOJMhAfQCz0dek2YG+CkqdRLtrTkI+3rmVpudeg/7WCurwxZ3trjdwd8Kp8cXUsOzUlsZ9+7xbFqd5fq6XtPDKYgMLk08WmWpi5Xp0dQ+lpkdSrF0REn1NOfEB7ohDzMpv6LEmZt4xEn+cV0= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782167644135233.25077754841357; Mon, 22 Jun 2026 15:34:04 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wbn8t-0003JC-2T; Mon, 22 Jun 2026 18:29: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 1wbn8q-0003I6-SE for qemu-devel@nongnu.org; Mon, 22 Jun 2026 18:29:20 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wbn8m-0006Bt-NW for qemu-devel@nongnu.org; Mon, 22 Jun 2026 18:29:19 -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 65MJarVw2177096 for ; Mon, 22 Jun 2026 22:29:13 GMT Received: from mail-dy1-f200.google.com (mail-dy1-f200.google.com [74.125.82.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ey37hahbf-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 22 Jun 2026 22:29:13 +0000 (GMT) Received: by mail-dy1-f200.google.com with SMTP id 5a478bee46e88-30c1f6c5559so5826620eec.0 for ; Mon, 22 Jun 2026 15:29:13 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c1bd8d78esm10945995eec.18.2026.06.22.15.29.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 22 Jun 2026 15:29:11 -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=2bTqkaayXHvx1tK63Al2vAr6LUw4GX3XcKczCBU7MVM=; b=M3 kz+tLacTzp695Pf8lHwQ5my2Y/12Z3MIaJvAplLiao95C/sizBoM/PgMhcaAPimV 3UGCvsPKyGSIlRQU3+g13VM50aK3IbhueuSGeRAqyrm4hS06+0INhMjUBQaNypH9 pMJBGcoCcD9D9yGNWA2Z9OOuAO0TylyAWTUPruCg1U74zG9gh1TRaaCQxII3t9wo sSNbU8vitT6g6/x2iQMJzyMQfPt8pcGm3gcPkZ+L5znaLuZ0G1uM+6z6YVTpK0xT VbiUxGuMUAGGEHu8iz2a3deBl7rDcaabnlMR6nkyzXpl7vS6yGaec7L9H6WUyahc /rf+IW66+Im8WRMQ9KlA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782167353; x=1782772153; 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=2bTqkaayXHvx1tK63Al2vAr6LUw4GX3XcKczCBU7MVM=; b=HYMwhxGrwx4ugU+am8eplrK5ddOLEZjUr0SekpFZDcRgAjSx04wzMNJ6UjTDBzbZzQ Vam6wuPtDDn+RIQ9pIpJl0rLIYeZOLFtZ0MOyk5Rwt6827qpEqu+ZZVNi3bd1EggEtYO a/bDqPbIKlKOKGuxAlFA90T+7FWsMg2cs7X8+c6VTrcHDAoOcVVsR1m8PvQQ6YIAsjbl me0xx4y7ZPWcu9F18JvHzXiXzRwGh83X2WWAOuXKVA1oGydxyqESFmx3K0IFT2bQSta5 Bt1A+P0+eP2waraEsifrWJzhOb3GFCI/g7mAPFwyMAdLgxqxmY6lXMQtIJF8UWFsUMa6 XVCg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782167353; x=1782772153; 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=2bTqkaayXHvx1tK63Al2vAr6LUw4GX3XcKczCBU7MVM=; b=QbWkOMPlNWxqsWRl+KIKoziMX+nkkhTt9BT2Ff0ACQJFOVUFeRlI/e3OfK7x7YW97s Fh9oLI8imMbuBdzDsMbSIppUMii1KPLbQcJ6avpGq03ZYeclV/BKFOgsPkAar/TJJLv+ mg4ypECLKA1qrJcmrND17Ag1gW7PJLw/M2OOWDP3NNb54SRiVh+7TC3a0Yz1HOnd0MYD ys9JGjA92p8IheljDUJ+E0qEEc5gEznEIK8VO1abV4SZ1LflxaIYbht+X90XqSYLM/VX PDdNYFWRLakUabM6sA15IqoZr6ST4OtF3/zbtlJKWAr5nIoUus5Lp1qKFB2xuZ9RQ81C GQYw== X-Gm-Message-State: AOJu0YytdUP+eex0qBXBlVPzlHaTQOL1hragn0O/dXj/SBcbOsTsM0Lg 2Ug1IWAwey1k9KATxT4qqLlBvjzGwP3cjZr+SGLqCG2yHwVZvT21Gz6Kk7zhPKs79r/49caX9PU 3fRmYqL8PpCnMVJ/w2ql0P1q7fq3BC7bhU/q47OdDV7z6ac6PKjj5UZT34oCbc7nH+Q== X-Gm-Gg: AfdE7cm+9kJyFXpAxKYE6/n2NyZGXgY+jDkE1j1xwt7me+/cZ5IgkDY5yQrDlCMCsPx wc4RZt3nAOHW3F0twZyH9QF2P+NERq0bcqOTtuo4sbUvuH7S0wZ/TO88OpuPC+HZgMfDs4cS7gY QQmcdM1bdPT9j3zXMgiaH4Afww1CL0ijNuVBOsKRvTXm3tALv7sUCRWA5hJ9hmf6n1UanJo6+wS w0e3k8Lh2VnK4KBAwnXBnBA0NMHGAR3sogaQ196aSx8SeZyVwSInhjcaYlqxFLIZsw8KzbMtW3P keFqMTjzYbTzTiW0jyG8fyqRYfAsVC9/kPdGmrng2+iVGjknEjU58oUVWFlxHKZK2I0zsJnAf86 cAh7QWQU6T2xexc2EjPzyXoCPyt5fa/mabuVWvQ+WiUn1Ta5xhrigLcq+/mM= X-Received: by 2002:a05:7301:4083:b0:2cb:4b8f:b2bd with SMTP id 5a478bee46e88-30c06ffd51cmr10492707eec.6.1782167352836; Mon, 22 Jun 2026 15:29:12 -0700 (PDT) X-Received: by 2002:a05:7301:4083:b0:2cb:4b8f:b2bd with SMTP id 5a478bee46e88-30c06ffd51cmr10492689eec.6.1782167352362; Mon, 22 Jun 2026 15:29:12 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Pierrick Bouvier Subject: [PULL v2 01/75] target/hexagon: use cmd_array() instead of get_id() Date: Mon, 22 Jun 2026 15:27:50 -0700 Message-Id: <20260622222904.607771-2-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260622222904.607771-1-brian.cain@oss.qualcomm.com> References: <20260622222904.607771-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-ORIG-GUID: zm0lhLQuC6FBqwRzKkdWIgTifU3k_2s3 X-Authority-Analysis: v=2.4 cv=ecANubEH c=1 sm=1 tr=0 ts=6a39b739 cx=c_pps a=PfFC4Oe2JQzmKTvty2cRDw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=gowsoOTTUOVcmtlkKump:22 a=VwQbUJbxAAAA:8 a=pGLkceISAAAA:8 a=20KFwNOVAAAA:8 a=EUspDBNiAAAA:8 a=SrZkeIdwbWuKvdoqoQQA:9 a=QEXdDO2ut3YA:10 a=6Ab_bkdmUrQuMsNx7PHu:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwNjIyMDIxNiBTYWx0ZWRfX9E1v4WW7G8l7 opGNkKUi84QPNNI3KQW+c2Qt6WNlOCEtJRsD+Jd8YaxxkGR+RnJM3fB25B/EYypdcn3Z6QlJA9k mKEDSSwx1Vh7oLxpfZY/7qYgM+F4G/s= X-Proofpoint-GUID: zm0lhLQuC6FBqwRzKkdWIgTifU3k_2s3 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjIyMDIxNiBTYWx0ZWRfX1EunEwVfxy/T 3Kck1/WPxx0m11Zsr96y2cS/czpK8++JWojcimBQlKYlqCjU4hFmd1kHzxfHBaudMMA5FmFa46V C8g/OFF/yzks86WDJqZACMD+RybECeZCldcHDCsiUZqqwen8rXaIYSTxVsBBPyLXXDPG0UfHnZB XPnG5I5lv4MhGYuonErOI/muzhMX2XbuqIi3bqaNevxWAJVRgxOSvRebXitGawJCUA7eRPR9zqX /9PIW6PoYj9tnjD0TycSXwX0Dof9VC8RcfVyZp1Cb0UrY9EW5wyJXEAd+JKh7HF8RINLF8NW6m0 Zs4j9naiHEfeJ3UtibL+aYEhdh794mbuNHqimN1+ZNyCj1f3UZTr+/IjtcE0QkScfKVg8tKUNIx W1m9EYimbysfxvOmoiWFc3MkAKNZGHSzpxBLDNRhSaabjYdLZ7VpT7Q9vUL89FIfQI+8Z7k34ze YVCpiH9a7F+jjS7Cddw== 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-22_04,2026-06-22_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 lowpriorityscore=0 priorityscore=1501 clxscore=1015 spamscore=0 suspectscore=0 impostorscore=0 adultscore=0 malwarescore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606220216 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782167646061158500 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 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 Tue Jun 23 20:53:54 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=1782167649; cv=none; d=zohomail.com; s=zohoarc; b=O5TdlVDslcOyhkRMaxLFm+UMF1g4KBUjU/G5JOvnfa3vMTGJ7+nxHY6RGGcSmznFz3JzwQOLLe7KaYGB26b7AxrCJ2HCcOkmmR76AApFhl76YxfJk92pEv31P5D1K8j/lsDYyztGsxLgL/SAh62NYN/0J7oGk2m9G4LZKztkYkM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782167649; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=JbLoyRM9H7NCFOwvGLkDMRFWqFmzR5imiiFSxclX5P8=; b=h/4GbyycGe/6975yk4jtbjIs3dyVJfFfZlANcayg7COCxQuXVUA6zOX+Wk6BbyUqDmEvUZfjE9Wnkf+GBN760Sl6sWRy0mP3dVedHPKeabfAEsMCx34zCZnIk+fKN/1QqEbP/f2cdzFIdfZjaUXE58gbnIk/yP8hWjcA3fvjYGw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782167649228997.1645649526215; Mon, 22 Jun 2026 15:34:09 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wbn8t-0003Jm-Oj; Mon, 22 Jun 2026 18:29: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 1wbn8q-0003I4-R4 for qemu-devel@nongnu.org; Mon, 22 Jun 2026 18:29:20 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wbn8n-0006E2-2J for qemu-devel@nongnu.org; Mon, 22 Jun 2026 18:29:19 -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 65MJce291938779 for ; Mon, 22 Jun 2026 22:29:15 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 4ey5ye9wsd-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 22 Jun 2026 22:29:15 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-30c03c1dda3so6315145eec.1 for ; Mon, 22 Jun 2026 15:29:15 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c1bd8d78esm10945995eec.18.2026.06.22.15.29.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 22 Jun 2026 15:29: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= JbLoyRM9H7NCFOwvGLkDMRFWqFmzR5imiiFSxclX5P8=; b=TcCrHZt8ITosnAN5 d/NDVrkEeMJmwZKsF376Vttrw8qioqKgFOfmklH3LIfhNG7DH9V05MQZWkQXFUH0 Legbq6IVx/mWCGSr1HLYA5Un5yhoJFQKnT9Zs6BNi3jTOw2aumpONefMKHseuxfp Iy9gCUsnVkdSKF1H3Ob+XAV4nkqI8BBXpGwon7lNkVEK9WJFfQ0vO5SNaMamosEi 7J8Cq8XVKW/e5HSdndpL9/qxucjBVMZ3YlYT/u5mtTYA4x+HcYJ0ZxYZnr3rKnjG bxKIfcg0X5A33rh2XGAPqXj+fA7lZKHw9LlLcgB5UwsVEGZaLdPqUzuoXbwphv3M 60KffA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782167354; x=1782772154; 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=JbLoyRM9H7NCFOwvGLkDMRFWqFmzR5imiiFSxclX5P8=; b=WCz5IDqZjZ2aSHLl2kjUIIcGnjobIFvLLKYwZIaF1r0SJACv1pXf8u0zN3W1D3wkH6 XotSjyXk7lUW0IadNrjowqhBzdHONbF4qvGzhY31VpWHDvZvfgJ6oS3Iur6TUcqDRA7p l62RZATas33vX1oIjetcYpDd3kNZRsEgpFeeuZZUVH0c+Vq3eNBwzv1OF/02M1Dz5YaU bqIw0l2rey5QJZjuVVuWxsgH/UkNbERMyxltoI15mH5WUEhyUBccS+d2YdRvM03NYkMW 4nSkwDxoZ6Jci2vjnDk2tZNFMMD4GIDrqnGil/X028QU1RfWmqR0O+G+qB3BxfJT7x82 t0cw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782167354; x=1782772154; 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=JbLoyRM9H7NCFOwvGLkDMRFWqFmzR5imiiFSxclX5P8=; b=TrBGqy0lFcM+E/JQe0vLwdaSuoskltZoSgeW4QlaU/FRAOnHQav7eehbqgZf3P7DKn 5tgxjWWxg9EiuZi06PZbUXtch4BWtuBmyRmypmN2svA5tgIJcaAkz+iMkz5EK5qe7BER ztyVHoPWFADqTHpOL3yybBN1pGiaz6stSNW8E9RBw7feTL+jljD79CWedH0KWWHrz+AP +trVDvUupztOBEPOLGwxGYZGlgd9pkIM/ykqv4acYe9Fmp2SlK6r+BnZUjBJeTmtnxsa 75Z+jieZshh4aLvvaZ7jCjxV6jPnbhpf419AuxP0STaSFIDNV/wm2oJxpacZpoKTQwTQ EVew== X-Gm-Message-State: AOJu0YzdA/hURHco+oDX5WBS6q/5gmJKjO/yIyOWYBTtKPVlbmicO3PV +WM/Qj1tT336Wk3I3+iV7jkaudhbjnObFD+P4N6lqWFU/iBZWUIkVl8IGoRPtJite7aZaxbNhLV 7/tHwl27CU/0NC73nDBT0on7tQXJtkSxyk1aSuvtLqqQ5ov96rd3LnfqlzDrnmMf7Yg== X-Gm-Gg: AfdE7ckTjdV9IZ0mXW39zRoByCpfkQ0xctkDZFgDWmvrxC26SEsvSbZBoTNETT0n/Ka 94KaB9XvEGljylH2qeps6BZf4RLw4FpmV27DqrgYRQY3nUDj2UqbkOXXlgGXslznAA6WxJfDRF4 bYNyBFAVn6U4vERczqaFl4tpbJL1sugDTD9xHNOiCw6BgIpokSnfHT9THbhUNwiS0ZvhLvlcm6e S9yP79kahoTgNgy5gDxD0uEu7voc6+Xm/8uqxp13JHg2WVAvZt09SWPBD5nQSTk/N/79bb1HVz9 H3O4XFJO+Zl3pU5625JyapnHmgJintBkf30A9KEAymkhb0StO0kq8NOEVJBEmldJT4lshJqf+I9 3NYHEaJeXjrL9Lt67zymR9XWuIx6rlg/knk/qGx37I8DiAT7SEuF62NIH+6c= X-Received: by 2002:a05:7300:a143:b0:2ca:8099:ffc0 with SMTP id 5a478bee46e88-30c1d96faacmr7855695eec.7.1782167354003; Mon, 22 Jun 2026 15:29:14 -0700 (PDT) X-Received: by 2002:a05:7300:a143:b0:2ca:8099:ffc0 with SMTP id 5a478bee46e88-30c1d96faacmr7855666eec.7.1782167353395; Mon, 22 Jun 2026 15:29:13 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v2 02/75] docs: Add hexagon sysemu docs Date: Mon, 22 Jun 2026 15:27:51 -0700 Message-Id: <20260622222904.607771-3-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260622222904.607771-1-brian.cain@oss.qualcomm.com> References: <20260622222904.607771-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: YXmQ8pSI1hlNlW8-y0kj3Vpwda5WlXU3 X-Proofpoint-Spam-Info: AW1haW4tMjYwNjIyMDIxNiBTYWx0ZWRfX50Dr0DlHUcOK COF9AuGtQGpFNxkZKTYJ439zlQKc8Yo+ghoVyNHa9EVBU7zeJns60BQf0+/ZGmaUFSYJL/69/2w Z1gqYngSGaiQPt/n80CtiHKSRxxGXC4= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjIyMDIxNiBTYWx0ZWRfX+0pbdFi0W0ZO 8zwPFnCKxhou9xwWkzjjW16DPvwSHoVSMZJ/HgBISrgAF/M7CvZzbgb+5yZSc2Mbg2/dYURobOl ybSp9AIHrwqU5pa4TG64T4CkMWaQEQ22hP/nG7pjI5vOVQQrUrJfEwXFrt458kMADbNaOiSYRrD yyCeW7QQVTQU3jOsJlWfjjiz79LThdJu/M4tvoq61uqgUILm33EYu1F7A2LeCa47JdarG4+qwTA yMMjkLkL9zUykVV/xlMAy4RanG78nCrG26wBms4S0HvBluiSpqIuV2zV6Pe76bLb6opwHRuSlyn Lk7tpx9ItsZ5PN7P9BKmO48vihVfOD2LRUxrpExIPChZ4H5vocclY7wf+ro2vMAEkYT/5fdMa+x nKOnMvEy3pryc7IBexL+fJHdnfIubLeYL6fW0i4zwSFfkG8PKS/zfnXv0NfS696tj6EUkTG6vrY K8qbaSotc3YGJN5qKoA== X-Proofpoint-GUID: YXmQ8pSI1hlNlW8-y0kj3Vpwda5WlXU3 X-Authority-Analysis: v=2.4 cv=YpI/gYYX c=1 sm=1 tr=0 ts=6a39b73b cx=c_pps a=Uww141gWH0fZj/3QKPojxA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=NEAV23lmAAAA:8 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=fXLLft-zuLPsu7fQao0A:9 a=QEXdDO2ut3YA:10 a=PxkB5W3o20Ba91AHUih5:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-22_04,2026-06-22_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 clxscore=1015 spamscore=0 phishscore=0 priorityscore=1501 malwarescore=0 bulkscore=0 suspectscore=0 adultscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606220216 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782167649989158500 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- MAINTAINERS | 3 + docs/devel/hexagon-sys.rst | 112 +++++++++++++++++++++++++++++++++ docs/devel/index-internals.rst | 1 + docs/system/hexagon/cdsp.rst | 12 ++++ docs/system/target-hexagon.rst | 102 ++++++++++++++++++++++++++++++ docs/system/targets.rst | 1 + 6 files changed, 231 insertions(+) create mode 100644 docs/devel/hexagon-sys.rst create mode 100644 docs/system/hexagon/cdsp.rst create mode 100644 docs/system/target-hexagon.rst diff --git a/MAINTAINERS b/MAINTAINERS index 93df53d87f6..9d195e56ce9 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -258,6 +258,9 @@ F: disas/hexagon.c F: configs/targets/hexagon-linux-user.mak F: tests/docker/dockerfiles/debian-hexagon-cross.docker F: gdbstub/gdb-xml/hexagon*.xml +F: docs/system/target-hexagon.rst +F: docs/system/hexagon/ +F: docs/devel/hexagon-sys.rst T: git https://github.com/qualcomm/qemu.git hex-next =20 Hexagon idef-parser diff --git a/docs/devel/hexagon-sys.rst b/docs/devel/hexagon-sys.rst new file mode 100644 index 00000000000..92ebc32dce8 --- /dev/null +++ b/docs/devel/hexagon-sys.rst @@ -0,0 +1,112 @@ +.. SPDX-License-Identifier: GPL-2.0-or-later + +.. _Hexagon-System-arch: + +Hexagon System Architecture +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D + +The hexagon architecture has some unique elements which are described here. + +Interrupts +---------- +When interrupts arrive at a Hexagon DSP core, they are priority-steered to +be handled by an eligible hardware thread with the lowest priority. + +Memory +------ +Each hardware thread has an ``SSR.ASID`` field that contains its Address +Space Identifier. This value is catenated with a 32-bit virtual address - +the MMU can then resolve this extended virtual address to a physical addre= ss. + +TLBs +---- +The format of a TLB entry is shown below. + +.. note:: + The Small Core DSPs have a different TLB format which is not yet + supported. + +.. admonition:: Diagram + + .. code:: text + + 6 5 4 3 + 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + |v|g|x|A|A| | | + |a|l|P|1|0| ASID | Virtual Page | + |l|b| | | | | | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + 3 2 1 0 + 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | | | | | | | | + |x|w|r|u|Cacheab| Physical Page |S| + | | | | | | | | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + +* ASID: the address-space identifier +* A1, A0: the behavior of these cache line attributes are not modeled by Q= EMU. +* xP: the extra-physical bit is the most significant physical address bit. +* S: the S bit and the LSBs of the physical page indicate the page size +* val: this is the 'valid' bit, when set it indicates that page matching + should consider this entry. + +.. list-table:: Page sizes + :widths: 25 25 50 + :header-rows: 1 + + * - S-bit + - Phys page LSBs + - Page size + * - 1 + - N/A + - 4kb + * - 0 + - 0b1 + - 16kb + * - 0 + - 0b10 + - 64kb + * - 0 + - 0b100 + - 256kb + * - 0 + - 0b1000 + - 1MB + * - 0 + - 0b10000 + - 4MB + * - 0 + - 0b100000 + - 16MB + +* glb: if the global bit is set, the ASID is not considered when matching + TLBs. +* Cacheab: the cacheability attributes of TLBs are not modeled, these bits + are ignored. +* RWX: read-, write-, execute-, enable bits. Indicates if user programs + are permitted to read/write/execute the given page. +* U: indicates if user programs can access this page. + +Scheduler +--------- +The Hexagon system architecture has a feature to assist the guest OS +task scheduler. The guest OS can enable this feature by setting +``SCHEDCFG.EN``. The ``BESTWAIT`` register is programmed by the guest OS +to indicate the priority of the highest priority task waiting to run on a +hardware thread. The reschedule interrupt is triggered when any hardware +thread's priority in ``STID.PRIO`` is worse than the ``BESTWAIT``. When +it is triggered, the ``BESTWAIT.PRIO`` value is reset to 0x1ff. + +HVX Coprocessor +--------------- +The Supervisor Status Register field ``SSR.XA`` binds a DSP hardware thread +to one of the eight possible HVX contexts. The guest OS is responsible for +managing this resource. + +.. seealso:: + + ``target/hexagon/README`` in the QEMU source tree for more info about = Hexagon. diff --git a/docs/devel/index-internals.rst b/docs/devel/index-internals.rst index 7a0678cbdd3..0471db80645 100644 --- a/docs/devel/index-internals.rst +++ b/docs/devel/index-internals.rst @@ -14,6 +14,7 @@ Details about QEMU's various subsystems including how to = add features to them. block-coroutine-wrapper clocks ebpf_rss + hexagon-sys migration/index multi-process reset diff --git a/docs/system/hexagon/cdsp.rst b/docs/system/hexagon/cdsp.rst new file mode 100644 index 00000000000..237529273cb --- /dev/null +++ b/docs/system/hexagon/cdsp.rst @@ -0,0 +1,12 @@ +.. SPDX-License-Identifier: GPL-2.0-or-later + +Compute DSP +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D + +A Hexagon CDSP is designed as a computation offload device for an SoC. The +``V66G_1024`` machine contains: + +* L2VIC interrupt controller +* QTimer timer device + +This machine will support any Hexagon CPU, but will default to ``v66``. diff --git a/docs/system/target-hexagon.rst b/docs/system/target-hexagon.rst new file mode 100644 index 00000000000..5f7084a6a08 --- /dev/null +++ b/docs/system/target-hexagon.rst @@ -0,0 +1,102 @@ +.. SPDX-License-Identifier: GPL-2.0-or-later + +.. _Hexagon-System-emulator: + +Hexagon System emulator +----------------------- + +Use the ``qemu-system-hexagon`` executable to simulate a 32-bit Hexagon +machine. + +Hexagon Machines +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D + +Hexagon DSPs are suited to various functions and generally appear in a +"DSP subsystem" of a larger system-on-chip (SoC). + +Hexagon DSPs are often included in a subsystem that looks like the diagram +below. Instructions are loaded into DDR before the DSP is brought out of +reset and the first instructions are fetched from DDR via the EVB/reset ve= ctor. + +In a real system, a TBU/SMMU would normally arbitrate AXI accesses but +we don't have a need to model that for QEMU. + +Hexagon DSP cores use simultaneous multithreading (SMT) with as many as 8 +hardware threads. + +.. admonition:: Diagram + + .. code:: text + + AHB (local) bus AXI (global) bus + =E2=94=82 =E2=94=82 + =E2=94=82 =E2=94=82 + =E2=94=8C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=90 =E2=94=82 =E2=94=8C=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=90 = =E2=94=82 + =E2=94=82 L2VIC =E2=94=9C=E2=94=80=E2=94=80=E2=94=A4 =E2=94= =82 =E2=94=82 =E2=94=82 + =E2=94=82 =E2=94=9C=E2=94=80=E2=94=80=E2=94=BC=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=96=BA = =E2=94=9C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=A4 + =E2=94=94=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=96=B2=E2= =94=80=E2=94=80=E2=94=80=E2=94=98 =E2=94=82 =E2=94=82 Hexagon DSP = =E2=94=82 =E2=94=82 + =E2=94=82 =E2=94=82 =E2=94=82 =E2= =94=82 =E2=94=82 =E2=94=8C=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=90 + =E2=94=82 =E2=94=82 =E2=94=82 N threads =E2= =94=82 =E2=94=82 =E2=94=82 DDR =E2=94=82 + =E2=94=82 =E2=94=9C=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=A4 =E2=94=82 =E2=94= =82 =E2=94=82 =E2=94=82 + =E2=94=8C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=B4=E2=94=80=E2= =94=80=E2=94=90 =E2=94=82 =E2=94=82 =E2=94=82 = =E2=94=9C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=A4 =E2=94=82 + =E2=94=82QTimer =E2=94=9C=E2=94=80=E2=94=80=E2=94=80=E2=94=A4 = =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82 = =E2=94=82 + =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82 = =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82 + =E2=94=94=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=98 =E2=94=82 =E2=94=82 =E2=94=8C=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=90 = =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82 + =E2=94=82 =E2=94=82 =E2=94=8C=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=90=E2= =94=82 =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82 + =E2=94=8C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=90 =E2=94=82 =E2=94=82 =E2=94=82 HVX xM =E2=94=82=E2= =94=82 =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82 + =E2=94=82QDSP6SS=E2=94=9C=E2=94=80=E2=94=80=E2=94=80=E2=94=A4 = =E2=94=82 =E2=94=82 =E2=94=82=E2=94=98 =E2=94=82 =E2=94= =82 =E2=94=82 =E2=94=82 + =E2=94=94=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=98 =E2=94=82 =E2=94=82 =E2=94=94=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=98 = =E2=94=82 =E2=94=82 =E2=94=94=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=98 + =E2=94=82 =E2=94=82 =E2=94=82 = =E2=94=82 + =E2=94=8C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=90 =E2=94=82 =E2=94=94=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=98 =E2=94=82 + =E2=94=82 CSR =E2=94=9C=E2=94=80=E2=94=80=E2=94=80=E2=94=A4 + =E2=94=94=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=98 =E2=94=82 =E2=94=8C=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=90 =E2=94=8C=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=90 + =E2=94=82 =E2=94=82 TCM =E2=94=82 =E2=94=82 VTC= M =E2=94=82 + =E2=94=82 =E2=94=82 =E2=94=82 =E2= =94=82 + =E2=94=94=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=98 =E2=94=82 =E2=94=82 + =E2=94=82 =E2=94=82 + =E2=94=82 =E2=94=82 + =E2=94=82 =E2=94=82 + =E2=94=94=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =98 + +Components +---------- +Other than l2vic and HVX, the components below are not implemented in QEMU. + +* L2VIC: the L2 vectored interrupt controller. Supports 1024 input + interrupts, edge- or level-triggered. The core ISA has system registers + ``VID``, ``VID1`` which read through to the L2VIC device. +* QTimer: ARMSSE-based programmable timer device. Its interrupts are + wired to the L2VIC. System registers ``TIMER``, ``UTIMER`` read + through to the QTimer device. +* QDSP6SS: DSP subsystem features, accessible to the entire SoC, including + DSP NMI, watchdog, reset, etc. +* CSR: Configuration/Status Registers. +* TCM: DSP-exclusive tightly-coupled memory. This memory can be used for + DSPs when isolated from DDR and in some bootstrapping modes. +* VTCM: DSP-exclusive vector tightly-coupled memory. This memory is acces= sed + by some HVX instructions. +* HVX: the vector coprocessor supports 64 and 128-byte vector registers. + 64-byte mode is not implemented in QEMU. + + +Bootstrapping +------------- +Hexagon systems do not generally have access to a block device. So, for +QEMU the typical use case involves loading a binary or ELF file into memory +and executing from the indicated start address:: + + $ qemu-system-hexagon -kernel ./prog -append 'arg1 arg2' + +Semihosting +----------- +Hexagon supports a semihosting interface similar to other architectures'. +The ``trap0`` instruction can activate these semihosting calls so that the +guest software can access the host console and filesystem. Semihosting +is not yet implemented in QEMU hexagon. + + +Hexagon Features +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D +.. toctree:: + hexagon/cdsp + diff --git a/docs/system/targets.rst b/docs/system/targets.rst index 5b12858b216..5ebdd0f7fea 100644 --- a/docs/system/targets.rst +++ b/docs/system/targets.rst @@ -30,3 +30,4 @@ Contents: target-sparc64 target-i386 target-xtensa + target-hexagon --=20 2.34.1 From nobody Tue Jun 23 20:53:54 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=1782167394; cv=none; d=zohomail.com; s=zohoarc; b=UCIf/pdCrjDf6jxaNtdO0DXorqEsGacsx0Hnn2enREXyp8Svb/NhiMID18QW0M3c+zckePpS6PCiQdy5s6BgvyJO95//sIpT2bYDMdTJcnXDDOrOKGVJC2/IeM9p3YXfwKakCkcvmONiTv0oKtEkP9uGZpzr9hU1l3taIRVqWIc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782167394; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=jvNSC8poP+qwYtz1xZbovXiJMkmoZCU6yMIg796FAUw=; b=M/22zwB33dZXU1dQaJ4ke0EwYwf4WnieBEYA4zyzxy7H58GStxKC/GfL+Cm4hM65QkiPabaDKPMsjBCiXHn7IiZCpDMG+enxyyfzPuRbIqaoYtiVJDMkRDHwc2bVUP2F9vBmlHogLOhZZBFOzoIXkNJCkpt8oHY+3oRbF2r0uCY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782167394599925.7247737109913; Mon, 22 Jun 2026 15:29:54 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wbn8r-0003Id-Sk; Mon, 22 Jun 2026 18:29: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 1wbn8q-0003I7-Sn for qemu-devel@nongnu.org; Mon, 22 Jun 2026 18:29:20 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wbn8n-0006F3-I8 for qemu-devel@nongnu.org; Mon, 22 Jun 2026 18:29:19 -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 65MJcT5r1938648 for ; Mon, 22 Jun 2026 22:29:16 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 4ey5ye9wsf-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 22 Jun 2026 22:29:16 +0000 (GMT) Received: by mail-dy1-f200.google.com with SMTP id 5a478bee46e88-30c0a27ad86so11725264eec.0 for ; Mon, 22 Jun 2026 15:29:16 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c1bd8d78esm10945995eec.18.2026.06.22.15.29.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 22 Jun 2026 15:29: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= jvNSC8poP+qwYtz1xZbovXiJMkmoZCU6yMIg796FAUw=; b=TQ7wacG7PRMUh4jD LYuUT+jtECb9X+Bp9I/onLBt3cDfM4ETJC2E3LbOsabUoE5DNKYrpQXj1BGrMaLb Asot/LuJfN6UyFhoafCKAW0GVv7/pF8CkrU23BL/Yg8cHWhW7UcQTOShxjKTPNiA 1B+i8A7ydOW6q0t4BJYkCXw9rAJzBspOtJKNMHNlFgU0DhVzI+DQOlBbnt1yRdjR N+fVWonq3bVRfDGuN9pxF9x2yKweAuRRkN53UFVrd4feUZShUxtKxTfnOVt4sliH nyJqCw0PwO6NWgrcys+t2BMBpDRLLBnYBYV2ffgKSKWkpiqg/Q5/E/Rnr8pePOZA 5YnA5A== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782167356; x=1782772156; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=jvNSC8poP+qwYtz1xZbovXiJMkmoZCU6yMIg796FAUw=; b=jJUHHlg3ytoUkewJOnn3U1X96KnkxL6vnehTNb5Ij0p5JHWei0+8f/jp7fjWx/O/Yd rtivz1UT556GezaBT7SGxvbwzS24VZYrzcghL3EQkky4igDKJuOsUieFssfORNKclJKk /92OhCp7yfHYSc7Ep58C68O4u/sp6EI291H0luSXLUfSEE8C1SgdHC3jGrfOtzszvc7E rNeowblMxSSQggmASyXR7NwcJ5JFh7Np/59/fYBCCv8/j25UahZQuYIYp1sdFqxWcy45 GE66rOtLYVPlUKv8uliCX1Kuuhrp06w2bMEEa4ftmjzTg2O9Q4zsaMdZJBwr8++2Wt03 Fi6Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782167356; x=1782772156; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=jvNSC8poP+qwYtz1xZbovXiJMkmoZCU6yMIg796FAUw=; b=sU9RwYAtmevJIZkzMHbVALTOLIgqkbpGYKeNTgjMRC6+W2qUVaxW0d1X4TPDdYAkZ8 VjVJwzofQC4pEMoFQY2IMnmS2f0BxURaJVlH4e45Z7lXAL2F6Twcj2mQ5Wl8J7Iw8AWw S4qWyUY3L4xuVS/8yUDZT7QxWijLckDYQG3WaO2ZprwHKDFl7SCVcw1DAZf1N/fmGgvW lmUy5F+0GL+2JnXdRRmugmxE5t6CXJKC1yv0vmiB2IqX2LuS5hkeJYaXcy8VHuLBkFiq fgpJw7IyXvGIg0VNNw8pZYYGCosPvnPj8tyBV5me7/bTxxpQboTu+4vaC7RxD4YsjO3q q4CA== X-Gm-Message-State: AOJu0YwUD/VjPOp0nyxn+/j3BQSVL0bdI0Gk/PLq1c3BWU5fsKgu9HBO bA0zkBsWPiVBFcCcJOB9r16XgzlfTZNVtiE4saM6ZTTSPC8YfVycF6OawR5Kk8u79Yv6hDynbkK /m1A4a2LzwC/eF88Oi8DQ6ye55rdnOpFcpWBfBbYxu9mBKlBcGhGXWgZFGPuywgQfVg== X-Gm-Gg: AfdE7ckIKTVNVlDqaaBDrfKsvymivC1YFHLIMdnRyFxL73CXdScKDvJMntASfEYM3GK QexIs+JA3EOi9oY2ncuGEG/iyaREBEwG45n3wOlO3VDzZnFBXEzN5CnqtCgct9dXk/hyzY9K2TS gCgMO2DZnoOWs0KKREkc/pc/T2fbZBW5OeaDe0FSL+fgjR780BJdlQSJt1aPXpNSkC8YD4Mt1II amuU17JL8rj9gzYw41Qv3pBbNdk1TJf/0Q9cpFHootLpJfBH91W28dqokbdQRgTEB4xinmt0Zak nJWXsQHB2wWIK9FpfPooIkYL8n11kegZIqTh6Ovlnn33P0izPTiBSqsk4fx07GkBb046D/y+CCy fnu96oKB4eSeuT+WjjwcmdNaIzN55A2aX8UHaPzA1UBJMca+QJ06Ffe7G5fo= X-Received: by 2002:a05:7300:80c4:b0:30b:eca2:be75 with SMTP id 5a478bee46e88-30c06e2b026mr12948204eec.8.1782167355598; Mon, 22 Jun 2026 15:29:15 -0700 (PDT) X-Received: by 2002:a05:7300:80c4:b0:30b:eca2:be75 with SMTP id 5a478bee46e88-30c06e2b026mr12948182eec.8.1782167355103; Mon, 22 Jun 2026 15:29:15 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v2 03/75] docs/system: Add hexagon CPU emulation Date: Mon, 22 Jun 2026 15:27:52 -0700 Message-Id: <20260622222904.607771-4-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260622222904.607771-1-brian.cain@oss.qualcomm.com> References: <20260622222904.607771-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: EYnFGx6Sa6_Ieu0_pcTKD5xqGg7uPd86 X-Proofpoint-Spam-Info: AW1haW4tMjYwNjIyMDIxNiBTYWx0ZWRfX6fSCfDptf18S AkmhPPtRAyT9rYYa/vFfHuqsQmmeS0DYbrMboEnxqPpBJeLg0MNKWefDBM7G5a1XmQpnTkDaIsr EYowFyTPkBncod7XqoDaq9TFT71Vzes= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjIyMDIxNiBTYWx0ZWRfX7VTFrN+H4sKg KWbD2L9/pqHP3Yc5gmBskiz+FUl1dbfaW36GDzpbF1UOFAi9jiABW9RCbZPZWOcUTfCBRQHg3N5 dG3C1ivE/qCyV//ICY6pZTnRVNc/auTueS/n5cW9DrsL1Yds6PNYH3nKRuE99ArMnwmccjKBVqq zDDvTYF3pd6M4n9hm2nQ0clQZgQs7jS1HjHlzz7m3OiaWAn0ZUIxPuW+8eu/AWOLYybnqILPNBw AD5U3bO5ixjj8WZvCOq7eGL30SgS7hBj3GooIlBIBUGAiLMmIHanzDphiC5jadix1ijkg1tz4rm uySst1zzWNQrit0rCr1VeSoFQplHgHQiJuAVPb6QwSOeEsmxzvxVgsXZZaAEwd11g2RRWsZ4kOe Qwt2lYY6Q2N0gWUOn7EiEtCB4LXvgi2ojJdmjRh9583iS5XRx49GeGS2OLorxh7qOHypwzg28p8 zfYVIS2l5IJFjAn0bow== X-Proofpoint-GUID: EYnFGx6Sa6_Ieu0_pcTKD5xqGg7uPd86 X-Authority-Analysis: v=2.4 cv=YpI/gYYX c=1 sm=1 tr=0 ts=6a39b73c cx=c_pps a=PfFC4Oe2JQzmKTvty2cRDw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=EUspDBNiAAAA:8 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=2pVdXvZyqgCw3DkElpQA:9 a=QEXdDO2ut3YA:10 a=6Ab_bkdmUrQuMsNx7PHu:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-22_04,2026-06-22_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 clxscore=1015 spamscore=0 phishscore=0 priorityscore=1501 malwarescore=0 bulkscore=0 suspectscore=0 adultscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606220216 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782167397194158500 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- docs/system/hexagon/emulation.rst | 15 +++++++++++++++ docs/system/target-hexagon.rst | 1 + 2 files changed, 16 insertions(+) create mode 100644 docs/system/hexagon/emulation.rst diff --git a/docs/system/hexagon/emulation.rst b/docs/system/hexagon/emulat= ion.rst new file mode 100644 index 00000000000..36f54f058af --- /dev/null +++ b/docs/system/hexagon/emulation.rst @@ -0,0 +1,15 @@ +.. SPDX-License-Identifier: GPL-2.0-or-later + +.. _Hexagon Emulation: + +Hexagon CPU architecture support +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D + +QEMU's TCG emulation includes support for v65, v66, v67, v68, v69, v71, v7= 3. +It also has support for the following architecture extensions: + +- HVX (Hexagon Vector eXtensions) + +For information on the specifics of the HVX extension, please refer +to the `Qualcomm Hexagon V73 HVX Programmer's Reference Manual +`_. diff --git a/docs/system/target-hexagon.rst b/docs/system/target-hexagon.rst index 5f7084a6a08..416b8f7be76 100644 --- a/docs/system/target-hexagon.rst +++ b/docs/system/target-hexagon.rst @@ -98,5 +98,6 @@ is not yet implemented in QEMU hexagon. Hexagon Features =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D .. toctree:: + hexagon/emulation hexagon/cdsp =20 --=20 2.34.1 From nobody Tue Jun 23 20:53:54 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=1782167603; cv=none; d=zohomail.com; s=zohoarc; b=QXbyywZ5+vinZEbfx/JZNfX/YtB5V+l3fzfsB7eYq11/psivqog8dZWwu1Y88lTHypIFkPdSE7pERWsXrhht12A9D6PEmmvRrfuILmFT/fDgE+9p3U7MjVq26Jpy7xw+qWZISXQAB0qqHu42LqGmlIywUS5bp4EM8xAyFIar9Is= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782167603; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=U+DLnflPXsJv6Fm0Vn+OgNfdKF4qmhReDLb4ojvOqbFyYY8iIpQI5G/zv1Z2OyTY29p8/op0Cr8NznTGcn/JdfCyOlHj5gWCIAzSYDeN/JoKa4O3b5l+3ytAwNicO07D4flkdaqQr7PjIpxvnIbigSKzWpNbeDL5RYmXkCP39Lc= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782167603425406.1099862669363; Mon, 22 Jun 2026 15:33:23 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wbn8u-0003Jw-Dv; Mon, 22 Jun 2026 18:29: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 1wbn8s-0003In-1E for qemu-devel@nongnu.org; Mon, 22 Jun 2026 18:29:22 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wbn8o-0006FT-Tz for qemu-devel@nongnu.org; Mon, 22 Jun 2026 18:29:21 -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 65MJbF9k2122438 for ; Mon, 22 Jun 2026 22:29:18 GMT Received: from mail-dy1-f197.google.com (mail-dy1-f197.google.com [74.125.82.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ey5n41xvq-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 22 Jun 2026 22:29:17 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-30c011c7cb9so15193617eec.1 for ; Mon, 22 Jun 2026 15:29:17 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c1bd8d78esm10945995eec.18.2026.06.22.15.29.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 22 Jun 2026 15:29:15 -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=il M2jNt9k+gVZQyfV2DVKBHbwwauSqUoA70ubAalO9KaEUC818z4ygeEjfHU7MRfSp 8ORArpQYRYXeRlRLiKndVNRJNZc7k1Gb6ZCFMzlhiJeWc7Fr99QCCeXyWGk9k5fB +aQtJb9m9n20ZqjtNKocI8SCG7jmmBCh+9ywtDOzseFhRhm9mBZIruVWeaMV3JyX B01pXXV/arRj7lGjHce7tFGHdqUSWxcrq1txIN3q/uj/aX0HDwNgnVyZ8quTtc9A sWrfwgbpc+0vgRf6xmTtxUSeDQNxmE8ns/HSSaKNgiHvYfAGL8dxSJ93EPtETipt Xd6AunyzkbEZ7lSAChsQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782167357; x=1782772157; 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=PZC6LFShPhZ9ngcVYw3l2S/+MUgHZ0khHPkdu3hBey6rw50jsQDKq1AxG2XIFfZd24 tccgVWwtBvkBbvQaxLo5v+Pcv7dfxfXf8RPE1OFLi5GfcpM3wVifHpAnIAHPijL9geS8 ls4fHYEEM88JvguH/CMWJqmi45d/4bhVC93eaMU1Z0rFkXwkiUmh2rNkW+k7qinwUOyr cjlIhJXiaSzT+qmuB9gizqvbnsifE0xM2hmuWY25EOAqz4GHnurVUp1LRZbaxzUoxjtT 2GMPh/KtDh7kq8ZQav3NWuEVa89ml9tMDImd4RhPyh5Yug6QaK+x+OTi+kzDdSxXvS9I CX8Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782167357; x=1782772157; 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=jPYOAhd/iJUAXK48prM/l2YQy1s0fbON6iAL8OCVxrD2+UBc8bLvaQj52Ee8eSWIx7 Gj2ZcjWQcgutBKY+tB+PazRGymHJFzWY8usxRpyjmm48Mj5R+z3S79fejSakKgH+7b9q hG+0sTVIfuaTvCgD7Q9wI2Yw4FveU8neWuaNiIzbLYR8xNzJTmB7YDK4lHNjCzR5tsGS AZWsPUEku2GijYxtnqYzIb6BELxgnxqNlZzH1L19RPNZjIcvOX5rIILnFY8aXe5NqW4c IEQ7HjiB1hBNrgRzNgtFxZwQMh88m+xEpvNoEMT+7CzCofpKV5YKh/EPvi35fsuWH9Kf 77gA== X-Gm-Message-State: AOJu0YzF6DFA4B7o/UFBuc9cwwW1Reiw2FuSXjWRQNIHd7UMViqYbkHS dazOqUEYj703hEVwas3g/IQduAjLeCWJPwePXAXDsPxbY9wMh3eHAMzjaYcRZoneJmhxEWTGK2E Hn6ViY34PTotT1SNBLaaUQoUpsuHxaD9n2tK1r/1HgpN5BtFFPsUHp8/moclz6d8uYw== X-Gm-Gg: AfdE7cnEkVZzPLoSMUYVoa/Pblj6oWQyFNGVYIGIRl89w5EdFzqOThALTDJJajiGKup xn40a/xvN8X4BMcSFZK2BTJN/zHtk7dJGgVoS2qKqiPTm1mqrmjJHeohc3ztzhBMFfBJ4r4tgz0 cX428eDUaZKSXu0jvG6OODSRwdun7M2YTcdSWp5/yqpYYdxr9UsK+Nrsbw1PiKcq2BwEVqHv03/ JrepywVrPqWtw+/ksNPeu4nCHOGaxfgYvxSJgPxMU5wAcGYdm+mVt8+uXA8jJ0mFEP1PTGtK8r7 5UGbHKpY9TrPQi0X9WhKqzExfzqVMdlbXdFjkJYwzKSIUwYxd3c6s8rLCjvtoUy4nHECup5nSYo HpCC94OZHGeu2MrqWA2HTsQwfl6q8rKkzRFMwdeeK/k3W+TYuj4JVwxv+5aA= X-Received: by 2002:a05:7300:50f:b0:30c:554f:cc2 with SMTP id 5a478bee46e88-30c554f1148mr1387824eec.12.1782167356738; Mon, 22 Jun 2026 15:29:16 -0700 (PDT) X-Received: by 2002:a05:7300:50f:b0:30c:554f:cc2 with SMTP id 5a478bee46e88-30c554f1148mr1387800eec.12.1782167356261; Mon, 22 Jun 2026 15:29:16 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Taylor Simpson , Pierrick Bouvier Subject: [PULL v2 04/75] target/hexagon: Fix badva reference, delete CAUSE Date: Mon, 22 Jun 2026 15:27:53 -0700 Message-Id: <20260622222904.607771-5-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260622222904.607771-1-brian.cain@oss.qualcomm.com> References: <20260622222904.607771-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-Spam-Info: AW1haW4tMjYwNjIyMDIxNiBTYWx0ZWRfX1TRcAeRY4HkW m3jbO7bbXeuVk09xsGprM4NN4bLHEUt2FDo/nE1EL91i1ydc1fRSX2aPkiyeID9eOA9QsPxf9dB bBvMViLbeKj6NfEF8JW7gy2iIESQ+M4= X-Authority-Analysis: v=2.4 cv=R8Uz39RX c=1 sm=1 tr=0 ts=6a39b73d cx=c_pps a=Uww141gWH0fZj/3QKPojxA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=3WHJM1ZQz_JShphwDgj5:22 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=KKAkSRfTAAAA:8 a=pGLkceISAAAA:8 a=YHbvUooXmMNqKe3LDhEA:9 a=QEXdDO2ut3YA:10 a=PxkB5W3o20Ba91AHUih5:22 a=TjNXssC_j7lpFel5tvFf:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-ORIG-GUID: h3iYGEAYFlTYjc-RYAo5XXFCMnEcUkGX X-Proofpoint-GUID: h3iYGEAYFlTYjc-RYAo5XXFCMnEcUkGX X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjIyMDIxNiBTYWx0ZWRfXwzOm5/3I0vCb JvBTNFwlbaCX6LC20hWw9SrJHH7ufZVliRyI0vv6Wt9cEg9QRHKH+G8jFOHXK4tFfToiAzIahux ZQGIdCxxNgumM4UB202nXrmteWS/C65uDJfpYl6BmOLVN8YLkv/WdRq9YlKL82VBillAKKwRIvq +qVLb8hPiV3FAsddgaX3eBoEOdlbKv8EK8YuTjkSxELPKFETUT1j+UV+oeO9xtla6jHV1kuhZh5 sfXqKYBrnWLYfXlLuvLNfhR3AmMrZMfqafeU0IsCaiHiJMEKcqavZNe1WP5ydvj75dzU5fTWhFu rLx1JgTq/zDdLxDEqMBHAWvUtc3vQWcK2zaP15BQDLgqwGO5ekasMQnDcPHFdDa73kq00W/XF7G wN+XpC5PU2V8Jta8eCzo6yjhANSPgcXBO6reRbQnXrUL9L+LzGA/pf0CkTo+IGTR7Jp3dpSaQSz MmWa0/cyuj6BKPZcDUQ== 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-22_04,2026-06-22_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 clxscore=1015 impostorscore=0 priorityscore=1501 lowpriorityscore=0 bulkscore=0 suspectscore=0 adultscore=0 malwarescore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606220216 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782167603610158500 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 Tue Jun 23 20:53:54 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=1782167654; cv=none; d=zohomail.com; s=zohoarc; b=Pu5Uaa52soiKASYlmklBUjpi79eqYbjPOGL4cVhTEOz6t8YLwZn7IScv9dsHr3TxxzC0AJxs1lR0cYs8Fm4o5y7nEGOV/RGJHl9+MaLLj45nuT10TxoGCVW5GEk4FPZ83HUwD75W0qPPVpu4fmEoEzHxAZE+DwfmU69N+5a+2Hc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782167654; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=FyXEk8/7V9ixvk2Chdp0zEe9NcEzCtFxeLWRblTTcgbJl5bBSUWTLrIT5tSVE+PhfaXb09+ewDSAecaMLzuRxLajqP/OdNJC7oMCqDbT7kUyx7AQdix2SnuhS/DdGPRV3SDn680sOjjaT/z3xfP9YFMMofTNH3DnQF9l6k9Bpv4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 178216765406383.15107740450117; Mon, 22 Jun 2026 15:34:14 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wbn8v-0003KP-FJ; Mon, 22 Jun 2026 18:29: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 1wbn8s-0003J8-Rr for qemu-devel@nongnu.org; Mon, 22 Jun 2026 18:29:22 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wbn8q-0006Ft-Im for qemu-devel@nongnu.org; Mon, 22 Jun 2026 18:29: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 65MJcgPG1938794 for ; Mon, 22 Jun 2026 22:29:19 GMT Received: from mail-dy1-f199.google.com (mail-dy1-f199.google.com [74.125.82.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ey5ye9wsk-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 22 Jun 2026 22:29:19 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-30c17bc96afso2893101eec.0 for ; Mon, 22 Jun 2026 15:29:19 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c1bd8d78esm10945995eec.18.2026.06.22.15.29.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 22 Jun 2026 15:29: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= akHFVisJDbmBFFMLQN2z4af12XW5M1jZKu+CQ2LFdG0=; b=KRpr7OpB019tWEGe sdKjHxqTYt9rz9WjG/kJ81BdideOubXDnynIW47IAWHUgp/hJjZdEck8UTHsv/T4 ZjY6HNzPJL5Vu7X/O6UOeYlRlxsoIhXcwi4gld1byZzHqayk48qNFM7etFuhdvQ6 uxVRa8aS5vpdXpehf7u1p6OOVw9DWwoHB75TrcYy8e4wle5j0LN1UpVn0jO1pU62 U2aMGuM0q9lVs79TSCNKd1yoWTR4kxct9jqZvKM7Ax+LpqOR+FwE/J7zbSfjKlrd usOJPd7JthoBLZ5CQ7sOhmXNfZwSFWCv3XAcXMYDVEAxHx1NKG0KxabUBzXmlmd2 tfBREQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782167358; x=1782772158; 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=YVzGwWTEycI81PYiUVlEu8IDIk90sQ5IyqjUiLU5/4ZcDd+3bpNjYq0iDNUx0v2VXN kJ+DpY9UiP9PqFxzK1XmjohSvf2X+f0Ns+8AoWsWXCLLd140EjgzQatkUGM6hCUoQn06 /LArbXvNDzxUgnVzZEHoMgB7UwVJfhTciPek4omh0jV4jQap29nV4jM6rDbjzfiz54tX cxwIqqrt5rhyEjPxjcGMlJq/gly7TEXPji+J7X5b8yk+m6F/r9zAossbgp8NI+ByCE8l 66AmOfjq2kIZhJTiuoEpSlyRA5H5kdKP4w0MpGk0X3HtfcRykvcLgzgx6DfEhXc8qZX7 y6vw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782167358; x=1782772158; 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=jU1AXp0AjjTIe0siL9cv9meAA7Mvo9MTW0SCTYnAXeb/2AYMxmXhcYACKOYKVagjC1 UyDzzsE1npUcdBatooN/34kqhcfTnEF4FArA+uIp2mb3Fzzb1ANUu6CzH0zrbaNu4BW2 yOm14OHyS5kjOOP60QOz4MXmnmP2oQwANLfucWaoQ3WzReBp1I1lE+NwqFvaCD0zdOAj K50FhHnO1oGUvxKlkgSIlxul9yjnAadH4pIetGprpPy4pkWegn1uZQUfyuBxERsx3oMz ggmuM/qqYRv0OqkoPb9D5ZH9hVL/R3CJz+Uz20gIuYErajDVR/G6mcfl5WCZEZ5IaJq8 gB1Q== X-Gm-Message-State: AOJu0YxUmWNqxIqh0/dcwoJcsCjl11d89vToy2gpe3DqcE6P1g2Ujf1P QvSwAZ4fCq92QnQRsiLrr/7FWiwh8cKQNXiez3zU8uG8vGFJ4y6avF0MXtDIAWF7qcAz0dZS6/s O5yu1Y1xETAM2FczC52o0JAWTRcUpJmmtm3S1/eqVsHSjxLgXOjMRTzKvBs6jQvyuOA== X-Gm-Gg: AfdE7ckuW0phzQUKe/D1w5Ak/TK+p9G6zIAxtgJNNXNk2UeN3tRJkqfo96Ac9cPRDiT PYgdDEJp29hOLOF3z4hxCqHRR0EDv7x//G8hIrQFrnaYCQgYtK/klgBeD+cZEZl/UEip0Nuvzo1 LQ+ZUUTsvKur6Q2D6fjiSqToBa/LFue4wxoCVvdbfR7nFDySPs5j57kXbGiMFzmEzjSCBYtAs6U Bm1lafXonLsm6LzLvG2fV2GSWpMv3JEtkc02ypH4aa0zuIMxuwPwKq/gE0HYQLUinWxb9MzTLnN o32Y3eOYJ9SGZUexxiOZIJ2MucFuYxaGZjPGB9fS5vx7UoRciqVc64y74Nl25Sa5AY604q+8XKi QbGH52Tlgp9UofJS0s+la/+OW4+CL6Zq9mh8zjKMEyoL4+FVQk+HnL6OJoEs= X-Received: by 2002:a05:7301:5f09:b0:304:e72a:d4d9 with SMTP id 5a478bee46e88-30c58b66e50mr372941eec.19.1782167358351; Mon, 22 Jun 2026 15:29:18 -0700 (PDT) X-Received: by 2002:a05:7301:5f09:b0:304:e72a:d4d9 with SMTP id 5a478bee46e88-30c58b66e50mr372907eec.19.1782167357775; Mon, 22 Jun 2026 15:29:17 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v2 05/75] target/hexagon: Add missing A_CALL attr, hintjumpr to multi_cof Date: Mon, 22 Jun 2026 15:27:54 -0700 Message-Id: <20260622222904.607771-6-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260622222904.607771-1-brian.cain@oss.qualcomm.com> References: <20260622222904.607771-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: QASFpUTGyx39ivEblYLUz2YVrOKpTlYg X-Proofpoint-Spam-Info: AW1haW4tMjYwNjIyMDIxNiBTYWx0ZWRfX0u5Kk8+wDPna grnMlydgd5aW8yYQ1RQ/OYG18nhKxjg2IahuOWY4ehaCjEclHHsakQkC8L0YdCePqTtcn8knyRf WssI1R26rFPgHNPhtJMIhcYokUn1adg= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjIyMDIxNiBTYWx0ZWRfX1i5RSYbkSiSY VvbZw1QGLRAnuqDoVqByjQL3wzKSkJGZRDVgLf1alGPlosCYRkXj9pmjDr7oJRiH0FP4A9ZQ4oY LEGfmSXWuE1GiabuLSUySy/2YjB/Y4fZ09fn7clS4cbvChuj3UVlaFa2OrDOOhMR2kOXimCiYLL UgNhh5JniKz3iyhRu6BDKoF5HZtI7hHa3dpWxeigN5Wbc1elQ18Sj7ivhtgGHPGyOtWFgI1utgl rueEbnogj2pwODueWKOJFPKnHjVefxH01dqghGaK0xb1h4MeZvohIB8EChRG/qusy/wWdt9D7uV bm5qQyF279R1UhhWYWIH7LBAx7c2VEfNxiafbCAGQJxabdTZercFsX8/6LNodfecKE1OMTy10Nd cAPEbFgHF2dSUL+IlT6DgC5YRWROA0DqfV9J0PDSeWVlRheVTW4jc/lhSm/UQhNjDuAKxfbvP/m DcEM5G2Pj/2H5ojxACg== X-Proofpoint-GUID: QASFpUTGyx39ivEblYLUz2YVrOKpTlYg X-Authority-Analysis: v=2.4 cv=YpI/gYYX c=1 sm=1 tr=0 ts=6a39b73f cx=c_pps a=cFYjgdjTJScbgFmBucgdfQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=pGLkceISAAAA:8 a=ZLKCIdW5I75hk_SXmpcA:9 a=QEXdDO2ut3YA:10 a=scEy_gLbYbu1JhEsrz4S:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-22_04,2026-06-22_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 clxscore=1015 spamscore=0 phishscore=0 priorityscore=1501 malwarescore=0 bulkscore=0 suspectscore=0 adultscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606220216 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782167655895158500 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 Tue Jun 23 20:53:54 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=1782167658; cv=none; d=zohomail.com; s=zohoarc; b=SUQCo9fFZCb1seghwlTCHokFLfhyesxaQHtxcGudiKsxK9tnLunqWvBE0nVUMeW5wZt4PPj/mdjkiYfwUUvbO19rZ/gYjpyRe0xssuHLoKuY6nWNa1e9bgiSJUpsLUmbDqNwR2WJUOw7eWqRNSV+0Clr1LlyKw0bzFn827KT/mg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782167658; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=JpL6M87ouujiWQ6Xx4PjsefMX9W1c0agKyhVnAdqP72RVAoyc4HA5qbU64Pbx0S4pUdxMuYrrnKlTIYGIRpmxzrcWg+dNV1n6kAYUVz+WxNNtmsDgZcz2cHB3ihulLqBT9AAT6Y4sRubAtbYZU3vNOsdqbHvU5+isVXtrX2QSR4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782167658802836.598399267638; Mon, 22 Jun 2026 15:34:18 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wbn8v-0003KT-TB; Mon, 22 Jun 2026 18:29: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 1wbn8t-0003Jl-Lv for qemu-devel@nongnu.org; Mon, 22 Jun 2026 18:29: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 1wbn8r-0006Gg-TH for qemu-devel@nongnu.org; Mon, 22 Jun 2026 18:29:23 -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 65MJcTUi1938647 for ; Mon, 22 Jun 2026 22:29:21 GMT Received: from mail-dy1-f199.google.com (mail-dy1-f199.google.com [74.125.82.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ey5ye9wsn-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 22 Jun 2026 22:29:20 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-30c0c489e72so3633354eec.0 for ; Mon, 22 Jun 2026 15:29:20 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c1bd8d78esm10945995eec.18.2026.06.22.15.29.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 22 Jun 2026 15:29: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= 3PJq1TG0I8TU78Tf0jGrc0eZLiVvKT6OxHA758wVFTs=; b=cm/FtVTRpDlTzI0g A112ErR/GbqPdVBKb5TWqEXbYvWu1eghHfiZLVH0kOozzSP33bPKaREy129N+8ja heEqRzsDjWs4jz38pUNmubxzLGVCksZ9GYtLgRC1GxfVcAqUrA8LuM1uT2X44n/H BXtrqcr/LZj+wfnKeVfIqv4JDCaV8eP8+qcLffFS6Q9rG8LqXbRPbCstjfxjWQ// FEBXQH4/nRfppbkKXy9+XstDZ0uZDhRYNpynww9ssAFBW+r2zXPLp7gSI/RZG/RM NbhJez58A9EIDodCiBxc/0Ip2aybCeYYCtdVPs6CDOWUUVE0eExa4fDnWaixERjU rR7esg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782167360; x=1782772160; 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=FyRVyWFgtOYvWEZf27krTe7pQF8uMhCCdJNbO0q1PodtWzA6Y404pxGFMSWoJx8aGz M7U68ov7V27sy6zj+/Mc0IEuruenzFa4BWVyb4yutkG7Ym+r8NGushh8YWjwbU7out5i d+8lFUsjocblc/+cfoc1odtPO9smoZb8XcdsQIyENXcrqgvURW794T0CaisjH7mMns+M durBPEtVii3CkzncP3KlfR0tyYbS41BkiEBziZ9jClirBOyTrYPcLDWfYNyfq3DJBuY4 y2XSnJLOlKmKAr2rss/zYNGEzgXrofm6bGijcQoSUYtrFDab22rKtHzypTqIX5LHG4Yj tj7Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782167360; x=1782772160; 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=alsTpFiouuAOKTuVguIrMdXfxvjyNvpoq9UeBK+uuMsbUOAWQyqbrCzc15upmEkd1E p+/WEVqj786fwYojHjfmfcXhaNcXrGiDvXbu8RMBwu/DE6H62ybK/mn9PqBBgWOoqP5x 0/7XI2JoNz777w8eOKDgX1XTHkb0k5BVShLG013NJ4aQ3t/vEUz4NmGInjCXJ2PCKQak MhwXhXcUByBGSx4xrnIZxkGzIkQPwPqXhA7WKwGHnuYAERHI0lXHnQELAJ5yhc80YXOM H7QBGsgK5QFOX/2uQBE5z9VSnO0d3cjk6BTiUq0ZPPLqQtmuSoqPFUc2QDMk3EKXjMi9 z3EA== X-Gm-Message-State: AOJu0Yxd9R8iSjprhQCbwjigj+j33Is5r/XuLlsQf86Tf+SgX/PzUZK9 eZs+ksxxzBbTxtxocDgXDXe2LdwEWZUl7Pf+jOKHTSAAkO2U0dtPkJC6Nv9QQoRkpdi9C1YgU1Y Wa/poDTJhkjbRMLl4gJP7zsVrG5jrbUm1wU8lIQUxJZQ+3IQotN/u4zfsdmumOVNGyA== X-Gm-Gg: AfdE7ckbtaweSlVPjXEY/9It1Srtw9Xrc+qX0nMRQ9HG13PEyyj/wkq+ZUKMePLGcSV 3bl+4EHRNIklPvJ4nI87qvTvg6tuOUgEvvJyYDmvIPm2pPMp7StmX1vJ4mN+lvhMgy6fMvEpCIq hVutXf5qdAIAk0snY3rJu7jJ+3fqzpwe1HT6svtXEVQHd7353JBCXVwMdQ+GRDVTD6fnZMPtkJT nTWivzqlYMIgz8/WYrm7+j9nkgpLl75sQwTlRteDT65hGqDxbjUgKnqbiERrEAy5jowGIzk0YDd ubv5vm4Dn8AQkl8Es3kxfNAWlM8fxAx7deue+eQVMk0uYrzXGfsHhJsRRzP+wsr9D9a8WBdQ6l4 3Eac6FecizudMhPiLCsfTVpWRIHS7txs2aAxo0bzLAoYT0lojqeTWzfymGoU= X-Received: by 2002:a05:7300:641a:b0:30b:d79c:e1d9 with SMTP id 5a478bee46e88-30c06e77a91mr10967908eec.30.1782167359819; Mon, 22 Jun 2026 15:29:19 -0700 (PDT) X-Received: by 2002:a05:7300:641a:b0:30b:d79c:e1d9 with SMTP id 5a478bee46e88-30c06e77a91mr10967885eec.30.1782167359237; Mon, 22 Jun 2026 15:29:19 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v2 06/75] target/hexagon: Handle system/guest registers in gen_analyze_funcs.py and hex_common.py Date: Mon, 22 Jun 2026 15:27:55 -0700 Message-Id: <20260622222904.607771-7-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260622222904.607771-1-brian.cain@oss.qualcomm.com> References: <20260622222904.607771-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: ngI4UuX31gsPBmhgygbRHJhLI-5vWYUM X-Proofpoint-Spam-Info: AW1haW4tMjYwNjIyMDIxNiBTYWx0ZWRfXyjrXZo6AKGaX TU1P0czVAoS8H8zZmvZv3gd1Tj4nsWGZEzh2VZ8eMXeRDmmL1mXhcGhG4NRgBQ4c8GTKWvV2usy VzqLgcp9qLQXAnv59nGywEqD6ui+A3k= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjIyMDIxNiBTYWx0ZWRfX4HiIoM55LNSn K0Oz9vtmylfPno2yKEVwwrM+/jvUNsiJfKmVnbIyj0lsVs026/4NrYxGs911fchHNQA6ARFVlq3 45IDMtW93rZR34NdtpoehhEVriB3eyloEgxdDC5glErzSxDE8b+ShBU8UJaG24t6eFqM070ERoP +MX+UtWbupRoGZ3dSu4XcY7JRWo2YAXlX6avNkzh32Ivzim+Fzj/I9SZoIZIAOqvL1qJU/7seNz zPui3LKlo32b9AdbAh7+SBplo/X4R0MRudOFRmo4dqSkhRfQlrsfXVVHGJbJOX+rntRYyFgZMte EWJ0nDMAr/CqS9gPjv3ogjUdsSLi7ModCUibwbyOivIbMwLRJzENPTfaWXlcpLOBlmAgD7fywvQ tvV3fKF52sRGLIHsPyd+j0tJmL4KEGuNWt6ywbgZRhLKcRSz7bNYgHauQsXFV3trAWfekrx3jYj zzF/G/+Gi4FUcqQXSzQ== X-Proofpoint-GUID: ngI4UuX31gsPBmhgygbRHJhLI-5vWYUM X-Authority-Analysis: v=2.4 cv=YpI/gYYX c=1 sm=1 tr=0 ts=6a39b740 cx=c_pps a=cFYjgdjTJScbgFmBucgdfQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=-IRm0M9p1sl727KxlF4A:9 a=QEXdDO2ut3YA:10 a=scEy_gLbYbu1JhEsrz4S:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-22_04,2026-06-22_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 clxscore=1015 spamscore=0 phishscore=0 priorityscore=1501 malwarescore=0 bulkscore=0 suspectscore=0 adultscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606220216 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782167660021158500 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 Tue Jun 23 20:53:54 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=1782167652; cv=none; d=zohomail.com; s=zohoarc; b=hBC+eL2HS5wxsbQT+S3XdkYy3ZBN0NTE/xQyHj1zOctO2Na6r6kwueyVc+Z0KuKTrovrJbGm/vFmxSRnxN0ZKBroJ3Opbr5/Z7a0kvTEV/CXiYMTrdQawij8DVx4pU0GM5UtL3eyQRQ2DtZiRO0913FPMYwWcEXdNPYlm5H081s= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782167652; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=fsUnIey9fsj3Bcr1M24JXj2RPxpWZBsdgiZs68qOMNaxV6gb6oWrrR+OrWVjD8WqJrucIP/aZ88odqSwQC5h1flfq1lOzVwktLD8UxTBari7VxOpnql9Pz2tWbkmKY8qBwR1q10YFvj4jfzdbrI3DOZ3C9yhIZKvMfRLWJlXL3M= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782167652638391.16377439081793; Mon, 22 Jun 2026 15:34:12 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wbn8v-0003KS-Sp; Mon, 22 Jun 2026 18:29: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 1wbn8u-0003KD-T4 for qemu-devel@nongnu.org; Mon, 22 Jun 2026 18:29: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 1wbn8t-0006HF-77 for qemu-devel@nongnu.org; Mon, 22 Jun 2026 18:29:24 -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 65MJcTUj1938647 for ; Mon, 22 Jun 2026 22:29:22 GMT Received: from mail-dy1-f199.google.com (mail-dy1-f199.google.com [74.125.82.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ey5ye9wsq-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 22 Jun 2026 22:29:22 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-30c0d568830so6661912eec.1 for ; Mon, 22 Jun 2026 15:29:22 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c1bd8d78esm10945995eec.18.2026.06.22.15.29.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 22 Jun 2026 15:29: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= lcxOkFKNgQXZO0voxWGA9hyffwnAo/o2WwcbX7ewzeA=; b=oGttLhsBgjcggxK4 wwRCjNfpNmrRHFrft7Oh0cFII0EYD1oNfEaMiisbFQN1k2zzj4vIrZpvbU6dOQ/l bsTHRw9smldnhFVgNeiKsvBkNP7FmQLD8PbsfCZ4gOe2J2MatIw3/4CbOaqmoDGc E/pu7FWDehKA4AweYxSSlOAaONzOoCVS1mBcFRmri6u00LwprQr1GXNeDUFT9U+Z hgPYDSKV2PWzBEx7LimxIjfOYHbw9FnwxMb+pj43F6ok0Ypg/2Adi+L+EpLrVglu BSbLttKIXPy3EqwWBT+vCSx3yfTOHz+jzSMWf49GS1+am7sljw0Z6zz5UmBH3apS Bn/+mA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782167361; x=1782772161; 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=TRfT4SWBnrAPRgZNkXwACLjsNXa9uenCXNSXz13y4xqcC9MuYHRGx7VXeq8rUltPar wjM6A/hs1uvUop0sA/q8WUfPS6vjosgvzvna9wDClw2FgZqZP3lzwu0QEtk37VY6ZjEO hKW8rrfiYcEUYF4e4Pi14Qz11l4VxsjjrKSpuAxQDALar1XsztBbPBjPr7fFvh7YPZy8 cNTVaj+l08ZurgvJksyJpNELIbjLKn1X7tFulu5XLNKumABoyYcHz+HEI/2o7F/7Ddl6 0FWasUKhO9JWnmTElukb09MEgwrRmGf8MTSFz6nOnVnHf7h1+JdxeetS4qZvlOec7uHU 08Nw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782167361; x=1782772161; 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=Un8w8dxT2aTsU6hcjkJ9mvK4WZhMGC1GhIAottxG1BEnS2kWXUdzCGl3G2r3czzVNV rP9EnBe0f2LOpnwC3x/fXpLnSM0DEa5dnsOnX8aW32qmEkJNQYsgA+JgLBysKHXB3r/r gyUO6zBpvkQKVBPlN4ERuy/u/qYG0r1pzg5RxXwoXvtuePC6E6ruQL7zbAnPabBhxgi8 B+mwVE1wV+3dLgISUKpaWOFmyVFuJ6G/HH8P+qrciZPtuHEtdlVK5fOffPdOPPAJIuRK 9XuJZFhv3EJfJLCXdWkuddpLCLaLDVeyCIb5vwxt/em3WpcPk8Yb//Mt1/Nu8Mh2ZlXA jklQ== X-Gm-Message-State: AOJu0YyqPnVvvuinMnwezrLLbdg8ZTH3t9UqNWKp4ZMJddMjE8HReCwh PIlRNC9sqxeXm3evG5UjHNFSnLkSIQaQlbBV41Pvc6+RqPDzQf/S+EhxVzdTf1I4z95BOs56CS+ HyfWKizssKZWFCOKbwmL2SKaxJjIs9c6ovf+6wWiWn6rxtD2R7xqthsAlGYCsMVywkg== X-Gm-Gg: AfdE7cma8Wo6LoSBNE9p4g2c+MvbNh3VY+RnnJ/3bpwXbQWwJLKnGb6PbqXs9YknhEW VVou0T/n6oqCukTtwUSLbvuho7Hza4wCFUhcEkoqzNs8ZkWM5u/c1YfA9RYsQCbnYZ1IAHlkOIq +Icb7VJQy2+96igtW9Vl/hooxQv29aa4hUgNrV5oSOD71H3DGFEepnKti08X+nuhrpSLxOXtfT9 uw/wh8JXqq+A2GBR3gxyaCp8YxqqD/gy/NcHG/pgfde9zDjrLfm6PIHnxNmVIRv8CH7d2VvxBBD JW8D7FL1QaqviC3JMsZLcIP9XlSY/h1HdpQfcwGVrBIXvOehbGAEwEjJTl+kIzuGMkxSjWkMJGS T5AyUxyvDtpwiC9hL2CeHZs5VwNu3U+skzEFyrcKX692946TvIF+8XxYmfPY= X-Received: by 2002:a05:7300:5b88:b0:2ef:8b91:212 with SMTP id 5a478bee46e88-30c58acc1ffmr370819eec.14.1782167361184; Mon, 22 Jun 2026 15:29:21 -0700 (PDT) X-Received: by 2002:a05:7300:5b88:b0:2ef:8b91:212 with SMTP id 5a478bee46e88-30c58acc1ffmr370798eec.14.1782167360687; Mon, 22 Jun 2026 15:29:20 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Taylor Simpson , Pierrick Bouvier Subject: [PULL v2 07/75] target/hexagon: Suppress unused-variable warnings for sysemu source regs Date: Mon, 22 Jun 2026 15:27:56 -0700 Message-Id: <20260622222904.607771-8-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260622222904.607771-1-brian.cain@oss.qualcomm.com> References: <20260622222904.607771-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: OwGw1TlYI37jKOYGqeS59Wwmaytow_pp X-Proofpoint-Spam-Info: AW1haW4tMjYwNjIyMDIxNiBTYWx0ZWRfXx8irFBlIMfSR Z7zzyZNvZWQ1zSvMPHOOxPLa9JGxdN+wHXvTzz3pdSWdfzLjNK1zn8T9vFxsrNQWjkK1haCWOWc fZzUVgmEH8IKacL3fLZXE5LzuJEmnGQ= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjIyMDIxNiBTYWx0ZWRfX+CB0CiG4Us1x t0o7MwtMgfpMInF3tIfd4LkAiybu5+rX4RKA4ohStGGVMlaUT0MxEoZhSGrC6yUyTXXjVfucp8J iKnu31JCbakUJaNtcNuM8ExdhVLZpDWa7s6LIf1fz3cy9XZl2LSDTbwQf6Asts3Ok/o0Y4QdrZT MXHcHEIu0TF/OgYcx9MpSq55gv1Y2gDCYHxflRP39X1AgBodT1qMbA/4sHK4x+lEDNiwxUiouiy zxubY5lYNN2FMsoTbsdIGVHkXNy7quHWX6ClYwaxgJiLrsEPhSHIwf4Qru70NIPUNnkKwAUZ9MT ja3YENMkjy4PjGDkGpN5iQMKA7KQK3nTR3Kk3R0U9m83X20ooswA0ALJc6bngb9wZ4/to6vIZC5 bYXmcPVsz3L7dP0WT/JMq3ZvaKXs2Xh3IHfg4pUFmagoGWO86fr/uiw0O6fi9ug38R7KcRtJu4L mq5JnDZweIxeJ4R8A/w== X-Proofpoint-GUID: OwGw1TlYI37jKOYGqeS59Wwmaytow_pp X-Authority-Analysis: v=2.4 cv=YpI/gYYX c=1 sm=1 tr=0 ts=6a39b742 cx=c_pps a=cFYjgdjTJScbgFmBucgdfQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=dvhcR3axvtdXbCCTPW8A:9 a=QEXdDO2ut3YA:10 a=scEy_gLbYbu1JhEsrz4S:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-22_04,2026-06-22_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 clxscore=1015 spamscore=0 phishscore=0 priorityscore=1501 malwarescore=0 bulkscore=0 suspectscore=0 adultscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606220216 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782167653930158500 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 Tue Jun 23 20:53:54 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1782167636; cv=none; d=zohomail.com; s=zohoarc; b=AMCZZccBqAcC0fzFUCnbuMj96bDnRCdwLBgdNTu5dlE4pPG/ojsjFmb34mkgJNMx6PbuUJ41dYJDOjLZMRWngEI9aeYGKKuv6SvPVIFD9PicErzQAvxbE9BEmbWxTnwSVhgowm9yshsHzyL/8SToki4S1Y2An5NJuNzD4wP6x/w= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782167636; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:Reply-To:References:Sender:Subject:Subject:To:To:Message-Id; bh=+b8voobbRHB+fEzV3OFcGYw0x0PvxvjT9mR8Wf/yF+Q=; b=ZY4geMZ127MyT4USCH1L+Ae287I6cW20TKaKP7GJnjL1bsq7uUbyMDACLEUBmZ8rApu6rHrWxAzOGl6VlRkBuskdpb3oVeSTyUfgTDJUBWm68IeIVnQuhBwdqYVj/3lbyj+I3GN4/REmN1tnhaO0c98rVGTQJA7gocGqSYXJuDI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1782167636836317.61956667415257; Mon, 22 Jun 2026 15:33:56 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wbn8y-0003MB-8l; Mon, 22 Jun 2026 18:29: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 1wbn8w-0003LE-Hf for qemu-devel@nongnu.org; Mon, 22 Jun 2026 18:29: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 1wbn8u-0006Hv-MH for qemu-devel@nongnu.org; Mon, 22 Jun 2026 18:29:26 -0400 Received: from pps.filterd (m0279870.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65MJbQiI2177924 for ; Mon, 22 Jun 2026 22:29:23 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 4ey37hahc2-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 22 Jun 2026 22:29:23 +0000 (GMT) Received: by mail-dy1-f198.google.com with SMTP id 5a478bee46e88-30c0d568830so6662011eec.1 for ; Mon, 22 Jun 2026 15:29:23 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c1bd8d78esm10945995eec.18.2026.06.22.15.29.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 22 Jun 2026 15:29: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= +b8voobbRHB+fEzV3OFcGYw0x0PvxvjT9mR8Wf/yF+Q=; b=QXZGh4DKIZJfkFHp S7c9qJIliwgEiao2oWDtvFwEWmFBDrGvr/0yj/nhHHQQxVZA/MEqI6ZvkezcIKM1 SM0nGyMNvX6Opof3k5wQXDhn1Y/7XHUUrhJDLsk7yzC0i6Gzyex6O68woA8VISSH rk4j9hckU2DwqQU3jLzUByC8hZgGksNoW2Y/LkXKjsscfUyRLyqb4WCZYWYCYCgL ZhMXyiKdv4vOl/0SF7i4Lp0T0Pm2b+obgxwRN23LybgFtEFBr1SGyYAXFgMIWCiD r5jV2gEOSbrMo4tRmyDIJ8nKfwmqcqkyvNhQmfuoJDSptA1zyN5XSLzdHuUtqEmv xj/1jA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782167363; x=1782772163; 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=VmJ2pB44vJXp+e803FGWIAEp939ieJv6yY6Qx8Hoz8nxmKnkLo57ikpyLGny6wv1Sm kDNga6c5fQdlYJnen16zm+ADfGHUF9GHz8p4Gk16CawbdzTzW8cCt+mW7mNG68sI4Uz4 6Kv2jDY0TVsfWqSIWR0ag0EzMhYTfPUAWn4ozNnOZ1brreDJPG9hwvi7NKNt84HmHh6H fDtxG2WVfXlnUcAXPfN2RhhB2q1Jpv9GEb0Us+L27XILbMZlzJj3icddNH3brIyKNaif oJU5IBYaHWClhw5F8ko7L2OMSwmj9SmzGz26xIuJnfFbJ3XLrU6SPVM16f+5w4EoQ3EN 4Oog== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782167363; x=1782772163; 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=NqdT4DD4xxDxYxYBMIAmjOOAvoaAhCS1RxQs2dEuH/W1Q6Ha78IPzj5RrrMziR9Mx7 DIhM3bXtkz7nwg5dYCgnjLrqvckmFYEQ1/uIdFDS42Qnrf/fu5zXQgkYFdl2VNMBVjpD us3CN1j6dm3QjmuhnJ8SNQs+8jYP/bSJA8GEmtzXuCzQZA+Y2ul43zUyFHkBWJthP60S 5e0/dfhvvNj7nSn5b1W8PquNzQNp3pX4OTs9Df+MjIM0SpEsWw6JoBTDFvOY0a5Z7acA r/krebO7MSanIRU1cPaytcYwelWor+ODSp+iyL0G1zboBk45fjMIaSgsGrOpjtO2BqIk 1Lww== X-Gm-Message-State: AOJu0Ywq7DIvr4Eu42KDcvacd/Mp64Q/+Qy/H8xiA40gnBArIxpvBg8p 9DUlnngazGoaPLCQTRc7375ec4wjFTEX9Hb6OpGpm3Us4FX8IjGbYt/g37RQX06XOwEnADkDcN6 y7veTD8+LJLPVNmPvTbTTekhWL99T3zviZHg7nplAEFM9LMRUjbtXq2Fv3eFe5DiemA== X-Gm-Gg: AfdE7cnlqXjGhgr9+yINmNbKt2233eydGfd3qcqdd0nUX3XIiSwEE+dI3fakcqpohrq f4iDXYZZ6JHTDhqJggD5cihO3aWUPvA4AjG7cQ/YOP8aWxweAuKEyv92T7cx7JHahLV2sipS5fh Jzlpw9+qCVR2ucITwL0WypmsNvBq2/fSNP+KO99zBC3mK+C3bg1APoPDEKtVZv+jV0gqdBv2/C6 D8c1TBt/12DJvO8sD4DD0bRITPfrNqBP3PnhKTJAj7rkdlYttg+yCKZLbPlT2f/l4notMAqeJSS qRyXIlD/JDb1eMn2Re+thm3AaEyEHoKJaZHEDuFGSl4Rc9lx3Ejw3FdEmRSGNKO159XfTOTfLdX tk6P+6ZEUkv+OmiaCpL/DpwST+EZo9OmQdqqKaHUmrDol6iBCVW95/4ijHlQ= X-Received: by 2002:a05:7300:578c:b0:30b:fb9c:f8ff with SMTP id 5a478bee46e88-30c589f61acmr364401eec.6.1782167362732; Mon, 22 Jun 2026 15:29:22 -0700 (PDT) X-Received: by 2002:a05:7300:578c:b0:30b:fb9c:f8ff with SMTP id 5a478bee46e88-30c589f61acmr364377eec.6.1782167362234; Mon, 22 Jun 2026 15:29:22 -0700 (PDT) To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier , Alessandro Di Federico , Anton Johansson Subject: [PULL v2 08/75] target/hexagon: Switch to tag_ignore(), generate via get_{user, sys}_tags() Date: Mon, 22 Jun 2026 15:27:57 -0700 Message-Id: <20260622222904.607771-9-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260622222904.607771-1-brian.cain@oss.qualcomm.com> References: <20260622222904.607771-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: 1vNBJYPYtHBP2NcCydwgvSrP4CPmCm2D X-Authority-Analysis: v=2.4 cv=ecANubEH c=1 sm=1 tr=0 ts=6a39b743 cx=c_pps a=wEP8DlPgTf/vqF+yE6f9lg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=gowsoOTTUOVcmtlkKump:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=orAq0Iv1PZLbcfkgE-4A:9 a=QEXdDO2ut3YA:10 a=O8hF6Hzn-FEA:10 a=bBxd6f-gb0O0v-kibOvt:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwNjIyMDIxNiBTYWx0ZWRfX1mYgrN97y73h Kf9Epfwu3buhwq0tqaopZrvzSQp/+vVDFfmcUJt0IBULtl7CQRql5FRpfkIVCuqvuzej9O7180X 5/g7YhG7eYk2fp145Zw+EOYh1bL1+IY= X-Proofpoint-GUID: 1vNBJYPYtHBP2NcCydwgvSrP4CPmCm2D X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjIyMDIxNiBTYWx0ZWRfX1O2dWzqB6pUH CZGPnB2sH5KpSetnE4n+Sn53Ok1oJNkaTOqyN+yOf6or69O1YQIdvg/I7C7Foi0gOKWLBAHWqn/ Nwn2dG3ePfPhW3SotzSBHCZM8ZSLlr+20+okLQi0M9PqQMeESHSsjMLvbbdEFd7DDjb8VTiwH2A 4JzGfIA5J+MhDni1M1o50ltHaED7Ib+rzlPa6VunqgapHT3N5xs54Rtbfb/vxD89YWi13Rrfvx2 cWzWdhJ20WpueVKvvwDym7kaOAEb3ObaJKv3/Za20KiKG3IKVfF1kgOtwVG3/mMnwjClHAnzrFL iIcWWsvCb+SWdjmMohHz3+kHBxYOjsqSHIvZRSEnkrX52H3jGhvz8UgqaLl/bzTkadEv61jwubc J2fmhFxVMSVNd2Pq/dVnf1VokWp/HXkBFYpIp3Q1u2z+23cipQyPiGNaDNYi+jkzJqw8aqbHzzA bTz2HBFYnz00RlhCbkQ== 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-22_04,2026-06-22_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 lowpriorityscore=0 priorityscore=1501 clxscore=1015 spamscore=0 suspectscore=0 impostorscore=0 adultscore=0 malwarescore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606220216 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-to: Brian Cain From: Brian Cain via qemu development Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: fail (found 2 invalid signatures) X-ZM-MESSAGEID: 1782167638043158500 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 Tue Jun 23 20:53:54 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=1782167510; cv=none; d=zohomail.com; s=zohoarc; b=FulPDgw739K/7h8D0EqmSx5WtQ6R7DroOZBfnfTLAaIQbxRC3jNlJzCg+MvS00cV0zAenzKPqMkh1l+RGv/J6bVZ7nXmfukVolyIqKMxvwieLatIRBytM2kABdPJqgmJds2hYn9FH9ewP6O/2hU2t+jEswDZW1Jnn8vuT/HLHPE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782167510; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=FHbYskrpafTjtEPa1/osvUq0nI48LRMnOOuV1pG2A8URgEi7BksSQW3qRDRkBhI73vaPtPA7P5N/cNxP48tDETlbyrnOzNA7Fg2bi4vRezSIAmxXqsAA8q/Bhv4WWisYrSyPOFm1oXPY4Q1wi15zVL/20PxT0dwEN8xjiRTlF+8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782167510235135.51394485796152; Mon, 22 Jun 2026 15:31:50 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wbn90-0003MR-8X; Mon, 22 Jun 2026 18:29: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 1wbn8y-0003MC-Cs for qemu-devel@nongnu.org; Mon, 22 Jun 2026 18:29:28 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wbn8w-0006Ie-A2 for qemu-devel@nongnu.org; Mon, 22 Jun 2026 18:29:28 -0400 Received: from pps.filterd (m0279868.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65MJceoI1938786 for ; Mon, 22 Jun 2026 22:29:25 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 4ey5ye9wst-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 22 Jun 2026 22:29:25 +0000 (GMT) Received: by mail-dy1-f198.google.com with SMTP id 5a478bee46e88-30c42d96713so952012eec.1 for ; Mon, 22 Jun 2026 15:29:25 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c1bd8d78esm10945995eec.18.2026.06.22.15.29.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 22 Jun 2026 15:29: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= U0YIrWOgJadDyhJIcIFlA8Ek4kYkhreGdWe9fXSI7qc=; b=TZQo8vay6/jJfESp Q0DcrQXVyN+O2t3aBTVPOiwPNRNCJ810ehWT2Bt+ulsceHQVKt0QYmUJxbD7eCsx g4+P77NTaMx2Lvgy5cAEoln3yoBVE8h0x3/0O6jzN20SIylcByxB29A2ni1727jg xM86x8q7+5BRVzmEnv23hioaRjgiit74otSUiLn6sFn74HJgOYBHaHW1O5FAF+cc b2wePHiGT7+tf++pD/W/Ha5ScUkTO5hxghf7ascqVNcleQOlOCYgRtU00QvXuHzK fWO3jErthhamlnkYPnNsZukSRkoNsRyxwAa3ft86aDqfFt5/yltI6+QwmVnGQda/ rfxwdQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782167364; x=1782772164; 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=X+ATu4SSzjxDgRG9OC51KGiSL2BUsaLfB+pHJWEvK5G1RPWiTk/eyQOBfgOGZKo4cO /L1HnSYDYZa8FWvaIqqi3UN3kKC9zFtp8G/QZCyIF1uRSUIf7GngIK8DAGal9+CR+lIH naLN3KGCc0LPxYgUzqj8QtVQV0SQ7Hs3Cg+tga0somkmfrZhqm9hvjTJPlRYk3YCyx3A rEQqvCWpwfYAS9X9PmzO5IMWJ4kVViZ4YezLqQsxFXLdAOWWKSIfptzSLXF672C6F/A9 tgnD5Y17U1+WbVFsIG9bruVJllHjGIsYtEbpx+vWvMIkZUj1B4uQq0Pn1ugN7kGvMqEf qcmg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782167364; x=1782772164; 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=olMddVriHRWuSd/N1WQqc4tibGqAwlxvx0XyQbdandAkD5BNuh4FjtUSOHjyfG1Y+7 0rhYnCOU2T9xBssQvrpZH9LmuYCc7cO8L8StBpWWQB0NHM9qtpaDxStJcxJdM7OiGV0Z vc1QU9yuM4gDhDCarl4lzba4N0kCDNL1XbvGxbyiFLUwtuTWmpPB+FVOovurwkVU5+yY kOe6dS+TZutbkBHc4VpYr0KtgE9mnL0lEngYssBFCp+wueA571Xb0dyZdaS0rd1MqqmU gnDE0T7mKcZj0gQ4QiVobQRs+OzjzvyMsDLCyBn4UJUPE5xMZ7YZjL6Xt14TQ7/j0exJ swZg== X-Gm-Message-State: AOJu0Yz9pCF9S4l9ocZUnEPGLZfntV7aq5yyVrGBV8vkT3RRt/J3HZRj YU/xs5atA1uDHJrPCWfUg869PJVazDgcvUCNUs0f0WupWiuUULxav2nUomiQ8Fek/lN2dSdJd3E zpsvf3dcbn6jABy98+BQl5obR0CY9ru8w81DJDHwDFC2++bxoCPzbk83DDyPw+NOR1A== X-Gm-Gg: AfdE7cmRVOGROoDpF7k/eTaX5L1VrvXjNfI65GiRpk6mDKERdFqhwZ/LIvGu5Rf0w61 FfiEHqeZtrXNHwFO9Z2uhGwP32ZXMr7cUEHnrDx8ZB+aHrjFbj7qlfnD9R7sIzmNHu35qFnyD2V 5UFU2B1Ect/NsSbu/FbF7qoA+9vkdDQ2hZu6613OaGOlG28Zl/Pc13kGnXokLJM4yAjfW4TBXmo dZC+jLSId1dsxqmZw7DDOvbX4NnXGXQUwW04/WJ6Px05R5WQghYgCeW4C+1A4zFRljBMVWgjdND 6iqTqW95LSWknRzfNxuVdzoOHk6x/BfFjAiAQCfXm/ovExhJwN1peTg+BAu7ehnL9nwIecTO1mx ykAm738UwfZlPUfbSwm+5c3dmAy3jaAIzUKHUoytYuXQ19ilEmZfB12m725g= X-Received: by 2002:a05:7301:618c:10b0:30c:2d3d:7838 with SMTP id 5a478bee46e88-30c2d3d99c1mr4855672eec.31.1782167364178; Mon, 22 Jun 2026 15:29:24 -0700 (PDT) X-Received: by 2002:a05:7301:618c:10b0:30c:2d3d:7838 with SMTP id 5a478bee46e88-30c2d3d99c1mr4855656eec.31.1782167363615; Mon, 22 Jun 2026 15:29:23 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Taylor Simpson , Pierrick Bouvier , Laurent Vivier , Helge Deller Subject: [PULL v2 09/75] target/hexagon: Add privilege check, use tag_ignore() Date: Mon, 22 Jun 2026 15:27:58 -0700 Message-Id: <20260622222904.607771-10-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260622222904.607771-1-brian.cain@oss.qualcomm.com> References: <20260622222904.607771-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: 3ZCitPPTKg6so_Jo7z6t697Hos4NHyvZ X-Proofpoint-Spam-Info: AW1haW4tMjYwNjIyMDIxNiBTYWx0ZWRfX5zzHMsklaTrU r9y9KV7cNLjFaZtuTrFFZXwKgFta7hrkf/FHbcz0tnNHzwhYyH1Z+n/5xa8dUK8XwGlDZuPAixl pPQLqVsGPwo1YNSTPhLWqJ9zp9F7fG8= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjIyMDIxNiBTYWx0ZWRfX5d4cHNFt2zOX 8ZxzpbpFZEajPRY9EoPts1/8J3wfGTNDzERXC/pFnNrCzVOB+BA5Rj9zJBjeVyl4w0KVYYfEuXW Q2uZiINFGFm4MyDyH+3eKlEvE7OCGYXOT8tlVj0eySyJtKTVCowL1oSV8LOt59k6XiztNfaXvt8 rfmlvZDYwOPU+mUVbuA/prWw3sI+qCmLHTei9sHyn872dunEP+cLnV68gFIZqm+7mafMjFopBjx oNIoWdthxfhScicPOTajRs3Mm/aaP7spYvLS0ythQtvJGNHIjOuuvjBnIww65EKr3gH10VL75b7 1wQWYtq/GAHMo7gqRrOqr4jXHhc9+pDfviiIh8wKBWWwOTnxpxYFRl2qV+ODh/BQEx0fZC+o9WX qq/8yTI/hJXZPbNKuibfFPtau63k78O5aWVAJbqre4Lu1u0mE04fW6jxtJH12ZLe4WU9+uZVZCO EJgt3YncouiZlsIhSWw== X-Proofpoint-GUID: 3ZCitPPTKg6so_Jo7z6t697Hos4NHyvZ X-Authority-Analysis: v=2.4 cv=YpI/gYYX c=1 sm=1 tr=0 ts=6a39b745 cx=c_pps a=wEP8DlPgTf/vqF+yE6f9lg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=wr4TPrvmPTm06inSG8kA:9 a=QEXdDO2ut3YA:10 a=bBxd6f-gb0O0v-kibOvt:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-22_04,2026-06-22_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 clxscore=1015 spamscore=0 phishscore=0 priorityscore=1501 malwarescore=0 bulkscore=0 suspectscore=0 adultscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606220216 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782167511307158500 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 Tue Jun 23 20:53:54 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=1782167394; cv=none; d=zohomail.com; s=zohoarc; b=LadQR/MxJwLVd211TaBjFxzrMj6LYaxWy8vyjbtF0QoVR5HKRe6xLu4yXB+HRGmtHmJh2giDZ70LIz8lnYrUyekii2ottWzNUjkCHJ6DVMNG1BoKflFoVhNqh/tmM1ju2vmiB33vQzCY5WaQqeKw8/DmBKCr9tm5djf5FzkcKa8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782167394; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=hT5FxoJuNPVa5uUzosDj03IULlFRtHEASniClWW0eAnEU5+C1yGHmQto1iMzYMz1noR2GX+plPCjMVvSsJvbfdSpFoD+GqmrsONELDwuBQUX0jWXsTWu0NzxOcXIkML2IMMB+B3Ep62wuwhr6EO2r2+vYdmLXoS1DChFUrC9YbM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782167394796637.1499938164966; Mon, 22 Jun 2026 15:29:54 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wbn92-0003Mp-Ka; Mon, 22 Jun 2026 18:29: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 1wbn90-0003MS-Lm for qemu-devel@nongnu.org; Mon, 22 Jun 2026 18:29:30 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wbn8z-0006LE-AJ for qemu-devel@nongnu.org; Mon, 22 Jun 2026 18:29: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 65MJbFme2206068 for ; Mon, 22 Jun 2026 22:29:28 GMT Received: from mail-dy1-f199.google.com (mail-dy1-f199.google.com [74.125.82.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ey6tmsp2e-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 22 Jun 2026 22:29:28 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-30c011c7cb9so15194053eec.1 for ; Mon, 22 Jun 2026 15:29:28 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c1bd8d78esm10945995eec.18.2026.06.22.15.29.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 22 Jun 2026 15:29:24 -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=Xl mgaUQPY0LGyG8AQ7gDt8vHjgyxotH0G9roSC642TGmlmmJBtTvoVpcrNmRcT7pD2 VsNvHZhsrPLymGMbaG0t6DSef+v8F+GPdJpwhtiLrXKk5yQhZz2iwO/GbHDyxJgi eEIa0Hiwocsetoa2wmv0hyKoeW87EcyNRmjW62oI7+yspWhbS0HMRltvagxdNIUD HqELt3yFmK9TPUudAw0MErspMFFS+qxmZ1X5E2prnFWwfTFBWHJYbs+KvcBMBFPT iLRatJbe3T55mnl2jL1F8E15CpmYv9/K5ULID+7HQDDks5IArmhHIBhfNeP8LgzM 8sXwLNWvhNviBzbfHyAw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782167367; x=1782772167; 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=kX38m4keBoiTDVA8ja9cFzfj9xiUjinc2OC84WTkZrnvnWHcPGxzVj/EAjFSv5mq3F jrjp5axwy+/NRwQ27WpfkzHTPK+9Pz0vpMdBeDC6o1HkVUcN0M1rGBI5LbMhI15iHOyu AXOyVIhjxKpZE+pXTX6L+MYtX/TSj2IzeZ3LyOmJ4/z8vU9V7GsrWOrzRHVJd8FHx4Md rtopZPCbSY67VjSIIKuQBQQm53Uqp0gh7Bp2G3CR6JenSC6SO29RknPx+hHjuRR4Ky/K VxR4jorPwr5miDFnAJHR2snr6u5JGMfE6wVIGPp45cbeCB/90oVc9RJqLjwMqf6G8J6M wOyg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782167367; x=1782772167; 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=RETpAs/ZGsMS/e0GxFCKl9RJnCNaTVWW7EhKgOsuBtMsv8rK8/w+oNx8Zk/DchhH9J An8x5Ld8Fum4si7Fz6s9nD/t8g+6kpP0YHB8o8MBIE/XUwP/PdMYtft10gsvmkBD0eCW jvCV/8ovWkP7nHY+aky0U4XO5bD6gfb4dP85apvGc/pgQkC7JYqWSQa0UlYxh31gm53O o9ndnrFEAMVIIKXAhr5kqjpfoLyCvq0GlX9jOJplghPUKKw5h0icdxD8uMFs1NkqsvKd RsoQ9tZ4sxyZydunkEowTG/Q/o5VC5e3nix1Qg/IkFn2PUpBchb1xaPsUEqRnetPNTw5 bdXA== X-Gm-Message-State: AOJu0YyeDxnD1wKWmn6BnslBkow9aDBETXYEeLzE4vcG28QGfMBsabAL Amqac6pmeNQDr81a2/SDuhcO/f4zPaXUYyKFcrD3jEAH11GbP2PFuB3lwVFbxKTiE0hPiiwEd6A fAu2oay034vR2hyHcYJLqgP8hpQlDyMj5EwycuqDsImX5pbKQdftVXNkVcoAc80Nohw== X-Gm-Gg: AfdE7cl0HxQh4o6pKY95+5jkwMkgHLxDGIIZxLVaPY9e1vIVbvoySQB6xvxkbSexGeF SV5KRbwmGWgdRgEu6s6Kn6abVXtmaAuRsWbP10bniDQlDEG8m3mdUIRWjiNA6J3jdmFa2PywHCS VcZpl9BKyIhsjNdOHMtuhpyymOMSXKWN9ZJsfb1HPi6V8Fcu9W8pxs/evvq3gELl6j3e7CiiVKp lAooASL/btQiFq+njROHn14+Xi6diCLb2rc8fomfgj2UTxgRs8JLTncyn7Y/AZtydheAMezJTKL w8usJZbfBDhvnZpdDIP8/EO8XbQrD4k8h7vL5uJUr8Mbu32lHE4M19XGf4GeF6Yw4/W2fOO78DD bIKvrKouAKo+VIZsshEuH1ZHqFbe2L0KvrIjEh3Ressjz0t3/O0AMWfXJoug= X-Received: by 2002:a05:7300:3245:b0:30c:550d:3c7b with SMTP id 5a478bee46e88-30c550d416dmr1476118eec.1.1782167367489; Mon, 22 Jun 2026 15:29:27 -0700 (PDT) X-Received: by 2002:a05:7300:3245:b0:30c:550d:3c7b with SMTP id 5a478bee46e88-30c550d416dmr1476085eec.1.1782167367012; Mon, 22 Jun 2026 15:29:27 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Pierrick Bouvier Subject: [PULL v2 10/75] target/hexagon: Add a placeholder fp exception Date: Mon, 22 Jun 2026 15:27:59 -0700 Message-Id: <20260622222904.607771-11-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260622222904.607771-1-brian.cain@oss.qualcomm.com> References: <20260622222904.607771-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-Spam-Info: AW1haW4tMjYwNjIyMDIxNiBTYWx0ZWRfX/Qf2U3hwWQOP 9OWYBk/vrJ3aBVc7+BKwLlRydnhG9ULWCWlY4+KFticlCWZYucGxZdkm+f3/EvEfD7IaDwTh75E uJG4H1A3OufxP1QLAroH24D/jaGqCaI= X-Proofpoint-GUID: w5BfEUTqp8u1LT2lvP15uJPygDTWXuqs X-Proofpoint-ORIG-GUID: w5BfEUTqp8u1LT2lvP15uJPygDTWXuqs X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjIyMDIxNiBTYWx0ZWRfXxcg0lS25ME1U 35qXFVUou3Bx/iwwB46qFc9Tpmtk0pHDWw8dgXYRiGRZV8zCKsEaTKftD7FZQxKLZCJekTrBNht e34UHMJ7Wt4bak/BL+tOvYxm5R3S9UCVApClJbmR68ftNFZatehm1wCw0KBbDRA8fluULUvdawg McVhAc3qPRjKKvD4CUqv2DWbzWHFaUCIG+4FLULToMF7/5vMxpjmxBQ9JYelzt+2ZW3PT3COAoQ NOLz8yWYS7oLuAHxuG2YUcACuP9lmh3js7FraY4X4jfY2rjXzLMKpeDhNueFQeL7qIGE/CqXdKY iXVXNCIhvH5mqysX2wFFH0lPa+KeQQnK68A6YP5QwImgmZn2DUWqOXN2S75ADQUCEEZdiRR7c+J N2TBAFzdNc+e2bvD4C0vOQqRyL6QXlIHGsNcr1wFuFZjKpcxvjsAFN483rPBvjbP+akH51u8QPd 3SG87RUHsblWUPgp2ig== X-Authority-Analysis: v=2.4 cv=H4HrBeYi c=1 sm=1 tr=0 ts=6a39b748 cx=c_pps a=cFYjgdjTJScbgFmBucgdfQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_glEPmIy2e8OvE2BGh3C:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=KKAkSRfTAAAA:8 a=EUspDBNiAAAA:8 a=R5LHHePp8dzqxDYlWrYA:9 a=QEXdDO2ut3YA:10 a=scEy_gLbYbu1JhEsrz4S:22 a=TjNXssC_j7lpFel5tvFf:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-22_04,2026-06-22_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 suspectscore=0 clxscore=1015 phishscore=0 bulkscore=0 priorityscore=1501 impostorscore=0 adultscore=0 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-2606220216 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782167397178158500 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 Tue Jun 23 20:53:54 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=1782167426; cv=none; d=zohomail.com; s=zohoarc; b=FIVPchv5hlMdPSKn3nEmpDdbcQOW+keCKF0ZyvRS5WzZYioUoNnkmdd5dMrgsShRDdzmX2LtLzmoak15pM59FaaxSwIa4rLlPrWk/ztiMaRKyUvxcqvKSWIvjYF/czUJQva4vQPuZbl7KXZWiSCzWOE8uG1abFPp72xHMRXRxXM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782167426; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=U/Fr2QEyhpITfu7x3rSgShIeqdyL80g54Gf4ZUUIhr0wVZMcuQLrO5kixULZlu/TbsDKxWBzYYdFmWDMIkMFmzLflYLv+4bK1dji5yVSmNsKAahxD07/8KLna5ZVwTm1LRNC1YN3XxxN6yhqQttFg+u5Ep3581Akv1KnfCfHHKY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782167426699338.5920002975465; Mon, 22 Jun 2026 15:30:26 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wbn9F-0003O0-2F; Mon, 22 Jun 2026 18:29: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 1wbn9C-0003NV-Sl for qemu-devel@nongnu.org; Mon, 22 Jun 2026 18:29: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 1wbn9B-0006PH-B0 for qemu-devel@nongnu.org; Mon, 22 Jun 2026 18:29:42 -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 65MJb6p11902667 for ; Mon, 22 Jun 2026 22:29:30 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 4exyn1ukab-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 22 Jun 2026 22:29:30 +0000 (GMT) Received: by mail-dy1-f200.google.com with SMTP id 5a478bee46e88-30c42d96713so952035eec.1 for ; Mon, 22 Jun 2026 15:29:30 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c1bd8d78esm10945995eec.18.2026.06.22.15.29.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 22 Jun 2026 15:29:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= ThmCBEUUn0U8qb4sT7PqDbrtmt1EHLpETdzQjy89vaA=; b=SSdh2d8/hRRC27KV j20IXu7pXBcNl1+2xWv2Q7W9+5fphmsFC7dfeorbtSSesu9jAGF/CRX1qQ4S3yf/ 6OoCvNEX5RJr/eAnaSXyxRjUlX/7/+fi/5I+etHKY11kesXNDoGysqE4rwGDXHlU AAa3Vr4K/J3noB8mKWTNnS+BAS+NITFaQ74QUdlELBoDVz2X3+qK+kO90izTxr8/ yjTbJVrcKw94lHIGt62PBe/Z/q6SJMgum3f7X7+LIQPXdBim2ljpxCEjihZUEfD+ Ct/FjwqIJQ1FGZh2GqpzoUyRtug3V5Lzbr1W3/bgXWWwdsDQbAsgL/SW4NBM0hvY Ei/W6A== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782167369; x=1782772169; 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=CBsQiXxKVPwQb8W8YiWSa/9FLswQVniYt7lN5S7fYZYrdyHTtnhzo5C6ATnXTLsRsD lNVqP57d4LU+VadBJ+VtijCSVWzSH82iwXvcyRMo4Xgk4SqvAKnRgV/rStC6CjvewBpc AV6SID9Yu+cy7tDe3M86+hG+kWnQHi/okulz5fIUHJOmch7zXtZGguebhdrOak7bQmdY DxX3YQWcTdG92jtVYpXWqAsRSyqR4xC0LE8D5UbPj/2zSHF0fjf+yBrZTuWVlf0YVhH/ iHH2I3/5BY+OOpcg/WhgT+F9Twe4kTRPExKj50y6M/KoOFek9xVJlRnEqx6Pppzsr0wW Mmbg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782167369; x=1782772169; 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=S7rZkDofwnOO6gV1JDguYkSqg6iFz7KIDIvIMYKpvmpO4KUVpvctHeG7PUxyH1TV/S U7/+kZr7wCu7BfhhJ8tbuN/jPRCaax6fg+IN1bmCpkF0TKjtKBHRE3Bjj2WI4D2NYmuw JMMky60wVAlqfWuePq5LeckXVf3Ajlj6ZJdQb1/8Ub0gzZPEqWn/fku8ga6DqMbe24e7 tWHyLc5PaUnnySNHOrY7IbYZPcVN8CWrgAyFlj2ThM+uS/Dw+iWuKA2K7yHV6vSN2Ued xEpkvnTSpDLy/U//bzsWRZrpPuy85X5krRp6V/lHV7WeV6WLGKJEA/EyNdYCbAHUlvCc n8dQ== X-Gm-Message-State: AOJu0YxboqJNPzJKZepx5nKJoAf1wGL1GqRKu48zGBCEhmDScoLQNi/t DZjbj90IorT/oDanoosijMr3bOXCyQLxP6bkjlBc5X1WYfYuNGbe8y/TQQBPwbdNqhh1afHK/wN huht/zumKZLIQx02Zvpq72hGLYqC2AHlZHCzoZz1HYqtfEAPJ3Vw5HF3NhQaP0ldXSQ== X-Gm-Gg: AfdE7ckCjs8GABJvTCMoySCwHYK5+zl1hobyLvmrf/baB6iVL+8f2MHeRirZsoPnN1D ttBAS6cXd0er+dbLBwhGGUX3tXu1NqGZwznMXG5Fk+hg0tysmIVLRp3rqwFeJYjd/+EtBrnspr8 9V8qVOcWQOnWGMvdvsm1RiAjo1mv843N5Pe99uI6ci6gf9PQINYvXk8wATptKWKXB0MTzSsUgAH jClOLbGuR6Toz5pt4/J9ftFX75tfPLbVBxix1up2vu0tTeXPghrqoZXHAehd8epCrTU+5f1wXxE 1KKKNbToPZcMzV4AKcr/TV11GDYXSCey6lly+X+d8nDu0qzi8xWK1JtLC3jm8Baw9aFUYL6UU88 9Anrl3h3kasAr5Us5BExuMVAPpCvAjCqNDmwDy7TWKZNifhUp4rICe9iUwAM= X-Received: by 2002:a05:7300:2210:b0:304:6448:dfd7 with SMTP id 5a478bee46e88-30c06e0c664mr11174624eec.18.1782167369189; Mon, 22 Jun 2026 15:29:29 -0700 (PDT) X-Received: by 2002:a05:7300:2210:b0:304:6448:dfd7 with SMTP id 5a478bee46e88-30c06e0c664mr11174605eec.18.1782167368687; Mon, 22 Jun 2026 15:29:28 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v2 11/75] target/hexagon: Add guest, system reg number defs Date: Mon, 22 Jun 2026 15:28:00 -0700 Message-Id: <20260622222904.607771-12-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260622222904.607771-1-brian.cain@oss.qualcomm.com> References: <20260622222904.607771-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: C0KxqgC1Mtoor0Do8NDD1iWxg2JgsXM0 X-Authority-Analysis: v=2.4 cv=EOU2FVZC c=1 sm=1 tr=0 ts=6a39b74a cx=c_pps a=PfFC4Oe2JQzmKTvty2cRDw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yx91gb_oNiZeI1HMLzn7:22 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=pGLkceISAAAA:8 a=tCkOjFGBvLAhDY2OQcYA:9 a=QEXdDO2ut3YA:10 a=6Ab_bkdmUrQuMsNx7PHu:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwNjIyMDIxNiBTYWx0ZWRfX4ia2w9M/o+mN q7UYrpIaPP9Eef6HxjYf65NqgnEhg8Dof54jpz4PHdfrS6SbG4eBfnnw5Nn4ejFnw0npTMjnrMo 6VJHkUTDJJ6MkPgdyE9AjOyRgLuEf2E= X-Proofpoint-ORIG-GUID: C0KxqgC1Mtoor0Do8NDD1iWxg2JgsXM0 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjIyMDIxNiBTYWx0ZWRfXwjpNI6APande 0Djw8RfL/13ShqDo4PBJheJO56qm5BTaTwDi/DbJlzpshUO8sKdaImAeCcvNFo7kr9SLLjsUsWB f0MWoYUFqsIzyyiGnmcAk2Z7aFVHj8/ppxT/gmasnwtl182pL3LKX/3u7RSSaXXa3mZZcSmgW81 KUGZXR9OxnP4V2o0XMUqwtOcKAYJNBD2ktviF5PVXMw1d6XzPf0sgngYyJqfD4g34l4bXjRhBeb +ztVSsd6jY0x1ygfewpR2JCJHgtssT6IOUSz+k8qZiFjjqGTRx7Lq/yT/oX70c75LCvN+f+0+z3 iI13VbFFA1RotHzUmefbiPT7fCdmmx8SXSxan6fxCjCIIY1ch6Mrp+uCEdYyIU/paOKuc/3ZZl2 4AT9KKh6G7RR4Lj2n2BdaO2So1UFr6Lo6WQGukzJ5F+aeICvhJmB3hgxWLjyZRh1VFqF+X8YPiW D4qSurkLNGw9pcTcmkg== 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-22_04,2026-06-22_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 bulkscore=0 priorityscore=1501 malwarescore=0 adultscore=0 lowpriorityscore=0 phishscore=0 clxscore=1015 spamscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606220216 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782167428770158500 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 Tue Jun 23 20:53:54 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=1782167471; cv=none; d=zohomail.com; s=zohoarc; b=gI3Oxuiuf4CHaWWgrZDJgkgVJ/Re+fwfk0l50GYTaq0UYEg1bsvKyTHcOV8YikMHH3JvHhRBTHEhEXnApxqkumpoqZNlMxMKVve85+Q9HT1zU6Aki8a+BOTHsWlvPqcLbos73vZaOhCGTWSGsyDDzxlrPyiWuaq6sLtCL2jdecM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782167471; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=DaGCgIM/rK20PiWsOBe8Lh6Bx1I8nSZXIsHuPvMclYDcwp47EtMLUzhteBZVrwE69xJEqhWix7HvQAun+36ydVcsc7z3ujjYuzDJUfbr8zDXgUyNNXscgM2Qh1j68h++nkKIcs2Y3dFk6GrJO+jhTWCYzMyXMhwDNN1NZl0wdQs= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782167471164147.38552333064172; Mon, 22 Jun 2026 15:31:11 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wbn9F-0003Np-1G; Mon, 22 Jun 2026 18:29: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 1wbn9D-0003Nc-Sj for qemu-devel@nongnu.org; Mon, 22 Jun 2026 18:29:44 -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 1wbn9C-0006Qf-AT for qemu-devel@nongnu.org; Mon, 22 Jun 2026 18:29:43 -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 65MJbKMF2122737 for ; Mon, 22 Jun 2026 22:29:31 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 4ey5n41xwc-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 22 Jun 2026 22:29:31 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-30c03c1dda3so6315691eec.1 for ; Mon, 22 Jun 2026 15:29:31 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c1bd8d78esm10945995eec.18.2026.06.22.15.29.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 22 Jun 2026 15:29:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= X1535rWHbX3maN5NHx9P8KfIpPdOoals3VppoQq+RNI=; b=pGfKodynrFK1vazY Xf0jCKyFJ+IVOjup4k+M0adYBPiHuEJp9xTAZQWRc4FxryNE1o0nWxOzV68EYQua tI39CZc9H3AZ1BuINkN+AJjclrEbQGQLF8g8vrPiae9I9TWuK1Kt4xGZgSufj+WA 5jH96UF5vlJjhqTB3o786CPJdCSXLr/kdJZf7vBmHnwYMv8PBV7vQViotN/WF/6e jtBOTe7QwaRy1rq+E+jOJy+scGElxqhcqeTRVxYChZuKelrrKw0CX9W6lv/CCE89 yLITnJm/lhJrHT48fS8t6k3dzrqbhCEFxGureL1B+Ut5TOmkL6DXpnVT02oQ6ng2 g4zdBA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782167370; x=1782772170; 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=EIU91NIpe1KRdkiBnQ6F3fZsa9qzApe3SGmLYipfUJe0ok+FvqN5ImrhSluQJb4OHK nKEyLEQU5wcaXZR6No/l6Q7jpBwEDIeOkIJ6xNqcTbPfF/r2g/eZmhdJUsYdjBl+oSZw ucBVDvc6QxkDTz6XzXXkkiQg6+hGmzajoh22bZwKj1IBhWqivCOIpK46y4v/hRPOLhD6 yFjOsjAizcYLFQKIV4WL7z2m3vi2v5vvYQ8+bzUYoZLaHWIOySZoXTFp/TzSu39GCgEV MXOA9Gd4MlNN1WB4ni+BsPalXkyB9fJSMkCMA0qD8XhA+Eh6U6sNZsekY+b+XPqTHL0C FAzw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782167370; x=1782772170; 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=aavIJU+gr7BSSm/EthmQHrWqM1bVnYwqt0LIoAWhHdxsVcI37fApZtJHTiRpkSaGm8 Axo1TFw8HTGyjUrw5kjf9mcN9r7FSBJSK/qObYrs2YkxDv2WcmRew94/zhRZOzsyIfgx kzBxIjkPKVuxgnFw2CW3wK9Skh5H7a1Natqn95rtJNwr445lWH3koQQE4Y3CDbcDJARA lsZFVCznR7yEA5FBCq1XJnHn3AeXK8/zG3+95LZbHAlL7h6eApGvB9FRLlEax1yjqVyE Z7S825FZUWn5zKEb7fKsJS0e6SvUpMijlzNzD1qKZTbzhF1F4S+inR9yRNqUCuaiiL2/ 5vGg== X-Gm-Message-State: AOJu0YwAvuJyHspH39nIbOQEKVXrdOUd8IZ9YOWIjd8IPvB6y9NaXayS FMC4eIyoIxzYbHhq1QBUkOoYhDCFGZScoShQb7czqe9/vTRGgXaBmduo8eC7M1jH7Hc5c1zLDqM 5RlmhODiXcVZI6wj7cKvy6cu04HIFJ1T0Bw2n0Om5AXsVBhBK8Hs+HbN0Kf0bDIgvMw== X-Gm-Gg: AfdE7clQ2xPP6ePczxFNOTtkV40ex790B4azhK43L0Jd4fAFTNr3lqIskghsnRRJp1f eulCgjZ0YcbidOEY98ueL/fuU3chLnxc4VbwWhTAlL5jwL+BVxvSaxoLHVT46UfhaGC+Bcx6ngp xiT4t4x068p4EqTbKkq3rq6DHNNvY0OfI9ziqpN2qnjCyRlUsncPZzFIjvgi6IDkh353buD/7Yp zmCulWWnwuF5op5fmcbEqVuS/lWphcDTZNwwGWwXmki8+BIC2J/fXN2aNUcRxeeAT0c+/s+8Aub LpWDIA3XHbzidYPVejS2CuE3KvSG2ZbMIc/+TXtxr+9Aqme0KVoc/HTeSFL4/m2C4uvt8IEyiXB S1Mxk7EV6E+YmabPK8K4wPpJ/J9fr+bBV90g3IK0YDabE1u6BXR8tXCflFDE= X-Received: by 2002:a05:7300:641b:b0:30b:b65d:ef87 with SMTP id 5a478bee46e88-30c1d9c69femr8891384eec.9.1782167370443; Mon, 22 Jun 2026 15:29:30 -0700 (PDT) X-Received: by 2002:a05:7300:641b:b0:30b:b65d:ef87 with SMTP id 5a478bee46e88-30c1d9c69femr8891352eec.9.1782167369821; Mon, 22 Jun 2026 15:29:29 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v2 12/75] target/hexagon: Add guest, system reg number state Date: Mon, 22 Jun 2026 15:28:01 -0700 Message-Id: <20260622222904.607771-13-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260622222904.607771-1-brian.cain@oss.qualcomm.com> References: <20260622222904.607771-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: AW1haW4tMjYwNjIyMDIxNiBTYWx0ZWRfX57cQBpSmMuom qaPaK6A8uFMCfzrCijfgIppylu4ocutlbl8HP+yU8LC633hmCbgrznwCBsV/pFQYWGo5phxCMae GlG609fBM0l4xA1ACnFCZSQgDz7L25g= X-Authority-Analysis: v=2.4 cv=R8Uz39RX c=1 sm=1 tr=0 ts=6a39b74b cx=c_pps a=Uww141gWH0fZj/3QKPojxA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=3WHJM1ZQz_JShphwDgj5:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=ikZfMmNF8Hme0_TNbpMA:9 a=QEXdDO2ut3YA:10 a=PxkB5W3o20Ba91AHUih5:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: nU-MywmE8rpNCG_qtqB69W4xov46aSej X-Proofpoint-GUID: nU-MywmE8rpNCG_qtqB69W4xov46aSej X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjIyMDIxNiBTYWx0ZWRfX+MZ2fixKuKAJ oHSm+wKGgyMbKfiim8/fEMWGnivvEptczasYrVwQbXIvMoxLeNwrfVYzvD8fB5BIfCnROYGrWhf RBwRB6jQgRREosZstIQkBnTpgk3e1BCNzf1/p1FyFB8drwCfdoicrpQ/wgPIRiK8UQHrlGSyuqq LZ3woxYLES2SGgj8hA90mzX5k5kWPJJTBT/TFSrwkI6zR0Rfs5EzYP5AtF6fT3Cs26zEjSr6D7n Wx+Rg8ti55qXB7s7P5ZzLvGzKkFxOWmjYvmd0Bk83w5eiJBn+CNf9QPs/brvtsfyJZEcPbcZRwt 0jOywZejkihJ5scC/3AirgbmxJkzhSW2Gerf+AKvewZOZAsuu77ZFu1gLZ79b5ppT82lCbPZKzf ZK9eFzzFE0PtM7x8JQq6EFwN8lOqXS8fWJMdGGdFoZkUwlP5MYAPzGexqc4OWMutt43Jn8MOo6h FckcTlaSDe9AhbaiGkg== 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-22_04,2026-06-22_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 clxscore=1015 impostorscore=0 priorityscore=1501 lowpriorityscore=0 bulkscore=0 suspectscore=0 adultscore=0 malwarescore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606220216 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782167472941158500 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 Tue Jun 23 20:53:54 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=1782167512; cv=none; d=zohomail.com; s=zohoarc; b=SUSEDwSn63/MC80h+3XVfnXfcuhlF86r6dd2ODx8/YEanPWd1JRMWHn4UmW2BBK3/Sk59StCmYH0Ftn+F32XqSXrG0jNQpkfftbCPNZ9sGB3La76ZOUPs/KDMSaXz0tpdlY7KzPUdS4FfAXZW+hR/tg+fvK7+kNBXiZdS22+lNQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782167512; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=Ff8tcdGeGTl4bqo2v+XWSn6O9lxFWi9KeitZiRFy/cYu5iJUGE7G1OPSeAwt2QCu4m/8BDnciFFJMfWK8+dUqWOwaH+MgRLMAetWI2Z/AyjUUGUN6m/I5YwzNwdJ1uJ9TFuEycQ7RNCvNAq5N1juxvxNL/OIDfueM1ws0E+uF3w= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 178216751226359.57263997064183; Mon, 22 Jun 2026 15:31:52 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wbn9J-0003P0-RW; Mon, 22 Jun 2026 18:29: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 1wbn9F-0003OC-Io for qemu-devel@nongnu.org; Mon, 22 Jun 2026 18:29: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 1wbn9D-0006Rz-VI for qemu-devel@nongnu.org; Mon, 22 Jun 2026 18:29:45 -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 65MJbNIp2122921 for ; Mon, 22 Jun 2026 22:29:33 GMT Received: from mail-dy1-f199.google.com (mail-dy1-f199.google.com [74.125.82.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ey5n41xwe-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 22 Jun 2026 22:29:32 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-30bcb065bfdso8976508eec.0 for ; Mon, 22 Jun 2026 15:29:32 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c1bd8d78esm10945995eec.18.2026.06.22.15.29.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 22 Jun 2026 15:29:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:content-type:date:from :in-reply-to:message-id:mime-version:references:subject:to; s= qcppdkim1; bh=AWqgRF4Ibw8S5E/4OIgHvd5Hhd9R0yIZ8RFAsz/XZEg=; b=it 0AbP5b/hW1YBmL5dLAYsucipE7typJAnMd9QHD+vbZ8H5XI4MUnvLFWoBLpWksrA 9L1+XwpmXAzPQJ+lNHbun8N+rVuAssfFAVXC6sOZO+bhT2429RpwbK5oFGiAA/xw J60gYJvP9KbzqzOkClLK8lHpGONv4khOEKLeDRR2ukNLNvJnN6B9ih1hYzwhOWXO Ie2gYr8gpbZeZ2/DxcCyaURmvxCkm+zH9yQm6imeU89bQtEXNdZYlddOgUO6bRxw DWiiPfMp/N8eT4ZOu9GYNvLolF3WUsPWvkdGr6uBViJYMtG1scIBaW1xHVwiKuvo UyXc1mv7kmK57g5P5t/Q== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782167372; x=1782772172; 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=GTMK8E9XCFEzmsNGgMpAH7m+OAqaWJJcqg28+Yn7w4gvni2jjLQ5Zl9tA+3m4HMAZ3 HzrWmTMBhAQKeiI6o4z2WJwd0qjxoqgovhABdTAtrz7m1AktrT8y9KpoN17vZpJ8ISHO FUMMC9YDT0DEuhypY3LRRJjbbRBPAcuviioIse3JCvPrNNMpTZImJRptkE+jUW5QcFY2 WKHcS+J92DDrYBFjxcCmhoDKSoX18KhgRHV79WnwLLJ+OIzL6gojLyFCZvjYSWiydXPJ Hi5O5r16K9hCpoFbuO0I7z/ujQHK0Vlruq7vNJGisWQyKvEMV+mqWgjXhabzubbN5IwU vc7g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782167372; x=1782772172; 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=O9ew6VNWTgXTMsLeXCh55LjPgia1mCbGbyFy5pE2NqwYW84BNSdLhUXKeaPXDfkePC o0I1si1ycY9ilLRY7opNXQR/WUpiilGcoEtPPhGadSmLfiYju/J6zGFfiaFK+5Xt/s/b KBALGoIDggKnRjmHtj+y0FbfyHZhbWS0En6aVdPltotEvaZqv8qOEdR2VlhLDByCI5xk N0Mx6EmVN6BVuCB+rEorvAh0DnXW496tqlYmoftZRYLYDZ7qpR2rebUdxtVeo0mqy7Cy TWEipMAQIZJB8uSIXG3Mhsn2ClX52GpKQus0ZzJr7ys3B4xX14HfDCN7u5PQ6qBQuXcp 4SrQ== X-Gm-Message-State: AOJu0Yz8zw4roOtdzXVTM2FTJNAND8+AJdWr2tbMW8OdivscNQFEJ4YA SC6/ItEh0vN5x1pLP0vyhDn3XZaWT51cFXi2ohq1uvaaaGyHNQACvmIemLhd15aYzamX0G4A6yg Tpqu/+fnNciy9KEAlpUy9rNHaeIgrBtVN6W5PYobwmLrFR+wJNP1S8lSQ9cuLtmm8WA== X-Gm-Gg: AfdE7clvjWbE9thDzM3cNne0WcErIEyWbUbzcUplRf0+SLaoG52KqXTczXL19Chjdvm KFJfn930Xar9AlvtjU+9B9bLvnbjEedmwOoVT/NuNLbGBSt3EelhHUMzQ+kY07s5/goqg0wvfdt tOXcix3VhmaWEzfmPLjDkEgH6Rba963SEGJtI1u4w3bBI0TACmAr+F9Q9jQBU891vb9FWdkuXSl DsfKXcYULspZSZo7c4pHH4sxEsX1ikxUZkrrOKgeN/vLdZUwLEPY2n43Wm8/175JSKw53CgoE1J GBkG01gO5A/bZ1K8NyC8yjosP+lFhC1106E5Nxe/3oJeQMuH3GaRq7CcXyVPxqJo/5CDHpbIyjJ lya7v/nfonqIREmFo94dy2bckX7zTGYb2AQoIhCgDloD15BEIJ/LDod01IJg= X-Received: by 2002:a05:7301:1e84:b0:2ea:b85c:153d with SMTP id 5a478bee46e88-30c58ca4a5amr301169eec.27.1782167372027; Mon, 22 Jun 2026 15:29:32 -0700 (PDT) X-Received: by 2002:a05:7301:1e84:b0:2ea:b85c:153d with SMTP id 5a478bee46e88-30c58ca4a5amr301155eec.27.1782167371526; Mon, 22 Jun 2026 15:29:31 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Pierrick Bouvier Subject: [PULL v2 13/75] target/hexagon: Add TCG values for sreg, greg Date: Mon, 22 Jun 2026 15:28:02 -0700 Message-Id: <20260622222904.607771-14-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260622222904.607771-1-brian.cain@oss.qualcomm.com> References: <20260622222904.607771-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-Spam-Info: AW1haW4tMjYwNjIyMDIxNiBTYWx0ZWRfX8Vq3ihD9Cu7k vz2sWydBcV3Vj7c975wezNpqAKWcClv26RntKRW9gadfuX9soo9n0lsopsPOmfODIqswxF7/Fhk 65HHapbqVTeWNX35IMvv8tFQQ5WL2n4= X-Authority-Analysis: v=2.4 cv=R8Uz39RX c=1 sm=1 tr=0 ts=6a39b74d cx=c_pps a=cFYjgdjTJScbgFmBucgdfQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=3WHJM1ZQz_JShphwDgj5:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=KKAkSRfTAAAA:8 a=EUspDBNiAAAA:8 a=8kp5zrIFwsha1M26KQwA:9 a=QEXdDO2ut3YA:10 a=scEy_gLbYbu1JhEsrz4S:22 a=TjNXssC_j7lpFel5tvFf:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-ORIG-GUID: OJvdoNyOBL_mHt4kGyfKB3vkCxEIMHIP X-Proofpoint-GUID: OJvdoNyOBL_mHt4kGyfKB3vkCxEIMHIP X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjIyMDIxNiBTYWx0ZWRfXwqv39iQcF6KE qHa0h84PUByBJiVEFbaF056C8rB+mweriNfAxGKw/EtSJjj4cVugN8GrH3uy3GTVSMer6IHGbPi C3tPx1VdDlMkTPmvIhCNq0aZ6I2qFcNlh+8dwn+J7ddNn+RUTgWF8tW325k1Ype5SycqGOCEblH ErLTnbD/okZ/xnrr+H391ZH0K1nRg6cIKI2x06o5y5BeH2B0J5tszxwY7tK9iWIbKOqWHZawZOC S3IQ2cG264NvR/uiTjB6VK+UjPedNvbIHHGfj0xxryBn87tkT+Ji6zGMfHnyij+gSQKWLvViwf4 uIccsho/9JiMC2ezfLqr2P9Uq1jEx/5NMbitTys4VnZ8gFJE5ktxTKWdwUlyPhBA6LFise/eBxV VLJxVX5CiO02BAe50H5pBFKMGK0k1/oFsUpYjAzIRsyZHrTkW3Ej3xx1MYFT7zLptWddj2eD6N2 FEO6MjFK1bijqLJTMTg== 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-22_04,2026-06-22_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 clxscore=1015 impostorscore=0 priorityscore=1501 lowpriorityscore=0 bulkscore=0 suspectscore=0 adultscore=0 malwarescore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606220216 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782167513221158500 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 Tue Jun 23 20:53:54 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=1782167592; cv=none; d=zohomail.com; s=zohoarc; b=btMB0GrsdcTtMZfGjylMnE3L0n6GMOsGzCzpc6Njd298wIw7cBquSndPKE58Cxhw364I+q34KOZwk2vhW1DcQJTaEc+pb53xGlQPmSiiqHUJ3cDjUe03PsfUhURTiG5Qg1bacsXIZFySyK5DFirpd5yXS50wM6Cdmf15/q1ZpKA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782167592; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=JOCsSPk8mWuPbOb474kFjAXABy94LhCxkL9NtiMreu1CJ4UXOANB18ryGDYNkKn4dgJlsd9PzKAyn0OgD43ibgxRrPoUg8SIUdBjl2hBqwo42TfpeoKrPDhrm6JR8K9eia6bdPF5Qr2TPi/F+kyuiFwkdenHqItXIcvvrZBvjL4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782167592042191.21179865639954; Mon, 22 Jun 2026 15:33:12 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wbn9L-0003PM-6P; Mon, 22 Jun 2026 18:29:51 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wbn9G-0003OP-IG for qemu-devel@nongnu.org; Mon, 22 Jun 2026 18:29: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 1wbn9F-0006Th-5x for qemu-devel@nongnu.org; Mon, 22 Jun 2026 18:29:46 -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 65MJaEId2101429 for ; Mon, 22 Jun 2026 22:29:34 GMT Received: from mail-dy1-f200.google.com (mail-dy1-f200.google.com [74.125.82.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ey3ebaeuf-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 22 Jun 2026 22:29:34 +0000 (GMT) Received: by mail-dy1-f200.google.com with SMTP id 5a478bee46e88-30ba395b047so3609240eec.0 for ; Mon, 22 Jun 2026 15:29:33 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c1bd8d78esm10945995eec.18.2026.06.22.15.29.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 22 Jun 2026 15:29: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= 3FB08ozXJ75KuaQ0Uu8ai6pxj0RZ56tBJAjvVwXnq20=; b=bssvMdZ8S+D6i8RW JfmpLX2NBQLWcg2pmxHWGcVUsSdXHndso3n45t0E03+BFOO8N3QsfIZsYk7SFcHP 89zmt/YLxxt/JO5vITmFwdVKVBFsjCDGmRx33BajX8AagUUUGlJuMn1kD1qeL752 qUKQt+5RAHl2elzhpJRih755HOPUJg9vV90l6fPaiaZCSxJpuDg9wrauKnG96iqQ 8DLtvAkWeY/E+PCvHUHjEyu/h4whCI55f6sSJ7R0rj8dEfN3OEAxVsHMGNrZetwu 5ORDcE6hj3LQIPUNdUt+WKUAmKCxghl6zpTBFOEwnXW7nuWl2YyWDrH/hbGIWpM3 BmHLSQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782167373; x=1782772173; 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=RxBAj/nu+TjKJ7hlmRmIHu5t17nHWBMZpDHkJu9yxrCh5JvH0ptYBmIoEFt+W4PH+5 xW9Fe9apQBgZFkW2hjCjLrpB002ag0uAiEk7CvqeHR3Ol3waJADwlDuTT/1mhMkLtMPH cUs5INOPQt1ISxElXwtLFn5jAOi7evwWM1CepZz9faRqr1y+uJf9Drg+189zQpZjjY+f DSJXm7omCRk4IU/mFMJk/u7o5bfYTp+mWgPFykESjNfkZ9CNlaGIWZhyexQVTS7nOfWy yIW8h5vyL+egh6BRvgIWS8k261zkGvEDvKgew9ydlnZngs+M0Gariy0Pgzt2UsSSbTNM beOg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782167373; x=1782772173; 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=ikumGs0PaR60Vo42YfYDFXd07fe13DxoDntj9sSyv+UOhGul9JzZ/TQ3xHIcpKaKa8 co0L00LqHT/jgq0wRCsX4bksz5LvXEukqTV7z/7PfOnLMRdHzkyXkhsRUh7Z1v9BK58c SSKJK1tY5aRtTusqr6Q4DB55/g+ErJQRbRjk8uTOLT7GQDYOLrXMdBotZchAcuQ/8ii2 63EKkZhdXGngGxAsELJjKf42FEODkwSLQPa2pWXuqTKrOoIGSnXxx/Hbmu5DYd98x07P o42Ht9GaAUkZijplmkjAP8Jjm3ffhTN2kQOJ7RjynNc08udmUgLKVRsCuANSmwtwlQeQ 1Rlw== X-Gm-Message-State: AOJu0Yxm7cDc9CMlV2uV35JYXv1rVVV8uRJvRPbdqdJMM/e8AcC6k8HZ pk3OhDuczGDVSIsanCd0jc/W2Oih2SepklN1qCYCK0v9O9T7MgTC9txQ7wDONIcsBwIFUXyfbTK SpF9IiFGhPI5uEVnzCCIkJNoex6RorAeiqmpPysGUDi1zXGx/w0nYHc3sJtB59SZz2Q== X-Gm-Gg: AfdE7cl/iGmN2vzy6hbvMsXrN/DXPQ3C3nM2jIqPDmNsxP+8jzC2NOGe928BfHxORWu fPDBGq7qERx2Yf7CzAG9nMB5NQHVFuEizx3po6FXYcCZtcKr3DZevCY97kg2GUO7zRoXoCSOtRU IeltSv9EbMHGauv4qB7OdhYLw+mymodxxrWTCp94QiZxVW5u/9IDcdtCI2dPh8YZY2jRtPaqHmL 5pfGJ5rQK1Is+Ss7G2VmoeCBAPRHtPjtGQyWOzqSX5Tc8lQ233rGDgzaojq2ajErbXBZxT7dKb8 v7CNMbLFH15XVS2hsDtWC2CEsBd5xOirIXZyIlTOGEViFBCh7C1YauulY6ztoKKS8yBhyxKhyTL f21L3g4++DfSoa/2XdMwSx8aDm9noTnLZ3wfrQFT9rY72vlB9yfaJOHjqR+U= X-Received: by 2002:a05:7300:a94a:b0:30c:38ed:46b5 with SMTP id 5a478bee46e88-30c38ed51cbmr5172464eec.12.1782167373101; Mon, 22 Jun 2026 15:29:33 -0700 (PDT) X-Received: by 2002:a05:7300:a94a:b0:30c:38ed:46b5 with SMTP id 5a478bee46e88-30c38ed51cbmr5172447eec.12.1782167372611; Mon, 22 Jun 2026 15:29:32 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v2 14/75] target/hexagon: Add guest/sys reg writes to DisasContext Date: Mon, 22 Jun 2026 15:28:03 -0700 Message-Id: <20260622222904.607771-15-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260622222904.607771-1-brian.cain@oss.qualcomm.com> References: <20260622222904.607771-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: AW1haW4tMjYwNjIyMDIxNiBTYWx0ZWRfXwH0LYlPPe98C nizqiRNf8jPIRneCeACOYcMKQdcQhYyPGuvb5F5LPQ54NuVyQxUW3pn6gNnU8Fd90CfDRUnN5Pu VOqORAE3Xz9/j+NjSwTCI7xmhZ9pVTE= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjIyMDIxNiBTYWx0ZWRfXz9iiZn9WybOG aYNuHnnarcHK1RwWWLlbpfOWlzBAAjoEplgOlGMHeC1KXFMNx/zk8LFRmFEpoF2szHNtmyiWpXr d5UA3TUEvIJIp/5sqTjBqEuxozknSglZTy1SRR4vnHU0u9vHVDKU2nF/obVdDyScy2N2+g3QV93 9KHYJQfQIMGTmzQryZXadoUgpnQQdA+d25H7uEOmBu3ELjxy/btoPGJbAr5rstfo1WfInX56jsf bAfRA7CRsWVwYaqE2Oh34hYvdiBTOhnkgbN8LWKotp+ViJH1WlBfB3Xmb4hO3aT4OTm/eJY3ttW IGCUDMBm/+oX3/Y7drpICQ3wKCcEsyEnlPfVNCGfcW/NJq6q+IzYX7JWdEKuAo4yAQR05Cpv3nQ luZlHJyqCtn5xoQdZd37OVRw62nVC02oYaz2lECb89BaDTdCHQGrKJiVX1swwnyIQMZhVf1Xh6l 1pZisby/6jDTX+4zgOg== X-Authority-Analysis: v=2.4 cv=ILIyzAvG c=1 sm=1 tr=0 ts=6a39b74e 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=rJkE3RaqiGZ5pbrm-msn:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=tdgd3nfel_K54e3JQaMA:9 a=QEXdDO2ut3YA:10 a=6Ab_bkdmUrQuMsNx7PHu:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-GUID: gxqkaKxCDwGXCu4JEcL7TW6XOFsi1MPQ X-Proofpoint-ORIG-GUID: gxqkaKxCDwGXCu4JEcL7TW6XOFsi1MPQ 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-22_04,2026-06-22_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 priorityscore=1501 bulkscore=0 clxscore=1015 adultscore=0 suspectscore=0 malwarescore=0 spamscore=0 impostorscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606220216 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782167593584158500 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 Tue Jun 23 20:53:54 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=1782167616; cv=none; d=zohomail.com; s=zohoarc; b=lQ3TwG946y1e+hTjzRQnp1/aBltdmCd9o+wpPz/IQgSJgRc+Kahv42ayB/ivkdjWwJbao/6qn6yt+pYGeDpi0OtD9DVCQE9mH7fJKFYc5lYXCyIJsE1O2eBW/4T7qbNptNYOVuxB/AAEoQa/xXPhARjncoptleelOHbezl+Qrag= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782167616; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=PLZrTtTVY6grbAMUtOcjJFQktrFceaC7shR+Ix/zu++OK21/UC8o4Qt2KAWlOjsLJaz5BxTVxnB8G5QPx5KIyIVWNFPjEGhjo3tnDXufqFVB/+g9ud2igdnExWop0SU7WJJPCbQCaxY2RthDpiku6kHRUspnosqX0hZJRd4LZFU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782167616524455.6888727589991; Mon, 22 Jun 2026 15:33:36 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wbn9P-0003T0-M5; Mon, 22 Jun 2026 18:29:55 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wbn9J-0003Oy-Mb for qemu-devel@nongnu.org; Mon, 22 Jun 2026 18:29: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 1wbn9G-0006Uu-Eq for qemu-devel@nongnu.org; Mon, 22 Jun 2026 18:29: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 65MJapiU2177089 for ; Mon, 22 Jun 2026 22:29:35 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 4ey37hahck-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 22 Jun 2026 22:29:35 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-30c13bb8ca9so5173825eec.0 for ; Mon, 22 Jun 2026 15:29:35 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c1bd8d78esm10945995eec.18.2026.06.22.15.29.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 22 Jun 2026 15:29: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= hhoakWVabZ7IJR8eGDuXPSShTsj/f5bhJiXKe7ZTYNg=; b=cbaO0gnP9Mrww0/p a1OMe3I+zP6kJYpBJA+1WLbiXGYathuGgjWsVT3Gx4GCCdicYfU+BPgibkCjPI+4 dZ/8drcY6iGUw2QJYtKEYEQUUr8Gqk56tZPsIyg+2TKX4AmgkTPLyerlDocNW+5y gpVqD8ZfUD6tSL5pSO/zet6ltofEelt2x4xRJKNCh1xfTO+2f2SACOR6cOzfI24z 4VLCXc/ZDK3HM1P+NIUEPHi1dMFXT5sigLH4FqRIs878SjRYZXbFC83ZBTWLPBiA kbqm7K8bCeCZ+RMYUR/p8whkPF2kFBRdiPJ46MoApZPOaDreLudNhj3uyGQzTQ+v CUgXMw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782167374; x=1782772174; 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=Zxfu/plVgfn5s3ePuUtycz2X2Nsm5i4HtEkv1fWLw2nvJuVKeubSAAQ88jCeBl4ARG jeVjd0YfarCS7DDzBN5tT/sYScFM1mayLuYUS2LkWhDbkHL8xMZPWgnHqYn6uRVgDAlP 36NRF/AP88+vIm1/X28HHacVtAK84BGCvXSj79sT9ukGdx0E+585wyBQs+YNKW99U55C exN0D0ZZKvWvWAfHuCviCVAJ6RIwmG+83coao29a8tCNSO85GhaOd4ABRkJkU9MDo2mK 7NaVGOv3F6mboPsmNqh15oRBClBgMZFQaR7Pl5eWXLhVdAzfvHj/svcGN5nUkCVNdCIT mPxw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782167374; x=1782772174; 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=pHN2s/I/ejS9Y5LN11l/hgUnkYABJetQeAHefoXfsVMDtyRrjJYyTfht2x0zLMxYww MXrQgHTsscgJVANdiaZjRZULnf3lU/d0CiLf38mz6Aw0Aa//WN61MG2KL6yXAZUpY3qT BBCpQTsUJZTo3fah8HePTc89OKDjUuyc5mZqOMHlnX+bfSsOUZ5omapmc4s509ggeq13 +544x4MHpb7miLysD1R0gSHEJeCao9ng8lhb6L8sOe++dPecaoJRWT5g/13oscevfYZs BUCbDBD8T5Nm8xysdHRCFaYWGwocAKIaRoRhoocTHT1JD2xkzSrDvIUQwmFSXhPGg3lo 8EAQ== X-Gm-Message-State: AOJu0Yyuxw1Vm9oiT/IUTowy3QDZeiF0H/vrIbaPzYP7h6ZfDQk4F4xZ y2PDYIvwiTdF1RsWt1iTUo3SYAgh/NEaLLCBDw0EPRz6u2LLzjI0kOlb5UZnyJPqZa7JrAbCBbM T2lGyGZa56V0LSO5cYurlbu3ufJ6LmiFMS2w1kCWQOCfNyZZQsWVVfc7h9e9QXUJ5xg== X-Gm-Gg: AfdE7ckyLxEKr8hSfqUdX4CbhaBYd8zgAFIF78u1yMmTwnAXDvOkjM5GLL502aWUACc dUxuCGPxH6dVHZvfdU0W4AWONkgO8/UchmfopxzjWi8DPbsPmlD7k/kFXRFwQLnsB2KeoNQ6LY9 5VFwAMRl8pm2IKVEgJNiqhjb6Qv5uvAEnquUubdV/mJe1JRb7GcAiHHzo7egPwkMc3cLkdqPrg8 Z35mupgE2UiMis7VfLQyo72tGnWYMY19hRmJp/CMy7MpZif+5DU/zQDKUw7AqEu1Ku4gnRy2MMS 92vHdtg5kUv398iM5w6pTkdGj24O7l4YAiuf+qF/8VqiOqHRpORHR8WriPdw9BYUtkAFSsl0XHx 8mDVc4chRo6hfH/aB4a0WI9iEU8334gD5a+Br0JgtQ5ec1eAHq73Y8awQkEY= X-Received: by 2002:a05:7301:eb0:b0:304:d92a:e60a with SMTP id 5a478bee46e88-30c07193652mr11111021eec.31.1782167374189; Mon, 22 Jun 2026 15:29:34 -0700 (PDT) X-Received: by 2002:a05:7301:eb0:b0:304:d92a:e60a with SMTP id 5a478bee46e88-30c07193652mr11110990eec.31.1782167373493; Mon, 22 Jun 2026 15:29:33 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Pierrick Bouvier Subject: [PULL v2 15/75] target/hexagon: Add imported macro, attr defs for sysemu Date: Mon, 22 Jun 2026 15:28:04 -0700 Message-Id: <20260622222904.607771-16-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260622222904.607771-1-brian.cain@oss.qualcomm.com> References: <20260622222904.607771-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: 6o0NDJOl4TS1J4E7vc0vdYEWEPE-3YFu X-Authority-Analysis: v=2.4 cv=ecANubEH c=1 sm=1 tr=0 ts=6a39b74f cx=c_pps a=Uww141gWH0fZj/3QKPojxA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=gowsoOTTUOVcmtlkKump:22 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=9WelToRRDTwRCstGtewA:9 a=QEXdDO2ut3YA:10 a=PxkB5W3o20Ba91AHUih5:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwNjIyMDIxNiBTYWx0ZWRfXx9SYdUYXRm2y 5QGHHEvpiJ47+B/D1RJG0lKghZAlAjuKF1nfCPlSAICmjjuEAvQFWL5GQIrzQ65StTh++96RHns ChncaVFmp899RaI++OF2JqIJFuRTyK4= X-Proofpoint-GUID: 6o0NDJOl4TS1J4E7vc0vdYEWEPE-3YFu X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjIyMDIxNiBTYWx0ZWRfXzC7KVHdUuRTl OYBY/sBN5HWHaPkzv+ubCBCXmF/7IFoNmPQyWx+izFei7lbl9dQiM9S5n7aMKHk0iiAjQzMMYc6 o3riLDftfTnwVqszds/wptnzrkvLpzsdyre60Weg4YR6oC7Okk7EbWeU4Mb7tpcU3rtOTtXcolL aqSucMH2YqYYOenKXhwbDH86yhph742Ak8YBxHWTnjydpDcQ2hU8i5T5MgUsUmkG8/ERnHIhZAP IwwYHtQCqx6Cib1bD2UgFzWu4e/AAjvai1iH7i8i7tY6yvk4Viks66tkekMJIihEez6B7CSLjgT ENHUS/4avUUvOkDXD6iBDjAp3pJ1FQLc5lB3cHOCJH41WWdvO9HTfV1J2LUi3WKXA9mLd/m7quD MFuomjP9AxK8jkQXDu3kd3r/GY9u+6bzpOJr6y6f4xMcu9go2jHw/fqLaN4RJ6gTdDyeUuCY0N3 UJWqjgVb3ftc7NfYIfQ== 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-22_04,2026-06-22_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 lowpriorityscore=0 priorityscore=1501 clxscore=1015 spamscore=0 suspectscore=0 impostorscore=0 adultscore=0 malwarescore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606220216 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782167617913158500 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 Tue Jun 23 20:53:54 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=1782167616; cv=none; d=zohomail.com; s=zohoarc; b=NEhA/1AQWUMmmC4mIxBgSABl8/jT0XjsczTkUkobwlad0VbMVMPuJDwvV0LQ9qSurgx9wsNEMdvsB5IsExHgcdkkn12pVK/T040mJaNV9N15pO1U4JMHwiLzAQDO2Bv4iy128rpaS4GpzT31bDLDsFdZgxT1kt33v9rbVLhK960= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782167616; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=X3nny6rkEYg5Tktn+k66XhznKgkZUQHdaI6TBCzwZcwlB4kIVVhJqn16H8JINrCWobdX2X+/ykTKCpOjo79t8oRYcroHs3N8yfoAr9mlJcxDOVVouGTdtmFem5ASSWq+2V/mMu8obRZvH+UaEUKm9yqZwfHzJFOlb3rYgWAcaWo= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782167616494447.4526463831287; Mon, 22 Jun 2026 15:33:36 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wbn9T-0003VH-VR; Mon, 22 Jun 2026 18:30:00 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wbn9K-0003PE-5N for qemu-devel@nongnu.org; Mon, 22 Jun 2026 18:29: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 1wbn9H-0006VD-Cz for qemu-devel@nongnu.org; Mon, 22 Jun 2026 18:29: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 65MJavOF2205274 for ; Mon, 22 Jun 2026 22:29:36 GMT Received: from mail-dy1-f197.google.com (mail-dy1-f197.google.com [74.125.82.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ey6tmsp2w-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 22 Jun 2026 22:29:36 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-30c42d96713so952062eec.1 for ; Mon, 22 Jun 2026 15:29:36 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c1bd8d78esm10945995eec.18.2026.06.22.15.29.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 22 Jun 2026 15:29:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= QOPCxfzT1avmaDDfh5FOnklE9vds5SWBGBuv99jugao=; b=CCuLNI2ZtY859EaE Ig8C2AP1iwzhIwvt85HWbvfhe5FbBMG/XuPPXkWkiDn3sXoTpvauTrRhBFQP6PDk zpthaKzhbtTs+3WbU3ipQrfxRpZMR6vTa9vvFqdQ4apz3dGv684EPUl76DduXxMt FSDBR0MTfvcfNgHWfYDLYu5irLZHrmJfP9xLZAcohVtUztysd+t2Af+CK7NkHkfK JaMUQqGu+ccMAQlHtdbOAQAqrTDkIGqZ27FoA/iImd6M8ye9JgfoRhGmUfvWovoV Fp+KtJl5/SwZvZDjmSX/pEWZxquOYzKcGFUkcYe26KZzgcZHjMxYh63pnjFJ1FCe PvtzzA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782167375; x=1782772175; 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=IJWNDYA4C9FvyRniW6p2xTEtQZlp7pnU/iIynb2vu09pgM/fsRbSTWjp6UJAqkC8A4 PUQ5ZPGm5QfWHXe6hc2NRqTxBPQDYukPqeUonyrhYAQ2ojkw8U6bgTdloWn3IBWXMguC FLWvC8L1ouaxwdnMy2CLIzd+pSersRZSM9Gkzyeb33XU0mN/lRWWajFbYFc58wm+GC0Y Nco9FmEHO82lLQeW3ZUNJJTiQuBakLyRhb+Lyqjbw07vL8Md1l9FwUy8ehwDVFZuF+5O pLa096veNXJMsJj9+k3YD83oscl9MCBmBoScjK9c/VKfhsvRUXt0qg3/axTcjh90mgt3 KT/g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782167375; x=1782772175; 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=l2xD2DRX96SO759gptCKg9OczfhdXGI4LIKgtfiWmlEbBxiNP2U242fJNU3xrGa4Tx BgToseRZTZqDR1GSabXTt8XPq59o1bNrJmvoi2rYG291OdXs4mBWOAqrPwKZRuF17AQf G2kp7rKb2nCmj5cIVtw28+ACiFG3SN8k8rwtmjeHVT3v9XzF0W2OYdv+tsbKBQD2fMUU FzpFIAaioTI9pddSdXgn7klcMji5AqZLyGHuLqcRmwZrEsF1n9wvaH6hBgEjBYdg7RNK XbiEBac9P7hsA6UznlcCT3h5Oeljc0az1WkWMEU8h09s2ZUkrpILMoDN2aD4R6TWe0XM pS+w== X-Gm-Message-State: AOJu0Ywv1t9txCoBxf1S2QSBgrA4+wK7gimVcQLLUjy5u03AL0D7c8fh 3s9bT8rDia2GoP9QxaejgmqYAez311VOVr6+Ce/rLpblrlH22P3CBZAp2TiqtdNQj9LE0Mylesy o3WtY8FObWjYlz2BphmqlxWAV3nWQO1vJ6N0/gjth8cPmJZ5MTiJbLY6LNI+lS8JPow== X-Gm-Gg: AfdE7clX4/SIo3v8SNMZbYjf+Li8zN1XFoeJbFJhMgym2iFYN1OtNcRIg1wNSAl85od sbcijz9hkwrOTwp76prINkPo+9Vx44Nv6+qoLnYl0Ei9YKGU2e+lYWTN68jraG0Ka0PNZpMowcZ 3SUbvt0SbRipOJARpvfsLTB5pA32UojrLqwPohIVsvDcMH2k335+cwMlAvPLDQKu40H/bSwuVl+ 1BlDYaGf7N2CJWb/YRIMNWrHhLf8ioNZ2gDQP2Ls1Uu072154DCg7qegDZ17au8Wu+uRlYyzn3a DxTPxj/rYVoDgIA3Ua/xisaIlaWtcke7KbSNHyjpLyNhJEvCYIAhIBeW7G2ncwyo2Dyxv5LYCDj A1A6gLtMpKPpLwkh1FK/A0UegNCLh0ulfCnJhQ2UcEw0uLUV0oYs7/AdAYBk= X-Received: by 2002:a05:7300:dc10:b0:30b:f6cd:fdcc with SMTP id 5a478bee46e88-30c06e14e26mr10263324eec.19.1782167375137; Mon, 22 Jun 2026 15:29:35 -0700 (PDT) X-Received: by 2002:a05:7300:dc10:b0:30b:f6cd:fdcc with SMTP id 5a478bee46e88-30c06e14e26mr10263295eec.19.1782167374496; Mon, 22 Jun 2026 15:29:34 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v2 16/75] target/hexagon: Add new macro definitions for sysemu Date: Mon, 22 Jun 2026 15:28:05 -0700 Message-Id: <20260622222904.607771-17-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260622222904.607771-1-brian.cain@oss.qualcomm.com> References: <20260622222904.607771-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: AW1haW4tMjYwNjIyMDIxNiBTYWx0ZWRfXw4krAkrkfCjI N6sTKtrXoVmNbYORvVN+gUMLrTmeTY3jyTnrtlVTSXA+Y7fWOmtlmzx88Id4sMnoqIbHaB7iLwT cqZE6+wVCvF49lWqeJsHtmll9KKbBbE= X-Proofpoint-GUID: FHOF0T1LQd2CmuSZg2GXxoa7SAWmDaeu X-Proofpoint-ORIG-GUID: FHOF0T1LQd2CmuSZg2GXxoa7SAWmDaeu X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjIyMDIxNiBTYWx0ZWRfX9D7II+nWX4xY /+hcXge7vKuZBAuRgNfe9fWFpkTHROHDFPffCyj3swWSGYa380k+KKFui2yDHJrDoa/TLMf+iKl OsbNvdsjJ1JLa6rqB45oSVKJCJaoBwQlXCALe5DI/rTSrfV/9LLbXTxRGvTiODDojtAnKhU8EKT FBubYcSZ879GI3+kxrHFo7TiUaEN6xqk9+cS1GNIbNPEylmGw/KtHwS552aXnX6YO+o77sLQOq8 iZKa8cM27/Rw7iMUlCRE385PU2fAfLe818iQ0IMWISj5SZOSr5NzBUmI+MXg6Rudguxn4VtUjkE zrcMx1hGbes7Je9HQEq+FaJ3cJSHUJpRgHPi8bZqws5rBBh0bXqoDFhbF0Ayh2Go3JcU/xRdMA2 5UAJeRDqimxxcCVMlEPLzJys+tq06dfkDBY4hllHhWpYvomu92rMsrnt4l9BerOlmHPQNG1bvbQ vUMhlarLXZy9BtvEmKw== X-Authority-Analysis: v=2.4 cv=H4HrBeYi c=1 sm=1 tr=0 ts=6a39b750 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=_glEPmIy2e8OvE2BGh3C:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=VoFV4bgUeqxKQXHmsMYA:9 a=QEXdDO2ut3YA:10 a=PxkB5W3o20Ba91AHUih5:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-22_04,2026-06-22_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 suspectscore=0 clxscore=1015 phishscore=0 bulkscore=0 priorityscore=1501 impostorscore=0 adultscore=0 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-2606220216 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782167617886158500 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 Tue Jun 23 20:53:54 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=1782167612; cv=none; d=zohomail.com; s=zohoarc; b=FLoQ8O4SeFAjC01UEctri87F3JI24hDrH+BSDD718Yb8f+BLd00F/wKWokCBnkIZ3DCN2Y4qdh3jDBgrPNIBfPdW9IxnwH7XPToLaxGbtmHix5JjkFua4MwR3BgsSB0rnTVi4qvwd7tfsNPzGgHAyAXzuUnzG23tj2d/0NQwY5o= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782167612; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=HLK54IUFtHIgTOptyEJoptxlNjEJMn3nll8Me7e4nn1wNRTrIx48hz0UcwpTL5tpCOxs/jKZ3rJZJZVW2zQX8uXym3XjHur2y06SCFke/i8l5TlzT6Uai9DiSadFzGzWczuv5HmHNkg1TMy2BZWK7xul9XmcoBJj4ENiXcTDjZs= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782167612238884.7770270926326; Mon, 22 Jun 2026 15:33:32 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wbn9T-0003Ua-PQ; Mon, 22 Jun 2026 18:29: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 1wbn9L-0003Ph-IH for qemu-devel@nongnu.org; Mon, 22 Jun 2026 18:29: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 1wbn9I-0006VX-8i for qemu-devel@nongnu.org; Mon, 22 Jun 2026 18:29:51 -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 65MJbF9m2122438 for ; Mon, 22 Jun 2026 22:29:37 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 4ey5n41xwq-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 22 Jun 2026 22:29:37 +0000 (GMT) Received: by mail-dy1-f198.google.com with SMTP id 5a478bee46e88-30c0a27ad86so11726013eec.0 for ; Mon, 22 Jun 2026 15:29:37 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c1bd8d78esm10945995eec.18.2026.06.22.15.29.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 22 Jun 2026 15:29: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= 93NO5nTkqSLKhLHTshorCnrOXtq4w0A1wRQSw+4IeFU=; b=pd3/4i4VXXfwIi6h XLMlEX8a1MGpeyTZ4H9fRNRatiafsCp4AI9PxCrHt3bQVv+JKkQ8LY5vNVlPkW3+ dusp7WXsxj3fB1rA2njp6imLH3qQ8CyLUgI0v+n+UOSG9/DESRlYT7qLG3qlG/r+ CJeu+QbT/SzrQTRTjJeqpLxlXj0kEPJhxREUcQbi8v54xnWKKnQhJD3TCzgu1Bn8 C5gsG/FLNRCtC+B2I9zZhWy3m0e7sTQ7M3dwo3U5BcOb2ArQPeMtpbMcvMpL/hWU mjN3mwnU9LjuvymUSXwl4y7GIBMmLqOYOXqhSX69gcacD0FkJkmygwArC/JgVeLu OU5Xcg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782167376; x=1782772176; 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=BpNcURnv+LD6qASZxjLbGIux9EgQTgDDNRKF4e8ai2E2LfgP8sBFRYKsxNkUPiGUOX T+liV7JqyxLFmXy8tE1Lo8EkM9Zcu47WiUrlJzM9BhhcxFxNzT4gdaxq3ydSr++Nht68 UbDp9JIQ+CNyRVg94EBSpJJFxT2TVRfHgrDNhzOqVWB7pe7GN9CScof7kxtbexcmt58H /cOeVA1tyu4UgjFZWwGeoOfJapXM7fYXf+8U0YqehuASrJZKSgclyzRRpa4S8vqgai+p bK930P8unABoFvSgwPvaJajWDlQSWAWDgG6w474ay4qps/w2gsg4rjlta16jYQsXQ1CL w9eA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782167376; x=1782772176; 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=CzeoxWoMnCstit4LWdMzZNybOrdfo4ayKu8PH6z0MvaXQrO5z7o7lYyGaCo2IGib4r LsA8BBITzi5U9aXF+UFuNcQO0lTNGZUwKIyGMhqqEaGwRYM8GzkRJE9a+OylbBaZACoB BccSIjCvFpFSePf9hNzrBpdV6WJgxwZxETqt/8xqefTR8hgxoY0SN/+AiRWLqSA+53Mt LULmXJkPiGBZebP75tBXXfmEgOLDFlvN8pkw49V+LyAYISiC2WepCLQo0VBwPOpVB1Fx F+nUHwpS66no/mP2vCbz1BYL6geCXXUPpuoRjfKiLAvcAp7v1bewVmSo630MJ82LL1wv xZ4g== X-Gm-Message-State: AOJu0YyHVONqixhqWRfP8WTQ5Rqb6F8eHEBenuSVUbeNqhxjSHpOldL5 xV4HFLx09FVTmIrytuYO/Kbuxhux3hNzJInazBAV4cjgCnsbpBSZKgMGD4ekpjORN1af/btt3lw GEoubrlJbwbuDTym8PTxVg4CkLxeLLUh4xAa6ESkE6pXWm7b1U1K3Dfein4Yka3cC+A== X-Gm-Gg: AfdE7ckpRRGnkjazP/Pygt7cBfbqEPVz5tcAPmO2GFJkT173BKmP3vXNDWskXuH9k4A cgj60N7saveDjMBvriWqHU5k/oXJsQlm48ufornOL6+2dIPi5BfNCHLr9ur789ylZjlnui6PJxa go48jSlPRCa5wGE23TlgqcV5jU3L3V/BRns/lTkXWbASf8T/U+CXaY3wTspsm/orGrB+X9L2L43 sYx+vEbFVPlyTLAbh7Av/GicB/ScGCSd+IowZa4TryBZ52dfjJMIHWdzgiiNHD45FRCuwS/PMtb Keq5WLKh+x6U8EEuPdM4nykfOBIYU2cm2NfEyss8QWA+XyhxK2hoso0NkXVJYml0BR0qcZtW2Kk 4h1a3YlYZGIZIAeIoaoX/eVXZoT0qTbDF8lENoXEhoWTuo6s++HHVpVukvcg= X-Received: by 2002:a05:7300:50f:b0:30c:554f:cc2 with SMTP id 5a478bee46e88-30c554f1148mr1388739eec.12.1782167376306; Mon, 22 Jun 2026 15:29:36 -0700 (PDT) X-Received: by 2002:a05:7300:50f:b0:30c:554f:cc2 with SMTP id 5a478bee46e88-30c554f1148mr1388713eec.12.1782167375835; Mon, 22 Jun 2026 15:29:35 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v2 17/75] target/hexagon: Add handlers for guest/sysreg r/w Date: Mon, 22 Jun 2026 15:28:06 -0700 Message-Id: <20260622222904.607771-18-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260622222904.607771-1-brian.cain@oss.qualcomm.com> References: <20260622222904.607771-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: AW1haW4tMjYwNjIyMDIxNiBTYWx0ZWRfX/HmijeAyv5Tk lYZrKsGYw07QpvvWoA5xC2hJntTDC79emlvvENxOBHJXKGYwNIWCqOqzhTHVgxNmDuF1SsNxUy5 4BW0g7cow9uRoQYFj1DCpZn8Kl+6e80= X-Authority-Analysis: v=2.4 cv=R8Uz39RX c=1 sm=1 tr=0 ts=6a39b751 cx=c_pps a=wEP8DlPgTf/vqF+yE6f9lg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=3WHJM1ZQz_JShphwDgj5:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=YS0KV4ZxTOLzYV__0jkA:9 a=QEXdDO2ut3YA:10 a=bBxd6f-gb0O0v-kibOvt:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: ymA9LTt47Tvp6WDYttv7fow60MtjuwxO X-Proofpoint-GUID: ymA9LTt47Tvp6WDYttv7fow60MtjuwxO X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjIyMDIxNiBTYWx0ZWRfX1VazKn4ToaSE 8o6p/AUV8fpq0tCpGRXyPPLWt7qfSmoR9AYHBalia9U3JyHzTVCt2dutFHb0/+Tp8iXyMh+Fi3H 3Evy3TYX75la5fsTQktYy8QDQ/LvKwI1zC9NAjVcOIEEIrwNC316x6TWBS3ffGTwGi8Z95aXoBJ t2O8sbQFyyh+GCpv3enKKIyaToJ9xQsZRbSNnluybOMhgMJGCa93gMMxcPK+OxZDlwgx2od2NZE OHZAZRj05jmuMnYs9/ntRRlnempWjS2SaFqNmFEuT+0VRsGiouaYpB6oW8DqujXb4NGiplwFXMA u2CVxBBf3iv9rj9FsHu26ZUOxZsg8fLdEyhz2/p9aWbG1Ks/bH/t4vIdwuiZtDSv0xezeaGKlWD El+EiTrJLOOd3hm4cK2OO/VtFfxN6d8XovLO0klBB7CnBZYH5Ohj2bgVIFRUwO2GF6NEH3ImRI7 oWnJmm5QAIJn5tNLSUw== 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-22_04,2026-06-22_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 clxscore=1015 impostorscore=0 priorityscore=1501 lowpriorityscore=0 bulkscore=0 suspectscore=0 adultscore=0 malwarescore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606220216 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782167613654158500 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 Tue Jun 23 20:53:54 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=1782167589; cv=none; d=zohomail.com; s=zohoarc; b=PPsmEm7Iww/Cbw159tMFUcP8wN2b6lIzNcA9cWEXApO89VoZQAXazr7ghTRgnlFSZvHzshVN2eTrGXfaWEzPoj7lSX99+Qav2sIj4u0d58e+7hYZRqcXynuStMCFh0/WzMMdZhnhTuDSzbFqQRWj6adzC0RryIv9DWnA9v6T0kc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782167589; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=KEBEWg1DozklBniLTXhMmih7FDGUNrQdYMKFnkPwUgnW9PvKxOvpLyhhPBm1VqNEFsEWf+hG9Vs5uarOXvEHIu6piZ41trPy1nmF5STFJyNAPQ61uLetFDUZ5zXKJR0tzpav5IHIo+7S+dIh/iOLlDwInUC1EoToX1sk15aZC3o= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782167589575490.06243750637145; Mon, 22 Jun 2026 15:33:09 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wbn9U-0003Y6-IB; Mon, 22 Jun 2026 18:30:00 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wbn9L-0003Pl-KW for qemu-devel@nongnu.org; Mon, 22 Jun 2026 18:29: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 1wbn9J-0006Vv-Ql for qemu-devel@nongnu.org; Mon, 22 Jun 2026 18:29:51 -0400 Received: from pps.filterd (m0279872.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65MJaxaC1902568 for ; Mon, 22 Jun 2026 22:29:39 GMT Received: from mail-dy1-f199.google.com (mail-dy1-f199.google.com [74.125.82.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4exyn1ukau-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 22 Jun 2026 22:29:38 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-30c1f6c5559so5827193eec.0 for ; Mon, 22 Jun 2026 15:29:38 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c1bd8d78esm10945995eec.18.2026.06.22.15.29.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 22 Jun 2026 15:29: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= wO8Hpccix22tZFHgyU0VgMmMK7ZQOufSmnr3QdC9JmM=; b=AR1j7eo5heNnYurd 6f2Pvaa/9WWjLHplBWFdWUbpMar/mRepe9zWNfpb6l/Kj5L33HnnWXjzTjUXgH16 mWbqfr2kZzdV8GKUZCSSm36/T+KrNqMtRBPHYQFW92OwdcQeFKoA8YGp9yE3dnQK UwGAbI09Ol/KCPm1gLWXvaGOutecRAZ9ayFpzVInbRHKzuFn/3keelGpeWo8+K+V znh1EmyQ4a7A3cowppOBe1XlEXUI6uKwLWrvD+Pa/f5OJ2/RW6ARF0cCkOXLqEgt hQ/1MI+lgfXUbt+qDx1t5ZeFZkra0SGSEgy1d/vNs3++bdfhuONBC9fkmRK3qSOy 1+EMwg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782167378; x=1782772178; 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=aFyPiqEbVl5AFPysfahTKZ9UMIUF4K/3yNWkr/40ZlpTRZwUPmS9pVTsuQu0Ff1i62 Cj7xb90qSljHuiXKX+LQm4wIvcsAxdfEpZ4ImZEGqvWwc06aqlwafFeMNZXEe7hm9yVW 04paN861dU6O3YbJyn+6IFlbLLlMs0xa0ItRVl2KsKT8on8oxnAcelwS09o4EFVXtLW3 kwt2ztAO6ZGGIkqUKKCe9aQJMcpMEk8TaJGvMvV5eHY8qKDe8zb5RekIuCArlahwvcSr L51t89YOPIBoZgE4bc6b8gMfRHagm4IBjeEKnJUNt+pWh9a2JQraMoY2waMK8deAxqbP 5QaQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782167378; x=1782772178; 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=jNhz8wLNdAiSttC0XYU+565xKhboxTDhwzHlZwLrsXeJii1IwWULhbmnE1eHfpC8M+ ULchbQTv7pMAl8Xyxw4JTxvdwOrewRdqWf31EZbInM/OTz6ANDUIIEedwPS+HxPWj/jl X6xPHOwsQfTZQfF4V6Xw5gFqAnnwRzUdlw4sNm5KB5SpG3Z0FoaqOBpDiXqbW4KVWGp2 uo0iGhxgx7dHDPe/CfNtNLgolgnEXUIPq/IOIIAwHUR+EEVi87oqpLkJCxZQqderQsQM euBMu+kc3cnWTktkei4ge6yF9q6GnndHXfGEodBbfSGv/zxQYb8W+clpxbRo03rh9FsZ nyZw== X-Gm-Message-State: AOJu0Yx36f72iXJkIvPp0mN+LudzymMpK7albOVcCsMsqckPWPaEr9VP vg5M2u55Rj5WUnFlX7j+fglhkaHVH2A8DGyb8xfpu4+4DvWCQelJNa4TsB5xG2XCn/C3rJz2RTZ bshabp6f8QErnIApP1XaVEy73u/beir5IFBGUy6Zj5E/wo8kPumjnReboXOvAk/9a6g== X-Gm-Gg: AfdE7cm/PvEfcGkVx53zW+O5wG1+G0/q6RXYBXWxwgRrEBAcVihqCmJ5g1GsfiR3mH1 zW4tGY4LoLkmS5ZsEqNwFAqOxYqGiHALq/CBEsAp31BTqCYXJ8VeDiB31f8RSA0/REhl5e+NxWF Vt7v5t2Cuz9bt1+UaQPBkAmBIzUXHHlllcY8oZ36OFO640JgMa7k/zLxV+o/sbsGVsOrlZJX4Co Er7qAu4AsPErDAmLnQ66btpB8QRAPpo12bMm25qFLB6Olh05wJ8aiffHFT6GyGZ6IODAxf/fAop X81i9wue5/f8NJGCn1ngPox38ATQbJcR4mSHoAkdqCsz6ioYDrYj/+LwOyRP5lMkcR6OCnKd6Jk 5oCQ9hcqYMSEgSiuH1NCPVPxGHHF3u1OFZoBWJo1kITrelK1IiDLWUqzP/70= X-Received: by 2002:a05:7300:6d08:b0:30c:52c5:6e48 with SMTP id 5a478bee46e88-30c52c57d74mr1917320eec.18.1782167377941; Mon, 22 Jun 2026 15:29:37 -0700 (PDT) X-Received: by 2002:a05:7300:6d08:b0:30c:52c5:6e48 with SMTP id 5a478bee46e88-30c52c57d74mr1917291eec.18.1782167377439; Mon, 22 Jun 2026 15:29:37 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v2 18/75] target/hexagon: Add placeholder greg/sreg r/w helpers Date: Mon, 22 Jun 2026 15:28:07 -0700 Message-Id: <20260622222904.607771-19-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260622222904.607771-1-brian.cain@oss.qualcomm.com> References: <20260622222904.607771-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: Cy5gSWGrqvDi4h_IVm3U3dZQ-1rC8I9w X-Authority-Analysis: v=2.4 cv=EOU2FVZC c=1 sm=1 tr=0 ts=6a39b752 cx=c_pps a=cFYjgdjTJScbgFmBucgdfQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yx91gb_oNiZeI1HMLzn7:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=wA0rHRt5QP8iJxr38i8A:9 a=QEXdDO2ut3YA:10 a=scEy_gLbYbu1JhEsrz4S:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwNjIyMDIxNiBTYWx0ZWRfXysc2cbaN1RDN 2Ed2UbcF0+Ll/g9bl2oE56NENiuCxoQbI6hTN3dyHd2dFuzQATAeELKE0e8dt8TKswsTfXCcYHq p4vSsEDLcz0uUZ4SqZGKW7Iw4hT3/Ok= X-Proofpoint-ORIG-GUID: Cy5gSWGrqvDi4h_IVm3U3dZQ-1rC8I9w X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjIyMDIxNiBTYWx0ZWRfXxqwa2bORz6JD Wx2Hs78TBUD+8mT+kW6LOH4/PAF8dYGnAuYgLg0X6riHZXMVLKok8+lRwx7H6xkUpXixo9IVsr6 XN+9Zbz+A0qgVHxaoQVFQOJYrGVXp0V3F7Ox/D1Leb9lo6kwRM+XVCq1TZ3tPuGh/algmw7x87v +jK6oVFBPPbv1JV/NR56Uf9Ldw2zfbM748iph4eRVSgUwbL9IAK0fGc/GN7X5aV37niSK1usx76 enmljUr4F7ukyPBHLwu5Gp2FWaN8xZzOnHi3oK8X4zz6RpcC+gR2Sf4qgUfq55FF9XFAd1NYDrQ Y2luZwJRYyyEKV3dI7Avpwt/iOMpMArTHdHR7q+y2uQn/7qGZc/JZY9BFGbP1IolY9vHxLtLQX8 yJvK6Ers76HtG4vb4gAJJpmYBGGulRa7l6FzDTm4KhzXwy/yyiQz+9HfnDSvMGAfLmV53zG3BjK HYIqVAbyVvs5gW2Nntw== 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-22_04,2026-06-22_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 bulkscore=0 priorityscore=1501 malwarescore=0 adultscore=0 lowpriorityscore=0 phishscore=0 clxscore=1015 spamscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606220216 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782167591572158500 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 Tue Jun 23 20:53:54 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=1782167589; cv=none; d=zohomail.com; s=zohoarc; b=h4N1F2GfwmAtI+1ufziV+RTKxEockL06COW6F1UJYIjXZ4hEx26Jyx0+5mw5cEdNWO5wUI31qcZMZ2b84uuSQbLMwIz7kQgOCJXQVaI81xnDEX324mjc1PXU0/oNUG5dHh1rooNqlAzuu+7PyydbTTshdF0EwPpifa6060+YAFQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782167589; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=eQD62IV+wZhUqwOypLasagxaNPzrv1r+lPwKsThU9MUn+xilpd44DuH76uu0Y34eeuobYJh5d6Wgg6tUfvbjw2vtBZI9VAJGARY41xnHrvrP6vNcaQv2rkIgIFAAPeO4Sqs9IGaovGJhRTIr2aC53ips2jaZUYlqFeav2R+iMic= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782167589908979.0901591448395; Mon, 22 Jun 2026 15:33:09 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wbn9W-0003aH-GU; Mon, 22 Jun 2026 18:30: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 1wbn9M-0003QH-O2 for qemu-devel@nongnu.org; Mon, 22 Jun 2026 18:29: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 1wbn9L-0006WH-3G for qemu-devel@nongnu.org; Mon, 22 Jun 2026 18:29:52 -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 65MJarW42177096 for ; Mon, 22 Jun 2026 22:29:40 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 4ey37hahct-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 22 Jun 2026 22:29:40 +0000 (GMT) Received: by mail-dl1-f70.google.com with SMTP id a92af1059eb24-138acbc0e69so18058249c88.0 for ; Mon, 22 Jun 2026 15:29:40 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c1bd8d78esm10945995eec.18.2026.06.22.15.29.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 22 Jun 2026 15:29:37 -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=Q1 vDxk71yO87qaPTjuqL8EHabl+C6g2JNcAI3zotXFG2Jkw/ixAwH+B13M2GWAqRnr O8TCmSDg8LMhI6y2Gga/9AhwU62M9PJ227w9j49kbdaVHQ+cplb3rJeCF6X8fMQv 7fulkhRda/IbqW7nVPN4C12D89RdPk6c9I6eY3Mqu9AUG4UpTva18ikKZE2he0eb fxeuNw7H99oCbmT5Tm3aHhS1M/lKOoHpgpZ3cpkTJXJG5MK5kq7TZe8U3coJAVUj 8psmMXZGhy6VD1hGytc7SvrceCbs/Az+cAwpuohyIMde670YFYpuWbIP0GGQK185 j165RPZyF1OHw0+jhZLA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782167379; x=1782772179; 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=VweXXIgdIuZz0ls8ndrbuY0rzvW7rOxL3B+k6KKlZWrhx5JEZtPDLvn9BjbcdjHcWa MRKHmjWVeX7lYF+4CAi/JUoM1ynrMROhBlvX+PI+faN7DaCINgxT7VgP1ogFA0tisauQ oKbysgcK+eeWgLExTAOrcV6RE7VM+gLsVbbBU2CiszxRlB7MnXC0p+g/z97vDyyLiPqz ggT4rSFvBUnWs9qNXfAR8DpinC6PXiLJBhfG6JY3TEkKShrE/1XEtqAxFrmsH4rlNoQo RIzcAqeZb16soorSr7VfukuBS6knUkYc51o2OpEM2HLSqRKzAVSt8rq2QTjNLGHc/8iR vuUA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782167379; x=1782772179; 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=g8ZQQzezRKVh0LKDXvCrAE4+nHzNRM4MX4ezgq1gevyCVfWyHSWBrXn8CY9aMdpBAa jqju/crlUbIU85sP/QjHDVhbBuiu1tvI3Y4ndBfT00padCGrKzBkF0sDc8AKYV1VS78a SLfzFEoH6EDC7jVFfPOsvGqDp0Gcw0bfIpUeJZI6heujYXjX3/TNuVp3ryJgN5MZJ4D8 949HW0kjGTro2KQ2tKi/kPNk4QGxDmLB0neY42PDruXHOW3CxBBkGg3bWhjEhu5s2/3K OIPlVTj7MKKePxScgq5ALK3/KAmK07baiYban13yRs761Wj+rC50Ub8YGXxwiUO8vwKJ Q+lA== X-Gm-Message-State: AOJu0YyqalAR32Lmq4XrPWUAGRivBkAxZMrxl7o6PN2NcKczAovfuQ/n O4lveZDn0KttRmbgfR1Lev2P3EnqngybEHaXwxUoqZtzIgjgF2fXWASg9uTzxwzZ4+VyXQ/EzcP tpEzWfox5FM/VKyiCFkH6kcLKSnJcDbiHHZ4kKx8Xvv9h3gxn3ysqqV27taz9ut6DPA== X-Gm-Gg: AfdE7ckWAO7uZ68AJAZL+R55InpXKLVMM1dxT5pM8B+C94CUU/ivRnREWn50UjBSZGv ySS7nm3tvQvnwD2Dtvrvf710tpKHbXEKmErijTn1+k6uoOB8B98jKtPYexxE9K7or5BWOLRBB/s DKIVy6EcnNsqs0acfeq+VMzklQBYED72BMFRJ68HphpkFJE2uns9Rac5qLxcCl5pRgiuRA3Gd9H YbCIrpqkt4SXrvW2iS5sBn2vh8V/1Y+YeSuYxbs9PR/T2W3qAdCLDGzrH90yjouZ/CX/Uu8vMCV y5K1/egXN6gzNddBa6nbg1A2ZMbrbMNmE4taemEKekNHN8LmZhi60dexvIa0oaZk865m1sWiwWN OOMwiv6dRIqYPp5GcdIS0GakFMt+mxvXiIIRtvfwr7KHLWR5Rs6Wq9PdCQKw= X-Received: by 2002:a05:7301:e29:b0:304:d8cb:841a with SMTP id 5a478bee46e88-30c1d9c94fcmr7565084eec.14.1782167379060; Mon, 22 Jun 2026 15:29:39 -0700 (PDT) X-Received: by 2002:a05:7301:e29:b0:304:d8cb:841a with SMTP id 5a478bee46e88-30c1d9c94fcmr7565073eec.14.1782167378512; Mon, 22 Jun 2026 15:29:38 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Richard Henderson , Pierrick Bouvier Subject: [PULL v2 19/75] target/hexagon: Add vmstate representation Date: Mon, 22 Jun 2026 15:28:08 -0700 Message-Id: <20260622222904.607771-20-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260622222904.607771-1-brian.cain@oss.qualcomm.com> References: <20260622222904.607771-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-ORIG-GUID: 8rBc5twVOisa8JQnJBUijlPxJayrdtqR X-Authority-Analysis: v=2.4 cv=ecANubEH c=1 sm=1 tr=0 ts=6a39b754 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: AW1haW4tMjYwNjIyMDIxNiBTYWx0ZWRfX81m/VQrb5ZVI kwmeiGKsUXXhIZhQZxL1apabdbXD3CJovJXBmlct9w6ETr2KpXqhIvx6CDGsSrMnT2xjFZO5KxB tVEFDZ2eV8jwC+XvLqU1+lBW2j0BjJ4= X-Proofpoint-GUID: 8rBc5twVOisa8JQnJBUijlPxJayrdtqR X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjIyMDIxNiBTYWx0ZWRfX2rDs31gHha9P AWc/JlgNdmXqJNow+rqEZ6e2IS5S12SBg6vcQLEgz0doHT6GDg8wLQLgsn9vlGi8uwCCDq1zN8V M/l4Oel28swccawWFHogaiHmnzxLU1GFULz0wvLRTDavt1VrmuCT9U6rAB7m7A++7gY1V8qrMsN ahhJwkr/DadrZZUGyApqUZfs7a1F6p8dfZF3OdicSprahs0ZZSM7hA5Pck+HeJ0/PKxmCPwj8O6 hJymam4/9swCoFcNt9PP9lmkt8p+O4VsUhadau8QzzzI+3QzXWf5tY/5+F+g2d3ZnpUJJrv86r6 psiGQJv+OtUY8p3g0T5OUie8HKt78wPeWMHkgBJJbMy5mE02dIRxkz3R2PDn5/4Qa1og+uTaQpG yNTbI1F2cvGEkgahDjpgPP/ztnV8k7Z8AEldMT6dhD/XVWrbdhiTiY9fKWyH3neV9f/rVVNrRR5 5TVVLgg84+7u/AI1Z3w== 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-22_04,2026-06-22_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 lowpriorityscore=0 priorityscore=1501 clxscore=1015 spamscore=0 suspectscore=0 impostorscore=0 adultscore=0 malwarescore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606220216 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782167591656158500 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 Tue Jun 23 20:53:54 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=1782167617; cv=none; d=zohomail.com; s=zohoarc; b=BMCsUK2oIbOIPTqkDxxDat+8S2BoPtAZQ7cnzyiwsujLeVtvXKNdObQLtcxmv+HiqKlBlyJV+jIFSYy6fTeU0sI9vJEVucQ696fqFToDHU/naUGAgEfDEeP+YtnMnJmVFgy/EjOUpUSLuTMSQ2lpFlHzzECL9pm7+NdwfJX1p2w= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782167617; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=S6A2UJGTn7HqK9t85g/5cQwo4GE3jYJyX+0UElXryS4IZ12NsA2bpax9wM4K6vR4fFmJBJy9gIeYMVusjMXpetJ+1G0gWHjUQoi4ZSLCF0MrX066ph2fwyWZCU7UM8Po6mkJvtVhWC2C26M4OTEv00OKnn1x89wyJ2UUzX5MA6c= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782167617862749.3705713563838; Mon, 22 Jun 2026 15:33:37 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wbn9W-0003aA-Bg; Mon, 22 Jun 2026 18:30: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 1wbn9O-0003TN-6E for qemu-devel@nongnu.org; Mon, 22 Jun 2026 18:29: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 1wbn9M-0006Wd-IJ for qemu-devel@nongnu.org; Mon, 22 Jun 2026 18:29:53 -0400 Received: from pps.filterd (m0279871.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65MJbCAV2122430 for ; Mon, 22 Jun 2026 22:29:41 GMT Received: from mail-dy1-f200.google.com (mail-dy1-f200.google.com [74.125.82.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ey5n41xww-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 22 Jun 2026 22:29:41 +0000 (GMT) Received: by mail-dy1-f200.google.com with SMTP id 5a478bee46e88-30c0a27ad86so11726163eec.0 for ; Mon, 22 Jun 2026 15:29: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 5a478bee46e88-30c1bd8d78esm10945995eec.18.2026.06.22.15.29.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 22 Jun 2026 15:29: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= YSGjopxVE+rdAilYCXMYF1ogegIN4PeOYEB5C/MYTiE=; b=p5lM/IzOtDfIBFLr ljCni5huA7nvpkmp1rVr/lrcY0+P37vuAyLYeqZyViAw3BRtAI4hCeaglab97xnT CY9s8Bzrz/v0a5fqFcUtf4S+1pEzFRIEI7He22upVNWahipHW3LbzgB3gYEcr9Wp ugndbWdsAiLQFKXLFrvNX287F9FoMsDLsAnlksnIZVMDxdpOFGVWAXw3qn/1hQjp 50kwJFPDHmz8OWjTa+Ch5Nq9DAg/oChbG85d0e4z5ZNl3MHIlbYg84IMdKI591If vUAKYBxqGThdBXOOK2B94tzSyLlsJQ6DT1zWFZIuhrAX6+Nh1xchOa/yB2DrZ2Bc cIh0yA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782167380; x=1782772180; 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=F3cTKOYdtq3uz3KqWSXEL9XJwRBcvfsjPMrfykOrJx2MikA1CR/PcVNloorgN/hKYo sJ8EXwq8yKEvrtsfQzuD6xfsMgQrDdXlk3cVuhfDPSXuk7LE8d7r9PCiJldTrhAUG1Pa zoxrFd91B/SoMBEfYw0ZsSqYEBhS+TUaG9AvqyonRbjU4/zkG17zpnEZMD3eAFlhvZYg 52eLQvR2wmLmyuGRMF1rG4aKnR8VKAdAZJxwqR+8mRjON/dERrtpu8G0LOd1QTcHptJG cCB3XBPL45IKHcFJm7IVuJiDcH/M5Zo/YAfdCCfHM2a5pmSkqdQ+IYUKCAUR36VdsUGW hW9Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782167380; x=1782772180; 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=ZedBQqpvX4s22QAEAVzGrkmUyB17H7fjDFv/CIeQ1yrV1ydd+Qs/moLrixWcSkBa6D CvdT4+VZA8LcAhxMlRU0jQQPrgQeX2iXqE5TTSvVsHastBxlsrQxK1cAq9oAdHuQDqz0 TA/nN9a8n+lzL93GHDKLy60ZYOZzfsslygHVtrWTgoTuxWFe5WF3Ga+73op5MX6E7tdn J6GzuNy+DPz2+aSYbmq9hXGY9qCgofvalFF4zSHzEWp3fMxG7o+K19ZWt9kcEKc3irHt GdHtr/nBhsuQmdeUeLbF6SpwkPM8b6bH0Qt+bXQkOYB8z8zPW1VzqHl/wq/k8XJnmY+P KXqw== X-Gm-Message-State: AOJu0YyqAXANwrbK5LpXx1tItDadlfytJrisH47isz9budSaBed4ZNgx N9UCUetGQK0zXCOdd2e/yBAWSQmXWVMt+djc8fNdmZYeJMJLHYyVNQOSJ4HmdGXUNxQPIPT6e5h eL6SuHj3q4FtV2ALUq56rv05rapaq34FWgr6WSErn1PyXaOsjI0T1Gz8rjYEOYS3/5w== X-Gm-Gg: AfdE7ck5FpWyLyuc8TP35L6zi5C9srlimjlGVehPdVuCui5dH7420ysFYx8Bl1UX+ZI jP3VozimgmV9zqtHRHkP1moT9VXe0okFMvTQZ1c7CU94EDOiEKkws8908N+ntiUF2+UK23tZP2n +HCys/sSu6kaHqlxsm/f26iFvd8C04BojBpCTEBN8iOnLNzSYKllqDBBuhJAUU4aa01oIWxXkLI lnpIHfRZ95BuPyXoUTZkhT3zZ4eoH/OwRh+0S5AFW2b0Wx8dk3aMX/Fja0Quni+37ylOY77nECK BiORJwpsuUUqWOlcP/y9qpCOG9eG7p9ptfRQ07fDBJTxlHtFJ9sJsiOyz4TA3KV9SmLY2ws26bc t4fuP9goEw8kvcuz4y/PdHa2uRFJhfswK0TF1ZutSvSHU14lnY2n86LfqtI0= X-Received: by 2002:a05:7300:6ca7:b0:30b:c502:23e8 with SMTP id 5a478bee46e88-30c070057dbmr11440581eec.21.1782167380464; Mon, 22 Jun 2026 15:29:40 -0700 (PDT) X-Received: by 2002:a05:7300:6ca7:b0:30b:c502:23e8 with SMTP id 5a478bee46e88-30c070057dbmr11440568eec.21.1782167380023; Mon, 22 Jun 2026 15:29:40 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v2 20/75] target/hexagon: Make A_PRIV, "J2_trap*" insts need_env() Date: Mon, 22 Jun 2026 15:28:09 -0700 Message-Id: <20260622222904.607771-21-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260622222904.607771-1-brian.cain@oss.qualcomm.com> References: <20260622222904.607771-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: AW1haW4tMjYwNjIyMDIxNiBTYWx0ZWRfXwzkds/QfU4Rv njpk+X3ta0Og2hUyfsCVxdW+6vPjactGIebxJwqNcGWVqmKwmo4VPejCnpQYtDLARZaHOZBGM/d 2rO85CGyrv5rfT4/2TFJ0u8gnH46mHQ= X-Authority-Analysis: v=2.4 cv=R8Uz39RX c=1 sm=1 tr=0 ts=6a39b755 cx=c_pps a=PfFC4Oe2JQzmKTvty2cRDw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=3WHJM1ZQz_JShphwDgj5:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=923NME1-z-asBZaYXDoA:9 a=QEXdDO2ut3YA:10 a=6Ab_bkdmUrQuMsNx7PHu:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: pE6T3r0mPR0919n6eCuuPn_dC7v6Ky-k X-Proofpoint-GUID: pE6T3r0mPR0919n6eCuuPn_dC7v6Ky-k X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjIyMDIxNiBTYWx0ZWRfX9QEn+tx9Wnql eoVrPhoypn67lh/ewZJpBYEEOAFfj1+Jwuc6A729NO5jFjrxk8NhDvehZ6zqIIOE6lqs5vC6AnM hQF1gFknAV0E6I4FqcJm1M56J3/cS3H56TiC/iPnx6QsaNl84Oyj/LChU3lZuFVu9B3hD7iey1z fhyUEiJGq1eAWgdVrUrLT+iE4nBbp3RcSTUiRDXIvA8xVWtSx4TPmV9A+7QkW2soenn7IS0hjyF hTLvibqDSKWFGeDtEt/48THKB2xKwFLlGObi1gVa6J8duhnB5Mipz++VAbgXIegj0wF7mwgX/d6 WpXQs5greHQQtp7cFB3C2aeK+GqfibqNO2e5y6IyjrDfHV7zfTjdRtGgKGYSLRLH6pPKTKlRa8u FoBwWHewK2y8H+rlQB0hv4huYWHyxd3pe1m+WywfjsHERNJInogQSkPeIKrPqnPyhyGWmFeNQ2s Sq1c2QbFHAfXJltQ7PA== 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-22_04,2026-06-22_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 clxscore=1015 impostorscore=0 priorityscore=1501 lowpriorityscore=0 bulkscore=0 suspectscore=0 adultscore=0 malwarescore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606220216 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782167619702158500 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 Tue Jun 23 20:53:54 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=1782167643; cv=none; d=zohomail.com; s=zohoarc; b=CKr9zi+uHc4oTRKxwD5jXbDFFBDy4+Yw2Hl2bdss6D70I6V3FQzjPKflZTV33bJdqoQ9XxyKZT/9sCpmX6RBoJaRn0/Smp+kQ1Dbq6vlAUYcKkk9AS6p4ykT4C6F9mljhz5LJp3e4P2fn2C9QWk1aK5/+lCn8ct+k+9PF4hup8U= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782167643; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=LSTX9a2PAvH6ouqCjaPnNEC793lZD/9xZ/xjnrQxPTChSyqdaLQAFeTOlpgy8Q92AkqV5MW/XM0gf3DO4QXi683BjoV0CNNMshAbrwa93S6m18zPOvlTGNNkKtdJLTiIZr3BvoqM/kisWVIVQV8z//EOKNO3sBrAsWCVo10QbcM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782167643109550.3298028173373; Mon, 22 Jun 2026 15:34:03 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wbn9X-0003an-JO; Mon, 22 Jun 2026 18:30: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 1wbn9P-0003Te-Np for qemu-devel@nongnu.org; Mon, 22 Jun 2026 18:29: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 1wbn9O-0006XO-5b for qemu-devel@nongnu.org; Mon, 22 Jun 2026 18:29: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 65MJbUSx2206649 for ; Mon, 22 Jun 2026 22:29:43 GMT Received: from mail-dy1-f199.google.com (mail-dy1-f199.google.com [74.125.82.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ey6tmsp36-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 22 Jun 2026 22:29:43 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-30c1f6c5559so5827260eec.0 for ; Mon, 22 Jun 2026 15:29:43 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c1bd8d78esm10945995eec.18.2026.06.22.15.29.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 22 Jun 2026 15:29: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= gR7dx5FAHey0hvTHweaG0/Fx4UXE1mDGyZgCKofpSwQ=; b=LQgqBltZcd0HmBld PanmGIjVuPZOyjmhtg68leP58JVDbME5ej2FO+hLcAJ4PdFV9boGYqVbCv/42MBf +KGrVx8v7rp/gtJ+plSgfCMVu0AR3sGHFgYXeuyj5b23BEpETwk8hU3zRI/a0EnA 6Pvjana2vfv83/4gRw0qJU2sjlf4ea0wqK8sYqaSYl8UzleSzPRCxbt0x+IxxN1t xEtnCtL+eTDo9Cg1ushFk8JT+XKSqitPeYeXnDKHBoiWkIakTXlqMNTL8U87ew9A v/VyYTRr1fgHD0QjjkZO8455sibWCx6AxKnTno/LwfDl7HLRWW+i/n/3XpsYC4g+ rpFvsw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782167382; x=1782772182; 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=MWPN5QVk9UYofPBseCS0P/+GctDvaMz7d2RVFRNgfw0+4Mecq851MAGz+hQaZQRJy4 1RDgENm49e+D4hkAoaIRogSozB8TpZFyYDl5tHRwxkVXR9AqYDznhesuVeo16USLrDY0 ybaLpw0cmS73SHIAUgsISTmfthhuAQm4WBFAsoiD9RiWjFK2C0Y/dJmtWh34IW49qfnO jGxa0RkKZ/WMcn9QhTPOggQMUKO5XNEXKB+2ElsMzRv9qt6x6/j5Kul0dHST8xT9dfck FvT5BGxejOJtNg5yjxAiLWsPtbguz/fONToSUWUHb78Pp6pQpCVuYyWvmNtJp8HN2SdV bliQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782167382; x=1782772182; 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=D5ULs/9KVAgOXaxBkm48xAj+U+1hEbiB1xDz2POud2Y49KDsSrCQaiaSAtJcKdVipj PJVM5TCjAyzD5HpGijepxNLzFcLjQna6Ls0Aq5A88eJ0X+qCgYdOqz2DxIDKxD2Vsh42 xAHYGNKoBMIDGb197JeTjckWMf/yW36yzYsdDb7pKD4GrmPKmsrjqPDcAA/k3wRraRTM gzfMPDKtlOuIbY5ymX9EcFoiaIDWvuEv+rFH7vFM/R4jbtTKxOd0uMd2Ec+pt21vn86r dYCqIM/SfnV8d4v4N3/nYN3YxL7ufSYF5rYiyzqg/AjQNG9EyvdVl15aJ/RRIBx4rvPW pYeQ== X-Gm-Message-State: AOJu0Yx4JfEa/8KpwQUfSAl6Xpl2/XPISOR48u5I4/w+1/tKN+Wyd3JE P7nmvfnU+rX/2AzMcPmsm2ZxOTSG5uhg6OEYMuMqN4D9QkorUAiuCX1TMKr5S+n1XJH4b47oAZb MVJpcCnrBFdYY2Me7rW5nVgfgS+gmdseizw6o7GhigA8SKNfPsDa2sSDGWjOCX0lu9Q== X-Gm-Gg: AfdE7clTNhyFUBv8t5G6Ux/3ULGcOZveh+td3cfBq9xUIm+rMUlS9eRbbi8wgEP0Uw8 TcqdqZU63lGAAn8YIQAb0F7LyRbm+trnTFxmp+5IS3Oko1hm0tJx1r14veqNSaiMCOronmYrbhQ v8a48pMVCCDZWQph9gKpA2yF2yrtIXd7gpLQ6ff8QrKpJI13iI8ZpUWPt8Z89XKhcVWO+FaTY/4 eQjc5M6T1Gf8P4h49iS4ELvVPvnWbMRyYrhmlAozm8gxmOZ8ZvQDDYaKVC26OhlcBH9I5jP5aac ir8a3/C+t5PxE4e2HsgiZNQXKh6g9JrwVl2gum6FFJtf1WJOq73y33Cqq55ISkysUWsQegiLzAE jAlHWi44DmlDLVjOGosPam41RXsnxAjA3Sk8TLlv4RGSY05YrfiVGuh/+1J4= X-Received: by 2002:a05:7300:6c9f:b0:2ea:c085:44b1 with SMTP id 5a478bee46e88-30c071533c3mr11142226eec.19.1782167382366; Mon, 22 Jun 2026 15:29:42 -0700 (PDT) X-Received: by 2002:a05:7300:6c9f:b0:2ea:c085:44b1 with SMTP id 5a478bee46e88-30c071533c3mr11142212eec.19.1782167381869; Mon, 22 Jun 2026 15:29:41 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v2 21/75] target/hexagon: Define register fields for system regs Date: Mon, 22 Jun 2026 15:28:10 -0700 Message-Id: <20260622222904.607771-22-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260622222904.607771-1-brian.cain@oss.qualcomm.com> References: <20260622222904.607771-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: AW1haW4tMjYwNjIyMDIxNiBTYWx0ZWRfX85+dthiYaiAR RSaIStinLE/zBWJ3ewzUDmtJ7xnXYY7yu4/Us/PFXMOJfir2FzUHz67q/O5r/eOexY8rOk9tPnN GzihNkGanXYkDJkzDgYoiKFi/kDDf9M= X-Proofpoint-GUID: 3y3nj1Wpv2ej8k_Teoc4-sxMthQhi9fg X-Proofpoint-ORIG-GUID: 3y3nj1Wpv2ej8k_Teoc4-sxMthQhi9fg X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjIyMDIxNiBTYWx0ZWRfX3OtYk4elftU1 UsRQJJzkw8IU929ezV0RhOIlMRVpXjbOC11jnL8aO0gmaUFGueCp1k1AmD2Zu+PeSFKnfVwQapn 8/a9U2tZDpe+SMqGvvbaQga//V//47jDQZU9a7iLJo5TNkm9SFndpSjQ5e1mwO1BnepT5aqfhwV KlQJ7ZDz5kP6EnPHhbjwQwlTOIQ638Cv0/A3h3U/lzvt4B1lxSpESVKYkDs8zDN3VFT5TR7BlYu NFd9hfyEapTO69ktGMZGKe9lvt4FRr66XyP34l1GYKBTZeZjVuDUGp6XQKhNZih5ldBt9CD59bS XqMlDjvOjRXcKiNJj6uMejCNmlOhHGTpcc7jzzjwrwqQsKK4/HDYF+RzLZEp9muv8+1Sk4hn/Or EoH7E0T3EJtjg0hQak3KyWs4W7sv94QS7LgZNlbmvVmVv31ZhIVkAkdM70+GnvLQJLMs3Oidhk9 7CysvwaVru5S4Va3A8Q== X-Authority-Analysis: v=2.4 cv=H4HrBeYi c=1 sm=1 tr=0 ts=6a39b757 cx=c_pps a=cFYjgdjTJScbgFmBucgdfQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_glEPmIy2e8OvE2BGh3C:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=mmKuwxttERDeH49ycpoA:9 a=QEXdDO2ut3YA:10 a=scEy_gLbYbu1JhEsrz4S:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-22_04,2026-06-22_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 suspectscore=0 clxscore=1015 phishscore=0 bulkscore=0 priorityscore=1501 impostorscore=0 adultscore=0 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-2606220216 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782167643829158500 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 Tue Jun 23 20:53:54 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=1782167417; cv=none; d=zohomail.com; s=zohoarc; b=OdQqRw3yDJBmxjjNMlaozZ1F/n+CDqfFhkyk4wiupwFtEvBghrJ/tYTG1mMlZ1icjfmIBQgW/K4/FPiQVBnXLzUM1G0W5lCPnVla2nHb5UQUj9lHssiobS1KP2a3adhIoNLg2Ls3VCyBr7ykeVmkizvAkpdiBBOglOd9xsanuW8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782167417; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=YobyGR3p2Wj+76K8IY2CNgG41fHyxjYmazyBYumu6cxyXNOPs/3bjROpMb/K+kyA0/TW2IGjXfnG/M2YnCDd1KLsOPQMkcT5i07hfEn6dEqNB8L6V8PPSX+qcN0jWwGKcOstl0ibH7DzPgCVQ1aZ0LMNwCRMY5Kvd18tDWvX5Zc= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 17821674170121018.912064990443; Mon, 22 Jun 2026 15:30:17 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wbn9N-0003R7-Rn; Mon, 22 Jun 2026 18:29:55 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wbn9I-0003Oo-9l for qemu-devel@nongnu.org; Mon, 22 Jun 2026 18:29:48 -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 1wbn9F-0006Xj-TA for qemu-devel@nongnu.org; Mon, 22 Jun 2026 18:29:47 -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 65MJZn6m1612568 for ; Mon, 22 Jun 2026 22:29:44 GMT Received: from mail-dy1-f198.google.com (mail-dy1-f198.google.com [74.125.82.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ey2yjaker-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 22 Jun 2026 22:29:44 +0000 (GMT) Received: by mail-dy1-f198.google.com with SMTP id 5a478bee46e88-30c5319332eso1093586eec.1 for ; Mon, 22 Jun 2026 15:29:43 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c1bd8d78esm10945995eec.18.2026.06.22.15.29.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 22 Jun 2026 15:29:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:content-type:date:from :in-reply-to:message-id:mime-version:references:subject:to; s= qcppdkim1; bh=iyq7LBA9ReIYZhusAxIzcfXUYATt4rc1w494jGlIN/c=; b=E4 Gk9ttyHf7QzdvnzhDtcuNjrNYVIzNVlUi/iSLczgJCPeVKL4sC1nOhLI7pXUqowN nD0L8cX9YI0fn5sXsuM027qhjtHmxhGgwgqsw9P5MMnIT6X60z+0OjobBUu7Wltu 3NzbnRp6aG+jxhST0kUb+KHyg4IfE4yk0ZrPiDBT7Srj5r3xrUqIOJ2wYsEFN8TM LVzL5WYfosYIgcHIh12ToKD3wcmd0UPcLefh3CrRLNnA3EnxSVPXJN/fRIskhyvL z+jHiAcc/cJpoyPjiBfn04JiLv/pRnfrdarH734tJ/C8aZhlUl5z2wG02w9OzZ3s 91MePVoChbQzFHpk5AGg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782167383; x=1782772183; 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=I1MZlb0uqTUPa/ST0siY/YffKHp/mje/enFCnyez0vpmtjh+nllds9vR/t1u1xjidW EJ9Or1tdzP4zLbBbeScU1fcLSae8CoZN2WDBbZJVz4/JdZkWXdN2Gj7tIOjH1PkX2Bde KTBWO3rPrb/syfaeA0d/8DXXhJbYI6ysCl7FqB+1ocWSIkaKUrgcLzz58SYGpqtbV5bD 6y/WFifDZ3ECQwKJhDaDAvkcZkoRG3eq1/WKj86FJh7SL8xFvL3s8OBDADO88Z3iKbxq 2hjIEzyamxB6LpPlJKmqPbj/Aa8F6cPQjkNLFdDTlJgTVhwaevb2SKFovhKB3G+bzLFe JRiQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782167383; x=1782772183; 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=sdSoS/Ad6Z00AhA7z/XV+ZBtHGqBAoKsHL4idC9OMl/nirqa37JRgNmzuXH1U8B8VP uJIQVw39B4ZF7EJuYbKBZmOYpl8iMAsk/c2C9zvR/d6oG3gvVgUeTO36HUg1NnZPr9EM L9X07ELhpB/Mi9cMI8Apmg5gw2NTdkaa+SHMGCa3rmoXIG1VBA6s97ve0FAa3vWk58CC Bgs+P44EJoUPItcUISPhKA+TwEWN6WiXrqMWmEte2Co9ugb4e862uGbjyUahgtXtdIqL Mr2bvpBn+XCeobN2mftcxpkdYayuWd+fS+yCQ6ZzVlIL1wHcXgTqrCvlbsiTK4iKfqjf 4vkA== X-Gm-Message-State: AOJu0YwvLsPnXRFmJvhZDiLfAh0YVZvdAhuMXkadvhf+MX96CxtDkviU qYUB3aa26LOm+WxJ3CimcICAPco9XxCh6aQM6VYNzLwyQerDJ8NIYXQgJPSjwNAa6Y86PjnBfwb N6jFc70IVKOoX27+aKpftU9Ts+QYuFCoBZ0CMaFaLKguo1NAHjyS8KUOh8I1l4hPE/A== X-Gm-Gg: AfdE7cmtFwU1Q6mGMHfzfrMff3fOydvxRZhwOhqxcZcHo1v8KOGhhajOsFg8NS3Kig5 yA0dWS1DJfY4Li9i0nFyau0OJAarjx98//ckCRbD89ftPcQWumELDO3JU6rwwJGshuhfvjM32Pd IqMOuwjEo+7YMymcGAOCwrRU1Hr2vQFIsm8vO4p3WQKHRdbThw2TPkSwQIBL6VgAQE5KSMwchuu 9kAfNOMWay+TvtEv++/VAj6q6Ish2kK7SnXlQENtFsYtfkM0A4bcpZySy6kiwWl8DuhhKt5FVc1 Ge9NiOWuCRcVsxU3da1zugIKmyAtM1y4+jg+jRoD0A0BfqsV/X8UH9nwgDQP74PKRV8lBAobVF4 35j+FrQTDbBu3WodJjRdmLu/+eA0jXrPA0vCiMHPAb58nBNGQQTp5bVI+85k= X-Received: by 2002:a05:7300:6c89:b0:2be:7fc2:fc38 with SMTP id 5a478bee46e88-30c06fb6c13mr11243639eec.5.1782167383463; Mon, 22 Jun 2026 15:29:43 -0700 (PDT) X-Received: by 2002:a05:7300:6c89:b0:2be:7fc2:fc38 with SMTP id 5a478bee46e88-30c06fb6c13mr11243626eec.5.1782167382962; Mon, 22 Jun 2026 15:29:42 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Pierrick Bouvier Subject: [PULL v2 22/75] target/hexagon: Implement do_raise_exception() Date: Mon, 22 Jun 2026 15:28:11 -0700 Message-Id: <20260622222904.607771-23-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260622222904.607771-1-brian.cain@oss.qualcomm.com> References: <20260622222904.607771-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-ORIG-GUID: oHdqm5YbvXIe2tz89Jra7o4VV8bv4mWf X-Proofpoint-GUID: oHdqm5YbvXIe2tz89Jra7o4VV8bv4mWf X-Proofpoint-Spam-Info: AW1haW4tMjYwNjIyMDIxNiBTYWx0ZWRfX29aWGCdboKvS JtyKfTweWuwkvSXdFUmdiZ9r30bYc3f5sFd9VJZUMgTsTKFN8evAUBfomXBEre0SeZGEXHPjCw/ aTXUBuE5sf1T+fMCjAIv+c49c+ZXoeM= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjIyMDIxNiBTYWx0ZWRfX5iplGzwOyaUH rOWLYZBkbvvWwC1aPyaeAFno9n/SVF4UPBPaf1IqTKFQfxPORfnBudmyFx/4C8HZBe2UlvINxDP zc/+rdsFymLsTy6zChEK5BNyC0PEPUA6c4RZuQTqcDZInCRRebvbGtCFZ77n4S+0mDtYcMx7Ykd jZTDM7WhW1VN7J2TX49oMRoVZj8gNEolisbkYn93T+bvndwQJHrZdpUkRrW6DCuo2L+zF1G3+Ab k19CPVKYiXuoSmKvWWgST8GaqJ1Teud6BJ/O3+vU+an2F67P7OMRDY3zkWF+xDCvORH5x9kOTzP Ao0i8S2q/6De1BEwn02mnh84BiFKh/RB1r7rPKOwT+/f1K/uBq3DEu25Gkb80AD5BD0IJhT15V7 ay/QJJRjigPeHoREELfn/0yO1vFYmRdoy3JajrZ6M3MZk+dypwLTEHDpQrlqtuF4LgiPtpFRJb+ t2lW3Uh2XRZMmXIBDcA== X-Authority-Analysis: v=2.4 cv=YLSvDxGx c=1 sm=1 tr=0 ts=6a39b758 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=YMgV9FUhrdKAYTUUvYB2:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=KKAkSRfTAAAA:8 a=EUspDBNiAAAA:8 a=hK29HtBGQMdOITfcgGsA:9 a=QEXdDO2ut3YA:10 a=bBxd6f-gb0O0v-kibOvt:22 a=TjNXssC_j7lpFel5tvFf:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-22_04,2026-06-22_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 malwarescore=0 bulkscore=0 clxscore=1015 phishscore=0 adultscore=0 spamscore=0 suspectscore=0 lowpriorityscore=0 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606220216 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H2=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782167418700158500 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 Tue Jun 23 20:53:54 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=1782167441; cv=none; d=zohomail.com; s=zohoarc; b=JeSmY6IAkDbldclmdp0vkVjmScFgTKviktqN07IkQhs710PqVlZlvvJfzYqzUyld5wnRL0FmQl+1Nh5z6tqAWbXhNOGJcmoJYsCst16T5U3PWx0uMQjdLsKx4+V7BL+37ZcMyv9MwICiEGO08omPPnbb3XzrvquExpp/rv/2UtE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782167441; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=rkJVz+7Ob1j1iubY29B1NZ8jMktfLmq3iVf/PzHu0xg=; b=Yb3x8EBJKAB6a1atxBGxig3Q97b1dFPn4OVlcR9B9PH1B758lZ2jhe38Bu/CsORaQ1fe1cvoPCDy0LIbSImLwHvDTULVJcYeC+vHwT9017EVVRXHJZS1YWmZrWGTGIsARNPw24L+I+QPEkb3aClPZ7AbEPHKd1EHQOYWw2jgF1U= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782167441732129.21004691596397; Mon, 22 Jun 2026 15:30:41 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wbn9Y-0003bI-83; Mon, 22 Jun 2026 18:30: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 1wbn9M-0003QI-QK for qemu-devel@nongnu.org; Mon, 22 Jun 2026 18:29:53 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wbn9I-0006YM-2V for qemu-devel@nongnu.org; Mon, 22 Jun 2026 18:29:52 -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 65MJa1Ub1542081 for ; Mon, 22 Jun 2026 22:29: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 4ey3a0tgb5-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 22 Jun 2026 22:29:46 +0000 (GMT) Received: by mail-dy1-f200.google.com with SMTP id 5a478bee46e88-30c0a27ad86so11726331eec.0 for ; Mon, 22 Jun 2026 15:29:46 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c1bd8d78esm10945995eec.18.2026.06.22.15.29.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 22 Jun 2026 15:29:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= rkJVz+7Ob1j1iubY29B1NZ8jMktfLmq3iVf/PzHu0xg=; b=EuH74zqObSQdC5pm vcAYDoCqAlMH3x5e+fGxoc13ZCKqaK+zUBDh8tIL5S/lWeZ7P7NL+C2CzLMKVdTy 21cUCot2XYcpKk56s3QAK8FsmPThyueOO8g5jIP632oJTPyOs6miGAY+CaYyNz7L qSzcEiFV2RqdIGmNufRRMcF6TldS6IwXjX2riMJ1o4Hod3IBS1MqZd+n/PEsMXBT oEq+gTMG8h+mrxbga3LDtzGC/j+RlL3NU5GB+FHfP21mhH61z+DIPoQwViZS0YA3 1FfF1t/V2aEhkuLdXcipYi4V0CA1WtMKWVsoT9Om1j7cUfi4lW0pIDY2BKbql5xl C0A/wA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782167386; x=1782772186; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=rkJVz+7Ob1j1iubY29B1NZ8jMktfLmq3iVf/PzHu0xg=; b=KBXQsIFbMxMaRMhh8nDs64gqISn633BiYEEFPqQ+/MzM17u9N/Vmgne4sFJC5NBpkJ Wpo5XV3/jWcISbTfNwEo3QK2sdyF4tNfeUBz2bkZnN1OJJn9s1rY7wT16yS813IdAcoX DWV8MCugNxhj80g/Ae4YwuHQ46smEO3ScVBg4bb3xdb/srvbxPn0Ss69BhlfVwiDbUNO QBriNzzjCpENlPNNuO2XiwSnaCquNTet/iIjp/0+2KcK15NHjED4CovV/AO2j+2UEXLk Z+hLILnIZwrCYvqRuiJrFd/vmdUOXO5H7LQeYpLOaoYaYXxpBaqVzXE6N/hObHCXGgdl HkOw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782167386; x=1782772186; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=rkJVz+7Ob1j1iubY29B1NZ8jMktfLmq3iVf/PzHu0xg=; b=gEJ0o0DHZ7ip5RnOE/SOQBda5DPWQOlE7JXgv/glWRTJWgQ96sXR7eAzoJWkXdDqab Qual8/hjeWilAf4TmWiCNHyoWq72RyjkkJWU35Vchtga3b79lFQcXdCITLvCjOWRZWBF vQ/uTPKTqV9/17CdF7vrDJ8WFmWzvZtcHwbtbRqYFn/rtt38YKCYlwEQC6Lfk/hpLBWA vTI0EaleszqYGJE4LA+TDHUWpvMs+UjXz2p/lziqRrfkIvIRdG1M34ziM/E+z2eflYuN 30Y9gEmBNoswqyldVQC1rSMScDofaPgS9pgS2kWJ+5bg3JM3ruSb/hX5fXxDt2x1wS/+ MYTA== X-Gm-Message-State: AOJu0YwWUW7YkKTZQouabc6ufHVLdXNqTDWGjxFn55KjcmBUFlX0oNcM DnkW36Ep+VQ/de17RuCeC/RlwJKRDUr/WUHpQsgN0MofYLRI2Rn1V98f5mxBbsP2mO7dx6Dg2Ji pC1YwpksZceo2g/KcBS6v3PSnCbjY+UoWgYZM7XgmrrY6xb02FCvmXo8/DSjFqm9Wzg== X-Gm-Gg: AfdE7clxmsbbs9EXdoBrA4IrjNIrbJtCqYc/pXHFMQ3/YRe46KIe+vJnsEGq4rizH2F UeVKpn0WD4Il2B+rIgVWDM/uuq698iPKMDIuZhNUmoudOxY2geoHlgA81I8jne+AkvX3shoLY9t kFadCIzMBR3bgIacMzIt20xHsTtPufUL+Mw27oaqeBRT29ieVbyhBE32xlEZOnAbNoeFCC1lwhj c/TkrNVMNkAlwa0Q71hdOHJPimtnCLNwDXCLQX8CU51Dopc6k4WiT/Oo7oITF0djby6jwXXEZiP eE+UUfRC8I+V5edB40tRnbsXVETnVkhYIjRb4tP0N2HFtG+ciXKsY2NdagbC5nX9mSCsZ46xnn5 PIv8BpYkH8yOUwN+cw7PrCJMNy8jFs4nuSkZzI3kHvnqc6bvMCJVQ0mQC2kE= X-Received: by 2002:a05:7301:38a4:b0:30b:ed93:5cda with SMTP id 5a478bee46e88-30c06e2f856mr11947824eec.9.1782167385214; Mon, 22 Jun 2026 15:29:45 -0700 (PDT) X-Received: by 2002:a05:7301:38a4:b0:30b:ed93:5cda with SMTP id 5a478bee46e88-30c06e2f856mr11947793eec.9.1782167384514; Mon, 22 Jun 2026 15:29:44 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v2 23/75] target/hexagon: Add system reg insns Date: Mon, 22 Jun 2026 15:28:12 -0700 Message-Id: <20260622222904.607771-24-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260622222904.607771-1-brian.cain@oss.qualcomm.com> References: <20260622222904.607771-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: AW1haW4tMjYwNjIyMDIxNiBTYWx0ZWRfXx9l5tFVO6Vm1 RIbc5fcqb0UJfOWugAatW6K0+hiQpGShacrRfqakPolzfNyRpyNjat79Zb3aZyELrmqNwH1sAAP cNocBAkPxZWAhh73iRI6y5ETIsJ5HCk= X-Proofpoint-GUID: OXYeH_w5Tdt2bxdvzY_Sulqd1ezfvCUy X-Authority-Analysis: v=2.4 cv=UJ7t2ify c=1 sm=1 tr=0 ts=6a39b75a cx=c_pps a=PfFC4Oe2JQzmKTvty2cRDw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_K5XuSEh1TEqbUxoQ0s3:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=Lq-sf-uUdcGOnWOb84QA:9 a=QEXdDO2ut3YA:10 a=6Ab_bkdmUrQuMsNx7PHu:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjIyMDIxNiBTYWx0ZWRfX/r0klBXqHFQP 2J1ISFQNOjvVa96svEQMMLdmmXM9WvGvEeBrzI3dMiORQQA84vTKohAGQQ/7xn2IAbVoZDzusaO XNNcI8NIkA4tyLLmTEVrNWdXCTdIJqZcYb8hx3iSTy0quYoK3R6v7V9aRpYw47QfcyRsQM+hxqd o/mBbJlRb+BpXPS/ThblmRcR92IuYNfJg/ra8dpcZJEOmN9Rr9d8u7AqQqT2WvWry6VCq9sMkxD hgrO/N8HIw2/pLmSoT3R0hIlpAmU3JnKIfixj9Knyfceli14XYZQA40ct5OLqkJRPRDZJimyuRx vmlJXC0NAK3/un/ObBAFoC0R+RMTTgBmIx8Q6IK9usb5XbevI6z9DLF6F2sS2RbESrZrRqJWUgp cwwoxLonZZofwjKUGLePqHCHvuhrZnz0yM4naYvRUDTkJr/O0tSv9ktr6Pt8392UmQ/uD0TI2o3 Awm5l/RJs2+VdX6nj4Q== X-Proofpoint-ORIG-GUID: OXYeH_w5Tdt2bxdvzY_Sulqd1ezfvCUy 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-22_04,2026-06-22_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 suspectscore=0 clxscore=1015 bulkscore=0 lowpriorityscore=0 adultscore=0 spamscore=0 malwarescore=0 phishscore=0 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606220216 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H2=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, UPPERCASE_50_75=0.008 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782167443053158500 From: Brian Cain Acked-by: Taylor Simpson Reviewed-by: Pierrick Bouvier Signed-off-by: Brian Cain --- target/hexagon/imported/encode_pp.def | 128 ++++++++++++-- target/hexagon/imported/system.idef | 244 ++++++++++++++++++++++++-- 2 files changed, 345 insertions(+), 27 deletions(-) diff --git a/target/hexagon/imported/encode_pp.def b/target/hexagon/importe= d/encode_pp.def index 0cd30a5e857..04e911f59c8 100644 --- a/target/hexagon/imported/encode_pp.def +++ b/target/hexagon/imported/encode_pp.def @@ -382,15 +382,18 @@ DEF_ENC32(L4_return_fnew_pt, ICLASS_LD" 011 0 000 ss= sss PP1110vv ---ddddd") DEF_ENC32(L4_return_tnew_pnt, ICLASS_LD" 011 0 000 sssss PP0010vv ---ddddd= ") DEF_ENC32(L4_return_fnew_pnt, ICLASS_LD" 011 0 000 sssss PP1010vv ---ddddd= ") =20 -DEF_ENC32(L2_loadw_locked,ICLASS_LD" 001 0 000 sssss PP000--- 000ddddd") - +/** Load Acquire Store Release Encoding **/ =20 +DEF_ENC32(L2_loadw_locked, ICLASS_LD" 001 0 000 sssss PP000--- 000ddddd= ") +DEF_ENC32(L4_loadd_locked, ICLASS_LD" 001 0 000 sssss PP010--- 000ddddd= ") =20 DEF_ENC32(L2_loadw_aq, ICLASS_LD" 001 0 000 sssss PP001--- 000ddddd= ") DEF_ENC32(L4_loadd_aq, ICLASS_LD" 001 0 000 sssss PP011--- 000ddddd= ") =20 -DEF_ENC32(R6_release_at_vi, ICLASS_ST" 000 01 11sssss PP0ttttt --0011dd= ") -DEF_ENC32(R6_release_st_vi, ICLASS_ST" 000 01 11sssss PP0ttttt --1011dd") + +DEF_ENC32(S2_storew_locked, ICLASS_ST" 000 01 01sssss PP-ttttt ----00dd") +DEF_ENC32(S4_stored_locked, ICLASS_ST" 000 01 11sssss PP0ttttt ----00dd") + =20 DEF_ENC32(S2_storew_rl_at_vi, ICLASS_ST" 000 01 01sssss PP-ttttt --0010dd= ") DEF_ENC32(S2_storew_rl_st_vi, ICLASS_ST" 000 01 01sssss PP-ttttt --1010dd") @@ -398,17 +401,15 @@ DEF_ENC32(S2_storew_rl_st_vi, ICLASS_ST" 000 01 01sss= ss PP-ttttt --1010dd") DEF_ENC32(S4_stored_rl_at_vi, ICLASS_ST" 000 01 11sssss PP0ttttt --0010dd= ") DEF_ENC32(S4_stored_rl_st_vi, ICLASS_ST" 000 01 11sssss PP0ttttt --1010dd") =20 -DEF_ENC32(L4_loadd_locked,ICLASS_LD" 001 0 000 sssss PP010--- 000ddddd") -DEF_EXT_SPACE(EXTRACTW, ICLASS_LD" 001 0 000 iiiii PP0iiiii -01iiiii") +DEF_ENC32(R6_release_at_vi, ICLASS_ST" 000 01 11sssss PP0ttttt --0011dd= ") +DEF_ENC32(R6_release_st_vi, ICLASS_ST" 000 01 11sssss PP0ttttt --1011dd") + +DEF_EXT_SPACE(EXTRACTW, ICLASS_LD" 001 0 000 iiiii PP0iiiii 001iiiii") DEF_ENC32(Y2_dcfetchbo, ICLASS_LD" 010 0 000 sssss PP0--iii iiiiiiii") =20 =20 =20 =20 - - - - /*******************************/ /* */ /* */ @@ -488,13 +489,17 @@ STD_PST_ENC(rinew, "1 101","10ttt") /* x bus/cache */ /* x store/cache */ DEF_ENC32(S2_allocframe, ICLASS_ST" 000 01 00xxxxx PP000iii iiiiiiii") -DEF_ENC32(S2_storew_locked,ICLASS_ST" 000 01 01sssss PP-ttttt ----00dd") -DEF_ENC32(S4_stored_locked,ICLASS_ST" 000 01 11sssss PP0ttttt ----00dd") +DEF_ENC32(Y5_l2locka, ICLASS_ST" 000 01 11sssss PP1----- ------dd") DEF_ENC32(Y2_dczeroa, ICLASS_ST" 000 01 10sssss PP0----- --------") =20 =20 DEF_ENC32(Y2_barrier, ICLASS_ST" 100 00 00----- PP------ 000-----") DEF_ENC32(Y2_syncht, ICLASS_ST" 100 00 10----- PP------ --------") +DEF_ENC32(Y2_l2kill, ICLASS_ST" 100 00 01----- PP-000-- --------") +DEF_ENC32(Y5_l2gunlock, ICLASS_ST" 100 00 01----- PP-010-- --------") +DEF_ENC32(Y5_l2gclean, ICLASS_ST" 100 00 01----- PP-100-- --------") +DEF_ENC32(Y5_l2gcleaninv, ICLASS_ST" 100 00 01----- PP-110-- --------") +DEF_ENC32(Y2_l2cleaninvidx,ICLASS_ST" 100 00 11sssss PP------ --------") =20 =20 =20 @@ -502,9 +507,28 @@ DEF_ENC32(Y2_dccleana, ICLASS_ST" 000 00 00sssss P= P------ --------") DEF_ENC32(Y2_dcinva, ICLASS_ST" 000 00 01sssss PP------ --------") DEF_ENC32(Y2_dccleaninva, ICLASS_ST" 000 00 10sssss PP------ --------") =20 -DEF_ENC32(Y4_l2fetch, ICLASS_ST" 011 00 00sssss PP-ttttt 000-----") +/* Super */ +DEF_ENC32(Y2_dckill, ICLASS_ST" 001 00 00----- PP------ --------") +DEF_ENC32(Y2_dccleanidx, ICLASS_ST" 001 00 01sssss PP------ --------") +DEF_ENC32(Y2_dcinvidx, ICLASS_ST" 001 00 10sssss PP------ --------") +DEF_ENC32(Y2_dccleaninvidx,ICLASS_ST" 001 00 11sssss PP------ --------") + +DEF_ENC32(Y2_dctagw ,ICLASS_ST" 010 00 00sssss PP-ttttt --------") +DEF_ENC32(Y2_dctagr ,ICLASS_ST" 010 00 01sssss PP------ ---ddddd") + +DEF_ENC32(Y4_l2tagw ,ICLASS_ST" 010 00 10sssss PP0ttttt --------") +DEF_ENC32(Y4_l2tagr ,ICLASS_ST" 010 00 11sssss PP------ ---ddddd") + +DEF_ENC32(Y4_l2fetch, ICLASS_ST" 011 00 00sssss PP-ttttt 000-----= ") +DEF_ENC32(Y5_l2cleanidx, ICLASS_ST" 011 00 01sssss PP------ --------") +DEF_ENC32(Y5_l2invidx, ICLASS_ST" 011 00 10sssss PP------ --------") +DEF_ENC32(Y5_l2unlocka, ICLASS_ST" 011 00 11sssss PP------ --------") DEF_ENC32(Y5_l2fetch, ICLASS_ST" 011 01 00sssss PP-ttttt --------") =20 +DEF_ENC32(Y6_l2gcleanpa, ICLASS_ST" 011 01 01----- PP-ttttt --------") +DEF_ENC32(Y6_l2gcleaninvpa,ICLASS_ST" 011 01 10----- PP-ttttt --------") + + /*******************************/ /* */ /* */ @@ -547,13 +571,23 @@ DEF_ENC32(J2_jumprfnewpt, ICLASS_J" 0011 011sssss P= P-11-uu --------") =20 DEF_FIELDROW_DESC32(ICLASS_J" 0100 -------- PP------ --------","[#4] (#u8)= ") DEF_ENC32(J2_trap0, ICLASS_J" 0100 00------ PP-iiiii ---iii--") -DEF_ENC32(J2_pause, ICLASS_J" 0100 01------ PP-iiiii ---iii--") +DEF_ENC32(J2_trap1, ICLASS_J" 0100 10-xxxxx PP-iiiii ---iii--") +DEF_ENC32(J2_pause, ICLASS_J" 0100 01----ii PP-iiiii ---iii--") + +DEF_FIELDROW_DESC32(ICLASS_J" 0101 -------- PP------ --------","[#5] Rd=3D= (Rs) ") +DEF_ENC32(Y2_icdatar, ICLASS_J" 0101 101sssss PP------ ---ddddd") +DEF_ENC32(Y2_ictagr, ICLASS_J" 0101 111sssss PP------ ---ddddd") +DEF_ENC32(Y2_ictagw, ICLASS_J" 0101 110sssss PP0ttttt --------") +DEF_ENC32(Y2_icdataw, ICLASS_J" 0101 110sssss PP1ttttt --------") =20 DEF_FIELDROW_DESC32(ICLASS_J" 0110 -------- PP------ --------","[#6] icop(= Rs) ") DEF_ENC32(Y2_icinva, ICLASS_J" 0110 110sssss PP000--- --------") +DEF_ENC32(Y2_icinvidx, ICLASS_J" 0110 110sssss PP001--- --------") +DEF_ENC32(Y2_ickill, ICLASS_J" 0110 110----- PP010--- --------") =20 DEF_FIELDROW_DESC32(ICLASS_J" 0111 -------- PP------ --------","[#7] () ") DEF_ENC32(Y2_isync, ICLASS_J" 0111 11000000 PP0---00 00000010") +DEF_ENC32(J2_rte, ICLASS_J" 0111 111----- PP00---- 000-----") =20 /* JUMP */ DEF_FIELDROW_DESC32(ICLASS_J" 100- -------- PP------ --------","[#8,9] PC= =3D(#r22)") @@ -738,12 +772,19 @@ DEF_ENC32(J2_jumprltezpt,ICLASS_CR" 0001 11isssss P= Pi1iiii iiiiiii-") =20 DEF_FIELDROW_DESC32( ICLASS_CR" 0010 -------- PP------ --------","[#= 2] Cd=3DRs ") DEF_ENC32(A2_tfrrcr, ICLASS_CR" 0010 001sssss PP------ ---ddddd") +DEF_ENC32(G4_tfrgrcr, ICLASS_CR" 0010 000sssss PP------ ---ddddd") +DEF_ENC32(Y4_trace, ICLASS_CR" 0010 010sssss PP------ 000-----") +DEF_ENC32(Y6_diag, ICLASS_CR" 0010 010sssss PP------ 001-----") +DEF_ENC32(Y6_diag0, ICLASS_CR" 0010 010sssss PP-ttttt 010-----") +DEF_ENC32(Y6_diag1, ICLASS_CR" 0010 010sssss PP-ttttt 011-----") =20 DEF_FIELDROW_DESC32( ICLASS_CR" 0011 -------- PP------ --------","[#= 3] Cdd=3DRss ") DEF_ENC32(A4_tfrpcp, ICLASS_CR" 0011 001sssss PP------ ---ddddd") +DEF_ENC32(G4_tfrgpcp, ICLASS_CR" 0011 000sssss PP------ ---ddddd") =20 DEF_FIELDROW_DESC32( ICLASS_CR" 1000 -------- PP------ --------","[#= 8] Rdd=3DCss ") DEF_ENC32(A4_tfrcpp, ICLASS_CR" 1000 000sssss PP------ ---ddddd") +DEF_ENC32(G4_tfrgcpp, ICLASS_CR" 1000 001sssss PP------ ---ddddd") =20 DEF_FIELDROW_DESC32( ICLASS_CR" 1001 -------- PP------ --------","[#= 9] (#r8,#U10)") DEF_ENC32(J2_ploop1si, ICLASS_CR" 1001 101IIIII PP-iiiii IIIii-II") @@ -754,6 +795,7 @@ DEF_ENC32(J2_loop1i, ICLASS_CR" 1001 001IIIII PP-i= iiii IIIii-II") =20 DEF_FIELDROW_DESC32( ICLASS_CR" 1010 -------- PP------ --------","[#= 10] Rd=3DCs ") DEF_ENC32(A2_tfrcrr, ICLASS_CR" 1010 000sssss PP------ ---ddddd") +DEF_ENC32(G4_tfrgcrr, ICLASS_CR" 1010 001sssss PP------ ---ddddd") DEF_ENC32(C4_addipc, ICLASS_CR" 1010 01001001 PP-iiiii i--ddddd") =20 =20 @@ -781,6 +823,64 @@ DEF_ENC32(C4_fastcorner9_not, ICLASS_CR"1011 0001--s= s PP1---tt 1--1--dd") =20 =20 =20 +/* Supervisor CR ops */ +/* Interrupts */ +DEF_FIELDROW_DESC32( ICLASS_CR" 0100 -------- PP------ --------","[#4] = (Rs,Pt)") +DEF_ENC32(Y2_swi, ICLASS_CR" 0100 000sssss PP------ 000-----") +DEF_ENC32(Y2_cswi, ICLASS_CR" 0100 000sssss PP------ 001-----") +DEF_ENC32(Y2_iassignw, ICLASS_CR" 0100 000sssss PP------ 010-----") +DEF_ENC32(Y2_ciad, ICLASS_CR" 0100 000sssss PP------ 011-----") +DEF_ENC32(Y2_setimask, ICLASS_CR" 0100 100sssss PP----tt 000-----") +DEF_ENC32(Y2_setprio, ICLASS_CR" 0100 100sssss PP----tt 001-----") +DEF_ENC32(Y4_siad, ICLASS_CR" 0100 100sssss PP------ 011-----") + +DEF_ENC32(Y2_wait, ICLASS_CR" 0100 010sssss PP------ 000-----") +DEF_ENC32(Y2_resume, ICLASS_CR" 0100 010sssss PP------ 001-----") +DEF_ENC32(Y2_stop, ICLASS_CR" 0100 011sssss PP------ 000-----") +DEF_ENC32(Y2_start, ICLASS_CR" 0100 011sssss PP------ 001-----") +DEF_ENC32(Y4_nmi, ICLASS_CR" 0100 011sssss PP------ 010-----") + +DEF_FIELDROW_DESC32( ICLASS_CR" 0101 -------- PP------ --------","[#5] = Rx ") +DEF_ENC32(Y2_crswap0, ICLASS_CR" 0101 000xxxxx PP------ --------") +DEF_ENC32(Y4_crswap1, ICLASS_CR" 0101 001xxxxx PP------ --------") + +DEF_FIELDROW_DESC32( ICLASS_CR" 0110 -------- PP------ --------","[#6] = Rd=3D(Rs)") +DEF_ENC32(Y2_getimask, ICLASS_CR" 0110 000sssss PP------ ---ddddd") +DEF_ENC32(Y2_iassignr, ICLASS_CR" 0110 011sssss PP------ ---ddddd") + +DEF_FIELDROW_DESC32( ICLASS_CR" 0111 -------- PP------ --------","[#7] = cr=3DRs ") +DEF_ENC32(Y2_tfrsrcr, ICLASS_CR" 0111 00-sssss PP------ -ddddddd") + +DEF_FIELDROW_DESC32( ICLASS_CR" 1100 -------- PP------ --------","[#12]= ") +DEF_ENC32(Y2_break, ICLASS_CR" 1100 001----- PP------ 000-----") +DEF_ENC32(Y2_tlblock, ICLASS_CR" 1100 001----- PP------ 001-----") +DEF_ENC32(Y2_tlbunlock,ICLASS_CR" 1100 001----- PP------ 010-----") +DEF_ENC32(Y2_k0lock, ICLASS_CR" 1100 001----- PP------ 011-----") +DEF_ENC32(Y2_k0unlock, ICLASS_CR" 1100 001----- PP------ 100-----") +DEF_ENC32(Y2_tlbp, ICLASS_CR" 1100 100sssss PP------ ---ddddd") +DEF_ENC32(Y5_tlboc, ICLASS_CR" 1100 111sssss PP------ ---ddddd") +DEF_ENC32(Y5_tlbasidi, ICLASS_CR" 1100 101sssss PP------ --------") +DEF_ENC32(Y2_tlbr, ICLASS_CR" 1100 010sssss PP------ ---ddddd") +DEF_ENC32(Y2_tlbw, ICLASS_CR" 1100 000sssss PP0ttttt --------") +DEF_ENC32(Y5_ctlbw, ICLASS_CR" 1100 110sssss PP0ttttt ---ddddd") + +DEF_FIELDROW_DESC32( ICLASS_CR" 1101 -------- PP------ --------","[#13]= Rxx ") +DEF_ENC32(Y4_crswap10, ICLASS_CR" 1101 10-xxxxx PP------ ---00000") +DEF_ENC32(Y4_tfrspcp, ICLASS_CR" 1101 00-sssss PP------ -ddddddd") + +DEF_FIELDROW_DESC32( ICLASS_CR" 1110 -------- PP------ --------","[#14]= Rd=3Dcr ") +DEF_ENC32(Y2_tfrscrr, ICLASS_CR" 1110 1sssssss PP------ ---ddddd") + +DEF_FIELDROW_DESC32( ICLASS_CR" 1111 -------- PP------ --------","[#15]= Rdd=3DSss ") +DEF_ENC32(Y4_tfrscpp, ICLASS_CR" 1111 0sssssss PP------ ---ddddd") + + + + + + + + /*******************************/ /* */ /* */ diff --git a/target/hexagon/imported/system.idef b/target/hexagon/imported/= system.idef index 7c6568e75e4..df4527a5fa9 100644 --- a/target/hexagon/imported/system.idef +++ b/target/hexagon/imported/system.idef @@ -25,31 +25,230 @@ /* User->OS interface */ /********************************************/ =20 -Q6INSN(J2_trap0,"trap0(#u8)",ATTRIBS(A_COF), +Q6INSN(J2_trap0,"trap0(#u8)",ATTRIBS(A_COF,A_NOTE_NOPACKET,A_RESTRICT_NOPA= CKET), "Trap to Operating System", fTRAP(0,uiV); ) =20 -Q6INSN(J2_pause,"pause(#u8)",ATTRIBS(A_COF), +Q6INSN(J2_trap1,"trap1(Rx32,#u8)",ATTRIBS(A_COF,A_NOTE_NOPACKET,A_RESTRICT= _NOPACKET), +"Trap to Operating System", + /* + * Note: if RxV is not written, we get the same as the input. + * Since trap1 is SOLO, this means the register will effectively not be u= pdated + */ + if (!fTRAP1_VIRTINSN(uiV)) { + fTRAP(1,uiV); + } else if (uiV =3D=3D 1) { + fVIRTINSN_RTE(uiV,RxV); + } else if (uiV =3D=3D 3) { + fVIRTINSN_SETIE(uiV,RxV); + } else if (uiV =3D=3D 4) { + fVIRTINSN_GETIE(uiV,RxV); + } else if (uiV =3D=3D 6) { + fVIRTINSN_SPSWAP(uiV,RxV); + }) + +Q6INSN(J2_pause,"pause(#u8)",ATTRIBS(A_COF,A_NOTE_NOPACKET,A_RESTRICT_NOPA= CKET), "Enter low-power state for #u8 cycles",{fPAUSE(uiV);}) =20 -Q6INSN(Y2_icinva,"icinva(Rs32)",ATTRIBS(A_ICOP,A_ICFLUSHOP),"Instruction C= ache Invalidate Address",{fEA_REG(RsV); fICINVA(EA);}) +Q6INSN(J2_rte, "rte", ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NO_TIMING_LOG), +"Return from Exception", +{ +fHIDE(if((thread->timing_on) && (thread->status & EXEC_STATUS_REPLAY)) { r= eturn; }) +fHIDE(CALLBACK(thread->processor_ptr->options->rte_callback, + thread->system_ptr,thread->processor_ptr, + thread->threadId,0);) +fCLEAR_RTE_EX(); +fBRANCH(fREAD_ELR(),COF_TYPE_RTE);}) =20 -Q6INSN(Y2_isync,"isync",ATTRIBS(),"Memory Synchronization",{fISYNC();}) -Q6INSN(Y2_barrier,"barrier",ATTRIBS(A_RESTRICT_SLOT0ONLY),"Memory Barrier"= ,{fBARRIER();}) -Q6INSN(Y2_syncht,"syncht",ATTRIBS(A_RESTRICT_SLOT0ONLY),"Memory Synchroniz= ation",{fSYNCH();}) =20 +/********************************************/ +/* Interrupt Management */ +/********************************************/ =20 -Q6INSN(Y2_dcfetchbo,"dcfetch(Rs32+#u11:3)",ATTRIBS(A_RESTRICT_PREFERSLOT0,= A_DCFETCH),"Data Cache Prefetch",{fEA_RI(RsV,uiV); fDCFETCH(EA);}) +Q6INSN(Y2_swi,"swi(Rs32)",ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NOTE_AXOK,A_RESTRIC= T_PACKET_AXOK),"Software Interrupt",{DO_SWI(RsV);}) +Q6INSN(Y2_cswi,"cswi(Rs32)",ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NOTE_AXOK,A_RESTR= ICT_PACKET_AXOK),"Cancel Software Interrupt",{DO_CSWI(RsV);}) +Q6INSN(Y2_ciad,"ciad(Rs32)",ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NOTE_AXOK,A_RESTR= ICT_PACKET_AXOK),"Re-enable interrupt in IAD",{DO_CIAD(RsV);}) +Q6INSN(Y4_siad,"siad(Rs32)",ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NOTE_AXOK,A_RESTR= ICT_PACKET_AXOK),"Disable interrupt in IAD",{DO_SIAD(RsV);}) +Q6INSN(Y2_iassignr,"Rd32=3Diassignr(Rs32)",ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NO= TE_AXOK,A_RESTRICT_PACKET_AXOK),"Read interrupt to thread assignments",{DO_= IASSIGNR(RsV,RdV);}) +Q6INSN(Y2_iassignw,"iassignw(Rs32)",ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NOTE_AXOK= ,A_RESTRICT_PACKET_AXOK),"Write interrupt to thread assignments",{DO_IASSIG= NW(RsV);}) =20 =20 -Q6INSN(Y2_dczeroa,"dczeroa(Rs32)",ATTRIBS(A_STORE,A_RESTRICT_SLOT0ONLY,A_D= CZEROA),"Zero an aligned 32-byte cacheline",{fEA_REG(RsV); fDCZEROA(EA);}) -Q6INSN(Y2_dccleana,"dccleana(Rs32)",ATTRIBS(A_RESTRICT_SLOT0ONLY,A_DCFLUSH= OP),"Data Cache Clean Address",{fEA_REG(RsV); fDCCLEANA(EA);}) -Q6INSN(Y2_dccleaninva,"dccleaninva(Rs32)",ATTRIBS(A_RESTRICT_SLOT0ONLY,A_D= CFLUSHOP),"Data Cache Clean and Invalidate Address",{fEA_REG(RsV); fDCCLEAN= INVA(EA);}) -Q6INSN(Y2_dcinva,"dcinva(Rs32)",ATTRIBS(A_RESTRICT_SLOT0ONLY,A_DCFLUSHOP),= "Data Cache Invalidate Address",{fEA_REG(RsV); fDCCLEANINVA(EA);}) +Q6INSN(Y2_getimask,"Rd32=3Dgetimask(Rs32)",ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NO= TE_AXOK,A_RESTRICT_PACKET_AXOK),"Read imask register of another thread", +{RdV =3D READ_IMASK(RsV & thread->processor_ptr->thread_system_mask); }) =20 +Q6INSN(Y2_setimask,"setimask(Pt4,Rs32)",ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NOTE_= AXOK,A_RESTRICT_PACKET_AXOK),"Change imask register of another thread", +{fPREDUSE_TIMING();WRITE_IMASK(PtV & thread->processor_ptr->thread_system_= mask,RsV); }) =20 -Q6INSN(Y4_l2fetch,"l2fetch(Rs32,Rt32)",ATTRIBS(A_RESTRICT_SLOT0ONLY),"L2 C= ache Prefetch", + + +/********************************************/ +/* TLB management */ +/********************************************/ + +Q6INSN(Y2_tlbw,"tlbw(Rss32,Rt32)", ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NOTE_NOPAC= KET,A_RESTRICT_NOPACKET), +"Write TLB entry", {fTLBW(RtV,RssV);}) + +Q6INSN(Y5_ctlbw,"Rd32=3Dctlbw(Rss32,Rt32)", ATTRIBS(A_PRIV,A_NOTE_PRIV,A_N= OTE_NOPACKET,A_RESTRICT_NOPACKET), +"Conditional Write TLB entry", +{ + if (fTLB_ENTRY_OVERLAP( (1LL<<63) | RssV )) { + RdV=3DfTLB_ENTRY_OVERLAP_IDX( (1LL<<63) | RssV); + } else { + fTLBW(RtV,RssV); + RdV=3D0x80000000; + } +}) + +Q6INSN(Y5_tlboc,"Rd32=3Dtlboc(Rss32)", ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NOTE_N= OPACKET,A_RESTRICT_NOPACKET), +"TLB overlap check", +{ + if (fTLB_ENTRY_OVERLAP( (1LL<<63) | RssV )) { + RdV=3DfTLB_ENTRY_OVERLAP_IDX( (1LL<<63) | RssV); + } else { + RdV=3D0x80000000; + } +}) + +Q6INSN(Y2_tlbr,"Rdd32=3Dtlbr(Rs32)", ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NOTE_NOP= ACKET,A_RESTRICT_NOPACKET), "Read TLB entry", +{RddV =3D fTLBR(RsV);}) + +Q6INSN(Y2_tlbp,"Rd32=3Dtlbp(Rs32)", ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NOTE_NOPA= CKET,A_RESTRICT_NOPACKET), "Probe TLB", {RdV=3DfTLBP(RsV);}) + +Q6INSN(Y5_tlbasidi,"tlbinvasid(Rs32)",ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NOTE_NO= PACKET,A_RESTRICT_NOPACKET), "Invalidate ASID", +{ + fHIDE(int i;) + fHIDE(unsigned int NUM_TLB_ENTRIES =3D NUM_TLB_REGS(thread->processor_= ptr);) + for (i =3D 0; i < NUM_TLB_ENTRIES; i++) { + if ((fGET_FIELD(fTLBR(i),PTE_G) =3D=3D 0) && + (fGET_FIELD(fTLBR(i),PTE_ASID) =3D=3D fEXTRACTU_RANGE(RsV,26,20))) { + fTLBW(i,fTLBR(i) & ~(1ULL << 63)); + } + } +}) + +Q6INSN(Y2_tlblock,"tlblock", ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NOTE_NOPACKET,A_= RESTRICT_NOPACKET,A_NO_TIMING_LOG), "Lock TLB", +{fSET_TLB_LOCK();}) + +Q6INSN(Y2_tlbunlock,"tlbunlock", ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NOTE_NOPACKE= T,A_RESTRICT_NOPACKET), "Unlock TLB", +{fCLEAR_TLB_LOCK();}) + +Q6INSN(Y2_k0lock,"k0lock", ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NOTE_NOPACKET,A_RE= STRICT_NOPACKET,A_NO_TIMING_LOG), "Lock K0", +{fSET_K0_LOCK();}) + +Q6INSN(Y2_k0unlock,"k0unlock", ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NOTE_NOPACKET,= A_RESTRICT_NOPACKET), "Unlock K0", +{fCLEAR_K0_LOCK();}) + +/********************************************/ +/* Supervisor Reg Management */ +/********************************************/ + +Q6INSN(Y2_crswap0,"crswap(Rx32,sgp0)",ATTRIBS(A_PRIV,A_NOTE_PRIV), "Swap s= ystem general pointer 0 with GPR", +{fHIDE(size4s_t tmp;) tmp =3D RxV; RxV =3D READ_SGP0(); WRITE_SGP0(tmp);}) +Q6INSN(Y4_crswap1,"crswap(Rx32,sgp1)",ATTRIBS(A_PRIV,A_NOTE_PRIV), "Swap s= ystem general pointer 1 with GPR", +{fHIDE(size4s_t tmp;) tmp =3D RxV; RxV =3D READ_SGP1(); WRITE_SGP1(tmp);}) + +Q6INSN(Y4_crswap10,"crswap(Rxx32,sgp1:0)",ATTRIBS(A_PRIV,A_NOTE_PRIV), "Sw= ap system general purpose 0/1 with GPR Pair", +{fHIDE(size8s_t tmp;) tmp =3D RxxV; RxxV=3DREAD_SGP10(); WRITE_SGP10(tmp);= }) + +Q6INSN(Y2_tfrscrr,"Rd32=3DSs128",ATTRIBS(A_PRIV,A_NOTE_PRIV),"Transfer Sup= ervisor Reg to GPR", {RdV=3DSsV;}) +Q6INSN(Y2_tfrsrcr,"Sd128=3DRs32",ATTRIBS(A_PRIV,A_NOTE_PRIV),"Transfer GPR= to Supervisor Reg", {SdV=3DRsV;}) +Q6INSN(Y4_tfrscpp,"Rdd32=3DSss128",ATTRIBS(A_PRIV,A_NOTE_PRIV),"Transfer S= upervisor Reg to GPR", {RddV=3DSssV;}) +Q6INSN(Y4_tfrspcp,"Sdd128=3DRss32",ATTRIBS(A_PRIV,A_NOTE_PRIV),"Transfer G= PR to Supervisor Reg", {SddV=3DRssV;}) + +Q6INSN(G4_tfrgcrr,"Rd32=3DGs32",ATTRIBS(A_GUEST,A_NOTE_GUEST),"Transfer Gu= est Reg to GPR", {RdV=3DGsV;}) +Q6INSN(G4_tfrgrcr,"Gd32=3DRs32",ATTRIBS(A_GUEST,A_NOTE_GUEST),"Transfer GP= R to Guest Reg", {GdV=3DRsV;}) +Q6INSN(G4_tfrgcpp,"Rdd32=3DGss32",ATTRIBS(A_GUEST,A_NOTE_GUEST),"Transfer = Guest Reg to GPR", {RddV=3DGssV;}) +Q6INSN(G4_tfrgpcp,"Gdd32=3DRss32",ATTRIBS(A_GUEST,A_NOTE_GUEST),"Transfer = GPR to Guest Reg", {GddV=3DRssV;}) + + + +Q6INSN(Y2_setprio,"setprio(Pt4,Rs32)",ATTRIBS(A_PRIV,A_NOTE_PRIV),"Change = TID Prio of another thread", +{fPREDUSE_TIMING();WRITE_PRIO(PtV & thread->processor_ptr->thread_system_m= ask,RsV); }) + + + + +/********************************************/ +/* Power Management / Thread on/off */ +/********************************************/ +Q6INSN(Y6_diag,"diag(Rs32)",ATTRIBS(),"Send value to Diag trace module",{ +}) +Q6INSN(Y6_diag0,"diag0(Rss32,Rtt32)",ATTRIBS(),"Send values of two registe= r to DIAG Trace. Set X=3D0",{ +}) +Q6INSN(Y6_diag1,"diag1(Rss32,Rtt32)",ATTRIBS(),"Send values of two registe= r to DIAG Trace. Set X=3D1",{ +}) + + +Q6INSN(Y4_trace,"trace(Rs32)",ATTRIBS(A_NOTE_AXOK,A_RESTRICT_PACKET_AXOK),= "Send value to ETM trace",{ + fDO_TRACE(RsV); +}) + +Q6INSN(Y2_stop,"stop(Rs32)",ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NOTE_NOPACKET,A_R= ESTRICT_NOPACKET),"Stop thread(s)",{ + fHIDE(RsV=3DRsV;) + if (!fIN_DEBUG_MODE_NO_ISDB(fGET_TNUM())) fCLEAR_RUN_MODE(fGET_TNUM()); +}) + +Q6INSN(Y4_nmi,"nmi(Rs32)",ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NOTE_NOPACKET,A_RES= TRICT_NOPACKET,A_NO_TIMING_LOG),"Raise NMI on thread(s)",{ + fDO_NMI(RsV); +}) + +Q6INSN(Y2_start,"start(Rs32)",ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NOTE_NOPACKET,A= _RESTRICT_NOPACKET),"Start thread(s)",fSTART(RsV);) + +Q6INSN(Y2_wait,"wait(Rs32)",ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NOTE_NOPACKET,A_R= ESTRICT_NOPACKET,A_NO_TIMING_LOG),"Make thread(s) wait",{ + fHIDE(RsV=3DRsV;) + if (!fIN_DEBUG_MODE(fGET_TNUM())) fSET_WAIT_MODE(fGET_TNUM()); + fIN_DEBUG_MODE_WARN(fGET_TNUM()); +}) + +Q6INSN(Y2_resume,"resume(Rs32)",ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NOTE_NOPACKET= ,A_RESTRICT_NOPACKET),"Make thread(s) stop waiting",fRESUME(RsV);) + +Q6INSN(Y2_break,"brkpt",ATTRIBS(A_NOTE_NOPACKET,A_RESTRICT_NOPACKET),"Brea= kpoint",{fBREAK();}) + + +/********************************************/ +/* Cache Management */ +/********************************************/ + +Q6INSN(Y2_ictagr,"Rd32=3Dictagr(Rs32)",ATTRIBS(A_ICOP,A_PRIV,A_NOTE_PRIV,A= _NOTE_NOPACKET,A_RESTRICT_NOPACKET,A_CACHEOP,A_COPBYIDX,A_ICTAGOP),"Instruc= tion Cache Tag Read",{fICTAGR(RsV,RdV,RdN);}) +Q6INSN(Y2_ictagw,"ictagw(Rs32,Rt32)",ATTRIBS(A_ICOP,A_PRIV,A_NOTE_PRIV,A_N= OTE_NOPACKET,A_RESTRICT_NOPACKET,A_CACHEOP,A_COPBYIDX,A_ICTAGOP),"Instructi= on Cache Tag Write",{fICTAGW(RsV,RtV);}) +Q6INSN(Y2_icdataw,"icdataw(Rs32,Rt32)",ATTRIBS(A_ICOP,A_PRIV,A_NOTE_PRIV,A= _NOTE_NOPACKET,A_RESTRICT_NOPACKET,A_CACHEOP,A_COPBYIDX,A_ICTAGOP),"Instruc= tion Cache Data Write",{fICDATAW(RsV,RtV);}) +Q6INSN(Y2_icdatar,"Rd32=3Dicdatar(Rs32)",ATTRIBS(A_ICOP,A_PRIV,A_NOTE_PRIV= ,A_NOTE_NOPACKET,A_RESTRICT_NOPACKET,A_CACHEOP,A_COPBYIDX,A_ICTAGOP),"Instr= uction Cache Data Read",{fICDATAR(RsV, RdV);}) +Q6INSN(Y2_icinva,"icinva(Rs32)",ATTRIBS(A_ICOP,A_NOTE_NOPACKET,A_RESTRICT_= NOPACKET,A_CACHEOP,A_COPBYADDRESS,A_ICFLUSHOP),"Instruction Cache Invalidat= e Address",{fEA_REG(RsV); fICINVA(EA);}) +Q6INSN(Y2_icinvidx,"icinvidx(Rs32)",ATTRIBS(A_ICOP,A_PRIV,A_NOTE_PRIV,A_NO= TE_NOPACKET,A_RESTRICT_NOPACKET,A_CACHEOP,A_COPBYIDX,A_ICFLUSHOP),"Instruct= ion Cache Invalidate Index",{fICINVIDX(RsV);}) +Q6INSN(Y2_ickill,"ickill",ATTRIBS(A_ICOP,A_PRIV,A_NOTE_PRIV,A_NOTE_NOPACKE= T,A_RESTRICT_NOPACKET,A_CACHEOP,A_ICFLUSHOP),"Instruction Cache Invalidate"= ,{fICKILL();}) + +Q6INSN(Y2_isync,"isync",ATTRIBS(A_NOTE_NOPACKET,A_RESTRICT_NOPACKET),"Memo= ry Synchronization",{fISYNC();}) +Q6INSN(Y2_barrier,"barrier",ATTRIBS(A_NOTE_NOPACKET,A_RESTRICT_SLOT0ONLY,A= _RESTRICT_PACKET_AXOK),"Memory Barrier",{fBARRIER();}) +Q6INSN(Y2_syncht,"syncht",ATTRIBS(A_NOTE_NOPACKET,A_RESTRICT_SLOT0ONLY,A_R= ESTRICT_NOPACKET),"Memory Synchronization",{fSYNCH();}) + + +Q6INSN(Y2_dcfetchbo,"dcfetch(Rs32+#u11:3)",ATTRIBS(A_RESTRICT_PREFERSLOT0,= A_DCFETCH,A_RESTRICT_NOSLOT1_STORE),"Data Cache Prefetch",{fEA_RI(RsV,uiV);= fDCFETCH(EA);}) +Q6INSN(Y2_dckill,"dckill",ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NOTE_NOPACKET,A_RES= TRICT_SLOT0ONLY,A_RESTRICT_NOPACKET,A_CACHEOP,A_DCFLUSHOP),"Data Cache Inva= lidate",{fDCKILL();}) + + +Q6INSN(Y2_dczeroa,"dczeroa(Rs32)",ATTRIBS(A_STORE,A_RESTRICT_SLOT1_AOK,A_N= OTE_SLOT1_AOK,A_RESTRICT_SLOT0ONLY,A_CACHEOP,A_COPBYADDRESS,A_DCZEROA),"Zer= o an aligned 32-byte cacheline",{fEA_REG(RsV); fDCZEROA(EA);}) +Q6INSN(Y2_dccleana,"dccleana(Rs32)",ATTRIBS(A_RESTRICT_SLOT1_AOK,A_NOTE_SL= OT1_AOK,A_RESTRICT_SLOT0ONLY,A_CACHEOP,A_COPBYADDRESS,A_DCFLUSHOP),"Data Ca= che Clean Address",{fEA_REG(RsV); fDCCLEANA(EA);}) +Q6INSN(Y2_dccleanidx,"dccleanidx(Rs32)",ATTRIBS(A_PRIV,A_NOTE_PRIV,A_RESTR= ICT_PACKET_AXOK,A_NOTE_AXOK,A_RESTRICT_SLOT0ONLY,A_CACHEOP,A_COPBYIDX,A_DCF= LUSHOP),"Data Cache Clean Index",{fDCCLEANIDX(RsV);}) +Q6INSN(Y2_dccleaninva,"dccleaninva(Rs32)",ATTRIBS(A_RESTRICT_SLOT1_AOK,A_N= OTE_SLOT1_AOK,A_RESTRICT_SLOT0ONLY,A_CACHEOP,A_COPBYADDRESS,A_DCFLUSHOP),"D= ata Cache Clean and Invalidate Address",{fEA_REG(RsV); fDCCLEANINVA(EA);}) +Q6INSN(Y2_dccleaninvidx,"dccleaninvidx(Rs32)",ATTRIBS(A_PRIV,A_NOTE_PRIV,A= _RESTRICT_PACKET_AXOK,A_NOTE_AXOK,A_RESTRICT_SLOT0ONLY,A_CACHEOP,A_COPBYIDX= ,A_DCFLUSHOP),"Data Cache Clean and Invalidate Index",{fDCCLEANINVIDX(RsV);= }) +Q6INSN(Y2_dcinva,"dcinva(Rs32)",ATTRIBS(A_RESTRICT_SLOT1_AOK,A_NOTE_SLOT1_= AOK,A_RESTRICT_SLOT0ONLY,A_CACHEOP,A_COPBYADDRESS,A_DCFLUSHOP),"Data Cache = Invalidate Address",{fEA_REG(RsV); fDCCLEANINVA(EA);}) +Q6INSN(Y2_dcinvidx,"dcinvidx(Rs32)",ATTRIBS(A_PRIV,A_NOTE_PRIV,A_RESTRICT_= PACKET_AXOK,A_NOTE_AXOK,A_RESTRICT_SLOT0ONLY,A_CACHEOP,A_COPBYIDX,A_DCFLUSH= OP),"Data Cache Invalidate Index",{fDCINVIDX(RsV);}) +Q6INSN(Y2_dctagr,"Rd32=3Ddctagr(Rs32)",ATTRIBS(A_PRIV,A_NOTE_PRIV,A_RESTRI= CT_PACKET_AXOK,A_NOTE_AXOK,A_RESTRICT_SLOT0ONLY,A_CACHEOP,A_COPBYIDX,A_DCTA= GOP),"Data Cache Tag Read",{fDCTAGR(RsV,RdV,RdN);}) +Q6INSN(Y2_dctagw,"dctagw(Rs32,Rt32)",ATTRIBS(A_PRIV,A_NOTE_PRIV,A_RESTRICT= _SLOT0ONLY,A_NOTE_NOPACKET,A_RESTRICT_NOPACKET,A_CACHEOP,A_COPBYIDX,A_DCTAG= OP),"Data Cache Tag Write",{fDCTAGW(RsV,RtV);}) + + +Q6INSN(Y2_l2kill,"l2kill",ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NOTE_NOPACKET,A_RES= TRICT_SLOT0ONLY,A_RESTRICT_NOPACKET,A_CACHEOP,A_L2FLUSHOP),"L2 Cache Invali= date",{fL2KILL();}) +Q6INSN(Y4_l2tagw,"l2tagw(Rs32,Rt32)",ATTRIBS(A_PRIV,A_NOTE_BADTAG_UNDEF,A_= NOTE_PRIV,A_RESTRICT_SLOT0ONLY,A_NOTE_NOPACKET,A_RESTRICT_NOPACKET,A_CACHEO= P,A_COPBYIDX,A_L2TAGOP),"L2 Cache Tag Write",{fL2TAGW(RsV,RtV);}) +Q6INSN(Y4_l2tagr,"Rd32=3Dl2tagr(Rs32)",ATTRIBS(A_PRIV,A_NOTE_BADTAG_UNDEF,= A_NOTE_PRIV,A_NOTE_AXOK,A_RESTRICT_PACKET_AXOK,A_RESTRICT_SLOT0ONLY,A_CACHE= OP,A_COPBYIDX,A_L2TAGOP),"L2 Cache Tag Read",{fL2TAGR(RsV,RdV,RdN);}) + +Q6INSN(Y2_l2cleaninvidx,"l2cleaninvidx(Rs32)",ATTRIBS(A_PRIV,A_NOTE_PRIV,A= _NOTE_AXOK,A_RESTRICT_PACKET_AXOK,A_RESTRICT_SLOT0ONLY,A_CACHEOP,A_COPBYIDX= ,A_L2FLUSHOP),"L2 Cache Clean and Invalidate Index",{fL2CLEANINVIDX(RsV); }) +Q6INSN(Y5_l2cleanidx,"l2cleanidx(Rs32)",ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NOTE_= AXOK,A_RESTRICT_PACKET_AXOK,A_RESTRICT_SLOT0ONLY,A_CACHEOP,A_COPBYIDX,A_L2F= LUSHOP),"L2 Cache Clean by Index",{fL2CLEANIDX(RsV); }) +Q6INSN(Y5_l2invidx,"l2invidx(Rs32)",ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NOTE_AXOK= ,A_RESTRICT_PACKET_AXOK,A_RESTRICT_SLOT0ONLY,A_CACHEOP,A_COPBYIDX,A_L2FLUSH= OP),"L2 Cache Invalidate by Index",{fL2INVIDX(RsV); }) + + + +Q6INSN(Y4_l2fetch,"l2fetch(Rs32,Rt32)",ATTRIBS(A_RESTRICT_SLOT0ONLY,A_REST= RICT_PACKET_AXOK,A_NOTE_AXOK),"L2 Cache Prefetch", { fL2FETCH(RsV, (RtV&0xff), /*height*/ ((RtV>>8)&0xff), /*width*/ @@ -59,10 +258,29 @@ Q6INSN(Y4_l2fetch,"l2fetch(Rs32,Rt32)",ATTRIBS(A_RESTR= ICT_SLOT0ONLY),"L2 Cache P =20 =20 =20 -Q6INSN(Y5_l2fetch,"l2fetch(Rs32,Rtt32)",ATTRIBS(A_RESTRICT_SLOT0ONLY),"L2 = Cache Prefetch", +Q6INSN(Y5_l2fetch,"l2fetch(Rs32,Rtt32)",ATTRIBS(A_RESTRICT_SLOT0ONLY,A_RES= TRICT_PACKET_AXOK,A_NOTE_AXOK),"L2 Cache Prefetch", { fL2FETCH(RsV, fGETUHALF(0,RttV), /*height*/ fGETUHALF(1,RttV), /*width*/ fGETUHALF(2,RttV), /*stride*/ fGETUHALF(3,RttV)); /*flags*/ }) + +Q6INSN(Y5_l2locka,"Pd4=3Dl2locka(Rs32)", ATTRIBS(A_PRIV,A_NOTE_PRIV,A_CACH= EOP,A_COPBYADDRESS,A_RESTRICT_SLOT0ONLY,A_RESTRICT_PACKET_AXOK,A_NOTE_AXOK,= A_RESTRICT_LATEPRED,A_NOTE_LATEPRED), +"Lock L2 cache line by address", { fEA_REG(RsV); fL2LOCKA(EA,PdV,PdN); fHI= DE(MARK_LATE_PRED_WRITE(PdN)) }) + + +Q6INSN(Y5_l2unlocka,"l2unlocka(Rs32)", ATTRIBS(A_PRIV,A_NOTE_PRIV,A_CACHEO= P,A_COPBYADDRESS,A_RESTRICT_SLOT0ONLY,A_RESTRICT_PACKET_AXOK,A_NOTE_AXOK), = "UnLock L2 cache line by address", { fEA_REG(RsV); fL2UNLOCKA(EA); }) + + + +Q6INSN(Y5_l2gunlock,"l2gunlock",ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NOTE_NOPACKET= ,A_RESTRICT_SLOT0ONLY,A_RESTRICT_NOPACKET,A_CACHEOP,A_L2FLUSHOP),"L2 Global= Unlock",{fL2UNLOCK();}) + +Q6INSN(Y5_l2gclean,"l2gclean",ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NOTE_NOPACKET,A= _RESTRICT_SLOT0ONLY,A_RESTRICT_NOPACKET,A_CACHEOP,A_L2FLUSHOP),"L2 Global C= lean",{fL2CLEAN();}) + +Q6INSN(Y5_l2gcleaninv,"l2gcleaninv",ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NOTE_NOPA= CKET,A_RESTRICT_SLOT0ONLY,A_RESTRICT_NOPACKET,A_CACHEOP,A_L2FLUSHOP),"L2 Gl= obal Clean and Invalidate",{fL2CLEANINV();}) + +Q6INSN(Y6_l2gcleanpa,"l2gclean(Rtt32)",ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NOTE_N= OPACKET,A_RESTRICT_SLOT0ONLY,A_RESTRICT_NOPACKET,A_CACHEOP,A_L2FLUSHOP),"L2= Global Clean by PA Range",{fL2CLEANPA(RttV);}) + +Q6INSN(Y6_l2gcleaninvpa,"l2gcleaninv(Rtt32)",ATTRIBS(A_PRIV,A_NOTE_PRIV,A_= NOTE_NOPACKET,A_RESTRICT_SLOT0ONLY,A_RESTRICT_NOPACKET,A_CACHEOP,A_L2FLUSHO= P),"L2 Global Clean and Invalidate by PA Range",{fL2CLEANINVPA(RttV);}) + --=20 2.34.1 From nobody Tue Jun 23 20:53:54 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=1782167590; cv=none; d=zohomail.com; s=zohoarc; b=RCjg5pxHKaOlO7nCvykyTNEiR/f46gQhY3H47ttP3k5QHxwaDSBatzHFK/3pZKKQrpuwl3VoH+w/tMgSyG+zPnpJ8e4ZVgvWLKXI/QLeTYv/GXrnRejomTtDh9vKKt1iicfNUthCupDDgORfzlT/KuneL9PZWcICymu6yVWc4l8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782167590; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=Scn3sKJG1vZ8iMyu8WhxXByZrYWf0F7iwsCgrdZQezyFlP8+M1wkppH7AXRDH9EAxljmHXohnxcp9kLPtaymE9oUDq4FJ+11QrLwoBt0JK7ubp4MNMkI5F7KILcFXwFgsdJUA6n48Ot8F9dsadEkZLQ3dpgY+6fYyyZOxtjU1Jc= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782167590054637.1627671218293; Mon, 22 Jun 2026 15:33:10 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wbn9Z-0003bi-3h; Mon, 22 Jun 2026 18:30: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 1wbn9V-0003Zd-MC for qemu-devel@nongnu.org; Mon, 22 Jun 2026 18:30:01 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wbn9T-0006Yf-FY for qemu-devel@nongnu.org; Mon, 22 Jun 2026 18:30:01 -0400 Received: from pps.filterd (m0279870.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65MJarW92177096 for ; Mon, 22 Jun 2026 22:29:47 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 4ey37hahdc-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 22 Jun 2026 22:29:47 +0000 (GMT) Received: by mail-dy1-f198.google.com with SMTP id 5a478bee46e88-30bcbb34e57so9063544eec.1 for ; Mon, 22 Jun 2026 15:29:47 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c1bd8d78esm10945995eec.18.2026.06.22.15.29.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 22 Jun 2026 15:29: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= /VupIGXlaT55BiO1M+rRAhb74/1Wio7tg5AsFBlbUDk=; b=KFl6cnplnbm+Com8 FrmzHMGZBsKCwm4PUhLwkVpiKjO8KlJk75wLWIRssLqwQILO/MYTBaBPAragYAXm TZilSXHnmdzCa1jiTQ2X5heQdLAXoRKALS+2CGmRiL6BOKt/dlqw9LVK1SFsD1H4 x9ME0q9kNtT4n8J27LVL7wx+f5EPtb8Z+q1rV5lP2e+eO4ssB9s06PbfgS+VQb0x T0AL8gmIO6VC6c7l/29Dc7oHU8AwXGOg4wbxEukHUd19gKSvzbrTDHlEZ5tEIl0I fgI2dJy1MG7oXaaRNJLmOYH63JuEJaxQVsY/ScYseK7Y0mfsj8ly33SONlca8N3k Wbsm0A== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782167386; x=1782772186; 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=IxVgVQT9VdqsHnU0lIJi1AOLu0ALwIJHvfdtK7l4QexXT4P6PX0d2+55gpp1Ka0Jgt QB9b77MZgcg/Cab/AbI51036z+f8PQekFYwLk19ktxA5n3zNM/S3MQfaHA+vJcwE1Row jxDlJLjgRJHHxl1wSVn7vFliZwvp41zt1J6OvjZo0mYT/QrSbNBlBOLxIyDWytDGMm46 Ntxa1uF3dHOdUUey0YPfrcEH2aV/v4gerQlhDv2gR/mZA4zGuyf3gl/4ZTTOXAVJ0I/l dmiI5Go17vXppMfjnAdk3xtrvfyDuGJn3wE7Wj9maMYuetbF1RE0WeuWKgYWqW5si+1+ BPYQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782167387; x=1782772187; 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=Nr5k4kTyXBn92U4wQzgyPTCrXLIhXNzIc1Y95TSc/rMY3hQJj3glQNAp5h1VqzOcVj THwlxiUAp/rDjWa3oAqc6vljiI+nMo8ycaO3ocQBt+9KRqcvzMm1w/ZSl+oB8b329lfE kbVP1g/xB1JcSIty1BzUIL+qWxpiyTvSM+exGWRr6eshMBUgIBjGolrARd5XHrv6yM9h nQFXNC+whuH5NyhnoHXGSdgpTpVaCWAx1fyoaF1MGyI9ksXWYJ3B2yC6aMySDIBur4b6 fW1iOwYTKUgPl4+93HR//A+24/+uOeK94BJUWD8YnPHDf91bmFTr8QbDVw2R6h9CTsBS g2rQ== X-Gm-Message-State: AOJu0YyJVhrnovwgGtEPgsZjcBkzwciT+5xdZJkG3Ef/twRYYUwNETp+ d/6BHO/03mplSkTDE4aEDhofNng/e0VnOI9vYAaeEe+8OfHSFS6PawhMM5NgqjgJqmJ1CSHm6Vk F1Bm4v/FvyrQrcz7MkGE4uSknMZedibWXG19JKtMFcVtnt1t+eDVMMEvCfX70ZFSiUg== X-Gm-Gg: AfdE7ckTKFhG/TEMVIE67gu+kh+t1v2cBzUI2RhCLjTuWIROYtD7nS2CP4ZNDP2eDG8 +/kbrq9ru2EANhvlhEGc1wQuqwaDqMuf+F+DNhLD69eG97Am4EfXYYK0ubRqgfrIv56Hp5HAd8h XJABAnuT9h/c2muW+IexKZTKaB9cFa1Iv4xHeT3LYxcksTgt1S0TOcOdVB8VaRVecwdwprvyOmM ld0ojY5GbDF3OaJfzr6aWlpKuiRnDfdHqasYJLADiRcKq5WxV4ZWiDNUrHt4hagTWML2kgpjQby M6ItVG5sC9jLglV2y7a4ixrNtAikF/E2EbfiPytyoLckcgeDCk+hZYjJtOuolvELakwinnjLVJ2 8IoPzjpbZA6xiKSihRGlTPuStypBfbNejgq81CGZXaK3Rd2PlWk7wN0gGaSI= X-Received: by 2002:a05:7022:419c:b0:137:ea00:3f3a with SMTP id a92af1059eb24-139a2052281mr10087368c88.9.1782167386448; Mon, 22 Jun 2026 15:29:46 -0700 (PDT) X-Received: by 2002:a05:7022:419c:b0:137:ea00:3f3a with SMTP id a92af1059eb24-139a2052281mr10087353c88.9.1782167385827; Mon, 22 Jun 2026 15:29:45 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v2 24/75] target/hexagon: Add sysemu TCG overrides Date: Mon, 22 Jun 2026 15:28:13 -0700 Message-Id: <20260622222904.607771-25-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260622222904.607771-1-brian.cain@oss.qualcomm.com> References: <20260622222904.607771-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: bH3txSFZ1abfXPDplyDAq66_SbxBCsOc X-Authority-Analysis: v=2.4 cv=ecANubEH c=1 sm=1 tr=0 ts=6a39b75b cx=c_pps a=wEP8DlPgTf/vqF+yE6f9lg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=gowsoOTTUOVcmtlkKump:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=dSil3A76VgRsV-fRJqMA:9 a=QEXdDO2ut3YA:10 a=bBxd6f-gb0O0v-kibOvt:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwNjIyMDIxNiBTYWx0ZWRfX+sWWbuxwsO0m 4upQzVWjfIwMiAGIbx5Ib7GTkdMwd7j2E9DwpKEfIzyoBb51eB1DtjTm/kdkM3w3lQLPmCLSX5H qafvyuaFV7ysKEh4Xqkwqe6mhMt2LbI= X-Proofpoint-GUID: bH3txSFZ1abfXPDplyDAq66_SbxBCsOc X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjIyMDIxNiBTYWx0ZWRfXxVetHnDsbB0W ac/eXC4o0YcNG2qLUyf6/D9qSWJqt+CNLU8X2SitM/tDBA38+7GxHH5lWw5stLLadjKeySm+pPM +BByTL8JluIN45ErV+M9CTfkxW2tXCsXp0yKnPkAASnFsAPHyL2HrvKRU8nI6Z4YffFQ4mdPhqk iRZodmONBlCNctvcibtBU/eOjW5vH85K7+y00daxDBJtRI2NreKY5HjB7OGMp6FO8j/pMVWULBv cfMr9BzBjACxSfym0M/dMivLHu7BfXPROkE/rnhQkzT+gfmRW+jxkMxKzg1V7g8v7FSDKjMS1Hb eFzCIv3E+bfHs6fBCX4y+3KV+cJYsz3NDxKCE/NuaPdVEXJuSluFnhypMQg6Hz8Bi/dFrs9QzH1 GDBCBwqqgTkBEdvHYPlluDRyiDlPHX1J5nhSyY6yfNtSa0WzDBpcwp65GxVFnZqv17HsucT6hvx iU5gsnw+/jb4EDFA1EQ== 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-22_04,2026-06-22_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 lowpriorityscore=0 priorityscore=1501 clxscore=1015 spamscore=0 suspectscore=0 impostorscore=0 adultscore=0 malwarescore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606220216 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782167591699158500 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 Tue Jun 23 20:53:54 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=1782167599; cv=none; d=zohomail.com; s=zohoarc; b=K3ia/+61cDNXAPFhRRSo1ysFMMD9bCDjo1zR1AQfNU60xxug30qk7BXddmHvvg/5KXhYSKvSG5lDt+DroYI2l8YTezv6bpWoLCVYUQCdUsSxGFCJwYs/BZVmisENCe2eGl3qlJTL5FuWrkEHqeQfEXT8HAIUNsMkndjfxLrLGDA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782167599; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=aqG9giTPW2vGEGv7ezRhnMiHeiHhwwEWrLHah55E2z6uWCDvNNen4JkaK1lyIX8loLDgtoKiFbEUAFdpM2fg8SKEoBTFnZa/ne9BI22rGFaIUdtiQ1ul6LjSBXfHbNr4SjHaazMZOUp6h/3mOeUuAYqSGGl/ipyShMAu83GmFqc= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782167599328571.5049969401199; Mon, 22 Jun 2026 15:33:19 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wbn9a-0003cT-Iz; Mon, 22 Jun 2026 18:30: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 1wbn9L-0003Pc-DJ for qemu-devel@nongnu.org; Mon, 22 Jun 2026 18:29:51 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wbn9J-0006Yo-FW for qemu-devel@nongnu.org; Mon, 22 Jun 2026 18:29:51 -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 65MJZwpJ1612690 for ; Mon, 22 Jun 2026 22:29:47 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 4ey2yjakf0-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 22 Jun 2026 22:29:47 +0000 (GMT) Received: by mail-dy1-f198.google.com with SMTP id 5a478bee46e88-30c42d96713so952118eec.1 for ; Mon, 22 Jun 2026 15:29:47 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c1bd8d78esm10945995eec.18.2026.06.22.15.29.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 22 Jun 2026 15:29:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= A6hX7dXQXO1+fIeZgKUska/ZVbxUwMZyizq5wXsBD70=; b=CID2UqZGazdoc1Zi JIYLg2DovrniH8FGNjYILU/6sDka2L5MRZxfwypMetpwDZ5wyIIPOF4qKIO1sXyP NWCvpI8rgRs9cpBS3ZOr9uMkcHtJ7EEJez53mJaNmGv4OBsg55ViF29twaGcjIei 8bmiFUiPQN4a+cWNhojy1h/nXUSmByFQ0hOpIttnwZtsU2mXeHK/16vn/PiQIopU 3lyf0Rt48dWdp8X19QChrrTgSRLKmzLBuqMTFCrSTK/PRG0RNDX91nOFmEFeGVQx vV8udX/dBGksFYkmJvyGzRJFCuLz3uA5cOI6iTbKDK3fqxqIf4nxQuv0XBS3Eykv hVCbcA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782167387; x=1782772187; 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=EnzTVqghfRfHrUbvQiafA+TnQF5lUjd1hvYIA31Zg9ddeDrqVHzNeNZpocxjqTQEk4 qq7Zi9PEb1KF/OAllpX/trjqe/zMYbknfSuUxt5WYeFxKH02FbsgnrYITLOP8SX82P59 AcvJti7kw3JflUHuxNbFVR9oc9XwQFYuSzNkp6gKK54/QnAbdGptSRAjQ1Z4zTUYq+Jw ggVJ8ArpuibQ5Aw2vOGoEuO613yBxn/4YqWNAZs9bPNKKrSUUriTIC4UiKK60CNbygUa izdl7he0rc5p9BnQA7lWBeYjI5TwzROFX7Ei9v2UjXU0mi7Utuf+qWRrPeTj8GAj+dEK ywQw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782167387; x=1782772187; 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=DQ14az1kvXOWOXU3JweBRQ56CEDWTVHMFGZodMJl8BeUZN5jL0DgXafzcVeI6K9na5 uTsRRwhp3rX4U8YX0G1I4i4ZBGwdchuIwpyYi/TGUplQ2VNp3CVMpoAyDZaLIjZuuPyv 9z3AyUXQnLy29BIsD7Y0IWkPvo4+OqUNlzJQ05OiG4t9A7x0Z8D01en+qYv4PQY4pQIF NeTu26OP+ZSNNFX1vxIsYXVOg2KYzkeudkKbDzY7rBibe9mgI+vp8WBIEy3/4W2kuQhG zZGlN4N/N9YnVSSM5xlLEr3E4HSFXOLcr5U5aJaP28betJI73YaQSB0spd9G5s8j40eu SK8A== X-Gm-Message-State: AOJu0YzOlHCm6owcoIp+SsX1hPybfH8/Ctozn9s6O2zDMod6lKxhU+dS kX1m+ApgefAppgwKlH/2fYPeeGCIqIAZVQ9UBVvuK/Ru3dxX6ZW0bfe1DBdhqaV+zAG1Ajwx4iE JGsaPkNnBmoiyAzsh2+WTU0UAGOl4zrQEX6H+nhxWTtAfiR5vrOHFtCC0QpOEN2HCFQ== X-Gm-Gg: AfdE7cl1kv0yb2SbpkIcNbo1wMDkBywS9PsIyhtrXCz1B2QdyC5cljFqAR0yjcmv60w gK1GdawYLDmBbmY+MX9xlDcG6ncFaBfZwYUNImV+AIdnnGi3KYLRssOxW7ahJ+eRYNfV7XH1ipE YjlOKsNfrJ6oUnFLoHRn+tcXv4ThDl1MHl6rNv0pEYHFIqczWo9XFC7H30Q7Sa2KqWk4iG9o507 0acICtBLFZ/o8/4CQaYcjsvRkb+Skn73jPEIIl/SBHvl+eQfertIIFHb84Hkcu9YfbP9yJeCOIN bgBN9T6i7Q1oEjWlJOhC8NZydEljMqpxm+Xaamzs8RppnZa6a/xj3xLnXE/ZtP26aKmtWyp7W0Q D9d02p0jtvseUoHAlRfgLuaDOeu4eO28CVxM3ROeAoIrQimmspJ1M5kcOWDs= X-Received: by 2002:a05:7300:641a:b0:307:d4e7:b177 with SMTP id 5a478bee46e88-30c06e0cb8fmr11846484eec.16.1782167387205; Mon, 22 Jun 2026 15:29:47 -0700 (PDT) X-Received: by 2002:a05:7300:641a:b0:307:d4e7:b177 with SMTP id 5a478bee46e88-30c06e0cb8fmr11846457eec.16.1782167386678; Mon, 22 Jun 2026 15:29:46 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v2 25/75] target/hexagon: Add implicit attributes to sysemu macros Date: Mon, 22 Jun 2026 15:28:14 -0700 Message-Id: <20260622222904.607771-26-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260622222904.607771-1-brian.cain@oss.qualcomm.com> References: <20260622222904.607771-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: c1x4JnzNyH1zIfAEzqUozyrX_puvwD92 X-Proofpoint-GUID: c1x4JnzNyH1zIfAEzqUozyrX_puvwD92 X-Proofpoint-Spam-Info: AW1haW4tMjYwNjIyMDIxNiBTYWx0ZWRfX29Oy9JDwNSdi i7pr9hY4m8NFxkkGfS2mdFJAN+w8AEma93MYRDSaNoAzhv5p/L7W9XYuv+oK/mGiyXe0YaloOFT cc+G1larYRNLs0VVzY5kt438V3XJXCQ= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjIyMDIxNiBTYWx0ZWRfX/gIKQTPL6TFo eV8TNDlU1wenexjhZKrWEIEEMc5ho5NVxvjk6Q6PcZ/OWj9XNJZrQH6fgWWOhnMs5DW7FDegW4C v7L/8Xkn0YtainbRayfaRaTp158IlsJgTYYF0p3gsZ6ut1xAcqWg0Qp+ERnKF8Y1f60Ofh+8qAJ zUPQooeTZfK0IOYqqP+YFgufVamJyebZLkJoWi7TRW68SW9WI8vdf1DIicKDBdSx96hQbRXpQ0s u5Fv6BE8yn3PBj/geEMC6kQE0GryqCJpM10OOiM2RKZIS9VHNSD41KCZKodUY54NXYVkmV1NDg8 J9sj5qEL0Iw+C0nEJvWM8z2oippPErXArKIXPZ3B83/CzIvwEBh+KvcKDS7Q7L/fITOuYRV+voA beHwy9NhYfFtV1kgzW859tDNRBnusJ34lWOX4pURv3v29HkMzX+nYq7VQljv8LN1Gtv+xdXavBJ c7rnlzMgFlXpz5nZLzg== X-Authority-Analysis: v=2.4 cv=YLSvDxGx c=1 sm=1 tr=0 ts=6a39b75b 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=YMgV9FUhrdKAYTUUvYB2:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=jiUnMIOmsb6gMTORg9AA:9 a=QEXdDO2ut3YA:10 a=bBxd6f-gb0O0v-kibOvt:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-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-22_04,2026-06-22_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 malwarescore=0 bulkscore=0 clxscore=1015 phishscore=0 adultscore=0 spamscore=0 suspectscore=0 lowpriorityscore=0 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606220216 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H2=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782167599801158500 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 Tue Jun 23 20:53:54 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=1782167631; cv=none; d=zohomail.com; s=zohoarc; b=gQNnHDikd531uZjLbHtorFLzZB/hbg2HZycwsnKiD4ZCHgq+ssEkNy96k3b4yyFABVgT+bGLTeK/Nhj7r8MoeGyvgCQgtMv+BICe7GoyvVsaSJ8XAsPZ1sW8SYAfPDb/pQrb791fvw2mqtULHX5/Ld3HFiV5FNDXfTpLBkRMKgI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782167631; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=fkZIzME5vNnsWEZREqlj+avufpRUwwgf68Y7YkKMZKpYpWPoFxsESCg68epK/uzl43+BNR9AGF6ojqynNL3foiEnCfGtEaunI2dnFYK+LiufoyBi1i0Rc93Kt7vK13XqcuFZiqGlqDb8uccLeETjWSrVOnht1WKPbTsjn7qqMNA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782167631217954.7432250448401; Mon, 22 Jun 2026 15:33:51 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wbn9b-0003cn-Af; Mon, 22 Jun 2026 18:30: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 1wbn9X-0003aj-F3 for qemu-devel@nongnu.org; Mon, 22 Jun 2026 18:30: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 1wbn9V-0006Zn-L8 for qemu-devel@nongnu.org; Mon, 22 Jun 2026 18:30:03 -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 65MJcgPN1938794 for ; Mon, 22 Jun 2026 22:29:50 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 4ey5ye9wua-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 22 Jun 2026 22:29:50 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-30c1f6c5559so5827505eec.0 for ; Mon, 22 Jun 2026 15:29:50 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c1bd8d78esm10945995eec.18.2026.06.22.15.29.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 22 Jun 2026 15:29: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= SxgjDN8stbE6SIBeFPtrecas0sgHajmcu/RG683JGPg=; b=aL+jZyf1bXtmE+kO lmDyO4WCyaFhOsJ8Fu1hwFN98iBRjOF35kE3JsnWw7h9c1r8y39G5S6YUDOZDHuK sqmZAPZQdcG6fKOT0WkJkMwRhdd2ByRGpLuZEMkgwUrOTEydUayUcQi5wGcNAisZ +PW4mLd8ksYc33rU7OtVSKLJppo8Aoec0j9xFwfyBVdEqStICOAh7t0X0JhQRiGF rw1i7PK1Un4rVmSpWx+j9CvLT2r8fhTAPZxNPvDeDICMsBKXB283GJMoQ2uN5Edd YgeGKAvH1hzGYf64YguZOgqWN5g7gEDHiRNU9PKmHT8Lm1dvycXo/JEbdSQmXCgz Si3KWQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782167390; x=1782772190; 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=WeazfXsaAch3xLJ9HPCRO4Za7xFSZ2IVmpxFZnn+7fLGzFP/IaJfVFf9zaP09TIDQI 72iGDf508m7x3YpPxbSGyU5xL4Wvvh4LkKqpPIGL+L74kbVxFyYJhCoVa4TXYcIXIX2z 1QQK52wQF/MYjpNPZf6gU34oKM5RhjH9WOaAr3sA3+jPFfQjrWfrQB5mxLoEgXrwcQcy V3xkzVafXRkKsq7MB7ZBbKy0fEl7RksED5kLBJauzsb7pJ46OfJKDIJ6GUps8ndsf1TY lXghh6hFwSxmBkCilzMKgIacVD/aCGaIyLLkeejNKUDwhxqkxizVUihlRvxp4vn6w0U6 K9cg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782167390; x=1782772190; 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=npiN00WXt9+/HESj308z/NzWbeG6jPHQQc9hLgW54oF9m6jh5uDrcFZ5LdJPAH0Pj0 bwIjQKEJrludW9yye9FXD16yp6KqC+AQ8gZqyjQCDUU5HzpyYpJost4HX0c+eTgRHmui kjOs0oQdHJNSgFl0bbPEDUOTwYEx4/pQRjfDCpyanH7C5iwHLqeKi70KndHAN7HU+PBb /RlXJWgXw/Jm1fClwX78AJZOWGJWVPYQ1Ytfoz6tVkpdyIWgxfAEsvanIZhG/SekaC80 3qFPpgY7+T3yqCmT4ABtcp3h2OORHjl+RJp2iMgSHh6LrxkutD8HZRuOtV0dgJxJoa02 VNhQ== X-Gm-Message-State: AOJu0YwlP6ngPFJG+sXwIXc5yAvgxNfDd/DdE3qAgv9wwXl1vqZqNxDF mjn4Gq5MrjLKpcCBllGNVwAlJKUDS6Qc7MDEcf7534QbBuMD83sfGecdrp5QGI3gCoihCS3CbPS W7LrJutZmnaDJMbHyFf5rnffaeOOIYYj68SbXBMPW57JA9R6TbY2qQdr0PyWrzXkVzQ== X-Gm-Gg: AfdE7clJdXbG3ntd4n3E+C7TBMISkw7w8L1Zy0oWk3pX4tZb6/4qs/bngLpy1ukIMiL aE6Vf3Zqo9MZMJpprd4d1YjsobKbI2M9YkaFZajGTKuxPl0snu3tojorVIiWeZE+15zlm663ufh pWNI3cI7Mut0AaVExA93IvILD5I12ExzVcwKHFstzoHbFi9Vqkrpw6CVgSYUVorwDK+mNZ/vwzC gBUACFFAF2HpcHdo5aJtOZsm6Fot8QgR/OujYx4+GT5BlUYDAEbDZivsLY3yBuKcUb354P5OduI urP7D7ZWiyd/2llbETJI+vnKubk7JEz7lqtfp3bCiDp/O8qJvLqhFlL26FZRGGu9LNgG7wjxoEK Vnt0IGT9kpoWNPRby0Gs4xmbXVxidKS3gX/Vbx6NnZrZKCNE49Nrxq5zesfs= X-Received: by 2002:a05:7300:8bab:b0:30b:dd58:e155 with SMTP id 5a478bee46e88-30c07156edamr12657321eec.20.1782167389539; Mon, 22 Jun 2026 15:29:49 -0700 (PDT) X-Received: by 2002:a05:7300:8bab:b0:30b:dd58:e155 with SMTP id 5a478bee46e88-30c07156edamr12657303eec.20.1782167389013; Mon, 22 Jun 2026 15:29:49 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v2 26/75] target/hexagon: Add TCG overrides for int handler insts Date: Mon, 22 Jun 2026 15:28:15 -0700 Message-Id: <20260622222904.607771-27-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260622222904.607771-1-brian.cain@oss.qualcomm.com> References: <20260622222904.607771-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: F-mnpmwTsKICwBcOTdysAFL36aVzp-4F X-Proofpoint-Spam-Info: AW1haW4tMjYwNjIyMDIxNiBTYWx0ZWRfX08Zsptkt4nCF dqzJso5Mno4YqQI6rhaTRg+ZLCXfuNOfTRNpmlKkP7Qkyl/VTq0L+sbIWK5KMUXgr2PLbEtHtSy QYU0VSaiThTsWQb6bMRmXPSgc5s7USI= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjIyMDIxNiBTYWx0ZWRfX0Pba/UXgWyh2 a5w0T3Z9unfXUDhJfEnaS0FfgRioyEpHLHjpITBIy4T2v0lBudF9xP4+blT0ia5cKMArC7LA6Ad OYoruXKKzxZVE3kLfVEQR69Zdqg1mIxdMuuTRHxS2ta8OvRHEAlE96I/CtPQrZbsiakkjXzztfT fHw10FRsZHJejWI5vcqv4/ACUjDch1OztdpwhP67MdSEVJ1Mmsb6usyygN+uQhpDoqH4oJqmCUT UCL/FMOFF3+HTL6bzroN7lW7AsefGyuYfkIKHtYIk5hiPzrS9o55N3VT9wywS3vPGRJza2363ML /is3WAxi4LCVtrIfeKpudOmJliqFxAhrFe3ShcFXnJqTnDmbTuNNOFZCggPZg7eK6s0tJIPymq0 Vo7qke+ww1P/ro3jWXXjCWZgO6/lKoYffYfpLmOSYmHYiIR2hGNxcgkqsrPKW5hQHuhZnw471W5 zwh+cbAyoQGuAPkA17Q== X-Proofpoint-GUID: F-mnpmwTsKICwBcOTdysAFL36aVzp-4F X-Authority-Analysis: v=2.4 cv=YpI/gYYX c=1 sm=1 tr=0 ts=6a39b75e cx=c_pps a=Uww141gWH0fZj/3QKPojxA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=ncxFUDX8U6Z2rYVbhVQA:9 a=QEXdDO2ut3YA:10 a=PxkB5W3o20Ba91AHUih5:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-22_04,2026-06-22_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 clxscore=1015 spamscore=0 phishscore=0 priorityscore=1501 malwarescore=0 bulkscore=0 suspectscore=0 adultscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606220216 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782167631754158500 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 Tue Jun 23 20:53:54 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=1782167589; cv=none; d=zohomail.com; s=zohoarc; b=K3F/fQGB1LdpfCFA5TDqNlDcIlawimZ6LZglbhPAURs9upWBHqpAQpdHvTFGk70pTL+Z71qO3fspEaFQsDwtPwobEKCeILyUSCrrpURy73R7DHYSURMR3TYZuDZNVAG4xfDsRm186Tni3PWdn0vhH2C/QUchuVvH9dO5Sc8+XEU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782167589; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=jujv0Jxz5vl8DR56Vtwb/+q9qYFscQr0+VSnwaqLboEU6/dgrqi0P7DH0oGubdl6UaRkILwUeqHDc2TtBbK5hSASzGngdT0n3ydaFizc9ws6WTHckftcdudHEbgZmAr+uNWaiLFPtuwiZyEzstHVXRLQBaflS5nGGWpXWoDaMuc= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782167589720510.85610482414904; Mon, 22 Jun 2026 15:33:09 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wbn9V-0003Yi-0Z; Mon, 22 Jun 2026 18:30: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 1wbn9O-0003TQ-F1 for qemu-devel@nongnu.org; Mon, 22 Jun 2026 18:29:55 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wbn9M-0006aH-Sd for qemu-devel@nongnu.org; Mon, 22 Jun 2026 18:29:54 -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 65MJZwIE1541909 for ; Mon, 22 Jun 2026 22:29:51 GMT Received: from mail-dy1-f199.google.com (mail-dy1-f199.google.com [74.125.82.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ey3a0tgbc-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 22 Jun 2026 22:29:51 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-30bfe262ef0so312209eec.1 for ; Mon, 22 Jun 2026 15:29:51 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c1bd8d78esm10945995eec.18.2026.06.22.15.29.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 22 Jun 2026 15:29: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= N0iAGziQ+4iP1vKIbJyLWLa6evXdgIMUYRbL+wxICtw=; b=Za5O2uIVWFqUdTkB asOgH9kqfm64esWOovfXcpkIdEseHaj1phEGv78Gf8gAsaG+YTeyvrwZAbT6RdfN XWjVTKdhbwdGjpfm3jqv/qyUGk0woyrW9Fbvqz4dBilvL82qIaEEW+9joEznotWT K2WLVpD37ngmuRHg7tpBFOuweSk988E4GR40j/dfrb1M0W1kyh03KycHdVOilMmH rNbGQbiq7fOHixeYncEDSwZyZrYifvaeM/5gaq2ASpLZ5w05+QAf9xcYP//6zc5C irBtkdvVTeyb3e34//4PP0YJIx9MihP14klIJ7FM73fojQnHn42QSXoZ0EkEdCZy PL7Gdw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782167391; x=1782772191; 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=C+io33v25L9aqNH5FJlPxE9UPcBhBPPPtbla4/mTYid5LRFm3NGdMCvAwhRQ75LczN VHBcij/BXlbJBjOyP+GZMi49P1wEmtXLVxJIRIZkmq4dQxUwo7EeMZG0fxH5fOYiknxe odXjR1lC9lqgU7Uce2mYhtNvz0h6woylEQcAvFcDqzS1aRqlfnDwPiYGNfPyeyuEyPNZ sj4jtmpoTMIf9Dv7VWajgyjH2YgqWuQnom2lqs2krnviQ95DrmPPhdYCpwjxicoVi7y6 uum6d0xYU3YNqd/owSfRL3YKWXUm5reZ6LN02bbdzWtdNWIJTkMJL+8hbdwWKyrzeaMU VWzg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782167391; x=1782772191; 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=TUEm+PqFhXlU1ouwJPtsmwYNxGJt/y05h4V1hDgEuqHjVgutG3htdxw1Ko1rmf4x/z +iE+X3L+EdpfnVUrlhpL+yu8aQWc7RblP3dicdutPOQLf7DruuQTWMiNGCevrOKp3GPJ Ziv7Al1QoA+BLmOTV4XzaTj7j9q5CZXZ+VpkbJR9F4NrNF69vtqQFP1QtojwRoS6b0wo yzX4pyvfE86SV7KDFew/6hNx/l9amAU7e00dZHmgzmwFP7e++oLKsXPlW0jsc0TeNij0 mxTzUDb8VwIa1t6pZTKF628vAoicCwFqGmvEPx8rEwf2481qCGe/gfW6j0hm/dlzJSi+ DudA== X-Gm-Message-State: AOJu0YxkmkyGsSZf26Q6vRoeW6+ED/e9BgenvHip94pxSAfgbqdk9NRr 2IHSTCCh7iVjyc3SAfgHJeY8Rl0huBz2XP71AGZhXJtmXPQQcZjel/hHKvWBF+xUouIv6qLHz9B 4VlJBvRDvEpHQ4K3SYuRVY1+VNvlElSH8gBNoCsDsYsQTzvJ2/PsAMfEuP5y4fNJpZw== X-Gm-Gg: AfdE7cmd0Ib0xXiwn6PZDfKM3paxiKj35EagAO5sCiDuEaBrGPbhisrQIAb1IP4r0ZU 63JFgHXSR5m1LSYVoFDGlqkmJCMK54zhYNqC3GZMoHo355N2a8FPL2PkKqYBDB8xEhehCsfIXPR YccSsh7M/VkAHly/f1frFJ/wz7SYc2A3CuX6G0YY6K1XK/ClQ8Cxl3Ny/Ym9X153ouyrCn8ORth VsTa5caM0lFRbWvB5RFtio0vgp1ereypdbudoFw371mSm81CwRe7RZHStV5CjZjZMO3xOmzCree zhpRjH9GnyTk8SDB43dCWqJzO/IzjdmeLZt6kzbGx2Aeg6qREbmIN8Dv9f1Bn9v/ym/XI+4pYcV kMQR/L6Jh/qNNOHoxoPOZVHhNNgwtvf8T/Ywv3s05jnAa28vaJNj9GzAyyW8= X-Received: by 2002:a05:693c:2887:b0:30b:cc4e:6396 with SMTP id 5a478bee46e88-30c5553b105mr698660eec.7.1782167390465; Mon, 22 Jun 2026 15:29:50 -0700 (PDT) X-Received: by 2002:a05:693c:2887:b0:30b:cc4e:6396 with SMTP id 5a478bee46e88-30c5553b105mr698645eec.7.1782167389929; Mon, 22 Jun 2026 15:29:49 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v2 27/75] target/hexagon: Add TCG overrides for thread ctl Date: Mon, 22 Jun 2026 15:28:16 -0700 Message-Id: <20260622222904.607771-28-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260622222904.607771-1-brian.cain@oss.qualcomm.com> References: <20260622222904.607771-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: AW1haW4tMjYwNjIyMDIxNiBTYWx0ZWRfX+KjjizXTqV78 BjPNegZxCfz1wxtvKq700HFAiDAJFUnUaYYLiQbxtFMW1iIqI0VuAQ1cDVDdUe4d0kem3v7a3d5 oYEbd4BllzVXGXNbsmbjmbUrpgdF/oA= X-Proofpoint-GUID: ar8Wjf4Dtog-nsObLgm1-Gpac5zYwH7D X-Authority-Analysis: v=2.4 cv=UJ7t2ify c=1 sm=1 tr=0 ts=6a39b75f cx=c_pps a=cFYjgdjTJScbgFmBucgdfQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_K5XuSEh1TEqbUxoQ0s3:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=t9Y8JitlK4h6-XB8aEcA:9 a=QEXdDO2ut3YA:10 a=scEy_gLbYbu1JhEsrz4S:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjIyMDIxNiBTYWx0ZWRfX1JCjwIay07Af 4PyHJIWgCuq7XDj34RX7UVHOk/Vv67FWZ5awYKCeX74UhicGQhWN3l/kQk3CixJ26EvNhBCCFKA 111FxiXHfNAl14a0a38K9d9dkkV3TR9qONrrRSoPmQFSI8+7k66YbfZ+eXxW0nqv2/z95zIdOO7 i5vUmLRNkHv/eb0zNnhVFuC3Rw+Q6SzAybdjLw17m4CW+CK1bbNuelhXFLyySmOB7pHN9cHU06l AshLwFDJ2SrQB/Xy4rrw7Hqa03lVmrbv6gj5ALtSoo7QUm4HL3iiOipw7LMUBQpuqhMp/aazrAR 1LQ2Ixhnbs+BZhhGu+1cdO/5JHfO57R5ShBtNZAO6b5vlPO0kMvodahYSYfRvXHzV6bDwuLk2oe 6FPiTRi/X/XZucEhyM17P0cwpeFKBaOMd/5s6i7zvztsQLT/tlDmnIJwm36Kqklcf9bDkvp1oH6 2eutF8ie+lPchit3E8Q== X-Proofpoint-ORIG-GUID: ar8Wjf4Dtog-nsObLgm1-Gpac5zYwH7D 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-22_04,2026-06-22_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 suspectscore=0 clxscore=1015 bulkscore=0 lowpriorityscore=0 adultscore=0 spamscore=0 malwarescore=0 phishscore=0 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606220216 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H2=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782167591539158500 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 Tue Jun 23 20:53:54 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=1782167589; cv=none; d=zohomail.com; s=zohoarc; b=gLmf17u4s4WVHaslRr7JK4MUFoUSQcvFgFCKrl7P4/0oQqlsjZ5osUVsUqc4OeyfCuBMFA+2a/p9kwApm6+KflxcRXcyIphLI84iV3sqfsls9Mtz1pDdxiT5/z4xjslOjhlqzkIdezQMLmBIKDBsFcCabS+O1qaooTE1WuryKHk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782167589; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=ldSu55G0Cw2NwPzVr0B176qsDVU9BpAt8w0epoM0WoiYCon9ElM2ZVEwIFzL1R6LexwdO18aMHVb+ekwosZ5S52zCeNFGgUywUorPa+I9h9aCjXc5+ta+ueSf3XvyxFFk+2EheknifStQO7ZQMpwwBfvfPLDYbEPUgHVWdJ3gTg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782167589296212.53226295326624; Mon, 22 Jun 2026 15:33:09 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wbn9d-0003e2-AK; Mon, 22 Jun 2026 18:30: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 1wbn9Y-0003bd-VG for qemu-devel@nongnu.org; Mon, 22 Jun 2026 18:30:04 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wbn9X-0006aX-6T for qemu-devel@nongnu.org; Mon, 22 Jun 2026 18:30:04 -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 65MJanKG2177025 for ; Mon, 22 Jun 2026 22:29:52 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 4ey37hahdq-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 22 Jun 2026 22:29:52 +0000 (GMT) Received: by mail-dl1-f70.google.com with SMTP id a92af1059eb24-138acbc0e69so18058968c88.0 for ; Mon, 22 Jun 2026 15:29:52 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c1bd8d78esm10945995eec.18.2026.06.22.15.29.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 22 Jun 2026 15:29: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= 2jO0e8rIhKLjhW5IYHunqKRgXza1ukawimSTttXDmgI=; b=PItKmDR6u17ZGAOh Mg7zcSded5EfaVF9EKa8LtEpa/57/RIoSS1X0N7tu2SFDXIMNWhH0G3FlYdKjVZG 3P0FNdQS8yRCV3aFOlpdAURfDCy82hi8LSuHA8akiF+bimXFlO9BU3vN7HA8PHJP gj3y8Klnnlnu0CN8D4uZdwYKm+qZkHv+YWhlpNhWP5SPM9TWTqrqYpDwwsothGUq oaRVoOz3E0DesLSz9l3Le9tkmbosOACfreiJM4PKmtlNJ6b04FrB+C7cFdVXNB1e i0bgewx3X4bG4biUPxx/QfShe6mmKJUx2OlhSoVoA36NlsKtGf/EQPax23zlpYf5 GcnCdQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782167391; x=1782772191; 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=azs43i9ceOhFfbtuRZdUjn4S2Qw8tnzemL6utqqQLWoVs0NYjcTXF5kGV+6rVkTzEJ Z6yjqkJueVz2eSXMxlhOIbLTS6l3BES+0/siptAduM9fXtlsbihTn/z8nXmN+CekpeAf dR8KQZ1fiT4SFD7UJxM9YHMoGCgXUmtEEUUAXEQ46ps/oJSxlwDjaQvpwc/Igiyuw2lk Ml3p/p9XiSueY+LTY3YBLjtKG6xc+L4u0hiEMqFfukYUN8cuFUx1BWOPrkOBXLQmC6SB 2UJUa/f+KFgoO+H19H+8h/IgzL4TftuGRRLzGP4hQGidkMqQmvmovuiKyK1OqfcWRf/V kwRQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782167391; x=1782772191; 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=kCjGRmwEJ4I08+QiltL6rMmsaB/5wBB2FML/ar+yW3x9ZY3Ht9rO35ulENVa+LNjF0 xSWllR+GG799hU8FlP7cyO0+3zsFEkiEbrqMrOiS6udDb4ncciFfl7DB4lYRRUpGkSVH g47lYdzmp25NW4b7jPsZkpQLAFr6kT3pt/X3KgOBYV8nYs9xuK4qNY4JNHzRKH5uwb91 Ua7YPUY3469rr2gm3uI8JIyce1O0BGngDO+mguc44LS6Zeui7m23VUlNjEM/w99uBSyU ep1nv2zNMmGjsYKWzSMYlYBpO65vhTMjO0LQ6HX68vrj68zaKlhQC0KGq+HEzkcqZFu+ 55Og== X-Gm-Message-State: AOJu0Yzmdcjlhuwn+mueGAsA3Vv3ePV6VSE5I8+tWQLuQaMSb7RyzCua mmgbsIKVAwVguBcsY9LN8TT1un+/7EJYTeuqMnEd3nGBxTzpA4lBndrGEtOONJMRfX5j5iNDjhB BL+dlQa9PW2IVMo40ZnfyzXnuHjX9JoKHwEGnXsNsKVv1frJqM4A5wrqzJ2cuQvHTgQ== X-Gm-Gg: AfdE7ckS2mf58MwWcuOZSUe5TzR1jJCemmUrXjqVih+l4MmNpaNR3oOBgcWNpP8sIBG eOWjvMwlkJXPUAakIvXEZnS08o/QOWaXWSzGAVk0ds9DEZTIouAmqzwxLbUlYMdtablfPpEf0ps 9wgxMw25Aoy36Jaia0Al7UA4UTIpvTqvtQRyki45qht6NKfnEwYi7WrpWRGmUFEk7QxbzE2xx4w u3ppKTwxnKdkqjJ802lT+TRlQ9jh81tfJp+mxrhszHsiHnh5QSgW1i93qr9TO/Toyb8J0HvJh/I YLJ2EteaRdCvKXzWHxLE1caqN91xqGkqVSfiglyDVX1PcryIpZjjsOxRrIqJEeFfMwap4S1qVBo XB7sOe0ief5fjvV4cuRl4GI+YmPgm3t6uHmRxYeu0vvG1qWUfihGQ+ilD2hc= X-Received: by 2002:a05:7022:4397:b0:138:5ae:3eaa with SMTP id a92af1059eb24-139ad6961c2mr9322100c88.9.1782167391272; Mon, 22 Jun 2026 15:29:51 -0700 (PDT) X-Received: by 2002:a05:7022:4397:b0:138:5ae:3eaa with SMTP id a92af1059eb24-139ad6961c2mr9322084c88.9.1782167390766; Mon, 22 Jun 2026 15:29:50 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v2 28/75] target/hexagon: Add TCG overrides for rte, nmi Date: Mon, 22 Jun 2026 15:28:17 -0700 Message-Id: <20260622222904.607771-29-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260622222904.607771-1-brian.cain@oss.qualcomm.com> References: <20260622222904.607771-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: AMvZrtxlOH8TD9Tn45rjy9o4QNRt7I2U X-Authority-Analysis: v=2.4 cv=ecANubEH c=1 sm=1 tr=0 ts=6a39b760 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=QG2uPxDT_WX1JUO730YA:9 a=QEXdDO2ut3YA:10 a=Kq8ClHjjuc5pcCNDwlU0:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwNjIyMDIxNiBTYWx0ZWRfX0fROjQVDBm/W F0zA99xBPAE+reFIv4KadvyNKAZ0WR1jO/P/ucq9jQ/R20rgP7WQnjUVlr/xu0ONG/BbNHs0b3q HinREf0HcL+uXNhc/cMksPbFAFX434s= X-Proofpoint-GUID: AMvZrtxlOH8TD9Tn45rjy9o4QNRt7I2U X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjIyMDIxNiBTYWx0ZWRfX00mg9wuuiHho jNpMmdlMw++yGySw5Ixkyi3UHDo605eWgQrFwG3zCCL/KptN56ChgUazyIa04WA2xFv+uzANTz3 xXwfufjDvQ5QxZcoQhOCYEuIgxW71oh3g/26i9+RtxSm0zFwF5ykNeRh6wdBxroHVhidqXJkzlN 3JnFP0xXRA13fCAh5vc6KIRVy4mzOE71BxOkrKBflkvrA7L/YYbmDQ/2ksv8OLAcKTGlkTICk4J 0cIS+ujInVFkhewkZZ3k5XpfoUXRJwN6iKk1bYY/hNdKXhYcmUcBfVhs55N4xEJnypJzsrzlSdT kWocqlDlNYSLfx2jtCTD8LkeveJ+wLhzC+W42qbBvMW9Xom9IUKIxXQUMhx3FPE6W9TdS4clehj sCgDC/f3mfUjyg4TmDIalNRL316b6aTv7tATde4bW3rjhfaYAG2wp34eyV4S0yi9G4XPPmk88oA UtZuhqZh2LiVd5Q+8lg== 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-22_04,2026-06-22_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 lowpriorityscore=0 priorityscore=1501 clxscore=1015 spamscore=0 suspectscore=0 impostorscore=0 adultscore=0 malwarescore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606220216 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782167589589158500 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 Tue Jun 23 20:53:54 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=1782167623; cv=none; d=zohomail.com; s=zohoarc; b=BY5Q0nRE/u8Xtsid+ghKaq92cE6a178rQlaU6ZObJMkG0NS/rhYiVAIxnobLTI1xH4ly6+yVeZpWuT8YRNCg5eHUvT+ur72zJ/TSIvr1m6hAB7vEQL07ymxjaZttcRwbOj9/pT90BGmF+dTEyC7AWlNsWkE8DQbymQ9hfkT16wc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782167623; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=gQ9fZOYV0yK++WTDIf15SLantpqBXxKoD4ES7i7oxc/eb8qkGM2RGkZkjOWVoGfFCFkcfcYmrvSyGcIaK4cusE522JZWHYEm42NBTrhXfzbntYyNaqd1XO1JrjeOA7QZkYlc59r+jPN/FpIilHTdhLypDmbzCr1jumCcqlDHFcQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782167622919481.8660914664555; Mon, 22 Jun 2026 15:33:42 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wbn9d-0003eQ-RB; Mon, 22 Jun 2026 18:30: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 1wbn9a-0003cd-Vl for qemu-devel@nongnu.org; Mon, 22 Jun 2026 18:30:07 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wbn9Y-0006b0-Cn for qemu-devel@nongnu.org; Mon, 22 Jun 2026 18:30:06 -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 65MJawGg1902558 for ; Mon, 22 Jun 2026 22:29:53 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 4exyn1ukbn-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 22 Jun 2026 22:29:53 +0000 (GMT) Received: by mail-dy1-f198.google.com with SMTP id 5a478bee46e88-30bef75a41eso5571225eec.0 for ; Mon, 22 Jun 2026 15:29:53 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c1bd8d78esm10945995eec.18.2026.06.22.15.29.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 22 Jun 2026 15:29: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= ydI56hjj1K3zzOwtbWnVUpF9xkvs46kCuETc/C2W1YE=; b=PtD2UEaIfFdlD8J0 YYDYJcTTAu84eQkM+OdyvGsDU3PmswFu9u8IwbmcRvC5vPgNAJOOZ1Kw/5VPx6DV lpn5CaWGJkvSdM1LRUavIFHoOAor+GLi5+Tohn4V6MlpcdNPhldgExbpbbqwCzLj c+nyk44X3CJJjl2qXLt0HmZvollV9JhOAhdKKHlvoYXchN8Rk3Bed8DsbX57rCRL TGopd52W89FXFUaNlg6D9gMHFDDGHLR9bYlb51+jubVmE+OMO5fMmu7V1FNTFbzG wu/E6Tuf05vzPNlTh2RbiSR10k5vb6b5R+CHnrqjt8bBgUaHVI6qEXXkild4m3py 9wMJMg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782167392; x=1782772192; 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=OpL/ThHQlJWho8D1PNcbfDhGGwdo7BEd+RQluX7LX50FIDhLQG1Z1vWc1OpVMluSTu IOfg1c9PB66NxHSoisiAhmsAot/wJe0K/GZ8QAdYU7y6KSUGsM93GjgbmX1AyZBzTJVz YugFr6+xO79FdMZU/TKl24vBS4cS4HMuEXFAZTorlkSrwhRlkAdtzxxDtHgXajwjZFr/ pYHYuLuHE6f/Vmy59RmiHJc5DHs0Jdbwvx0zOIo45axwyRz7bxswb9KKIwAgFHrlxBOz DakeWvGysIRCg/vxEbrVbJznkgG9dk/r5JEk5W70m2kjL/vWr+3OpqC68kqryW+nxSBI weag== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782167392; x=1782772192; 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=k0Y3SF3a+hDGnHuRjk3KMQUe3RXWJknPgf+Eg+N8R7qLXONupj+QHdGYIp3JCJOk6j eccmWl/x9qKDSRJ/eWhMd95RGS1dzXQxLk554jgUv+7pEYwUL5+52ZCEJzGrh3rCot8Y sW0dSoyH2RgiBa416ZY+774+ImNGm2ZrjaA0pa/DEPyEUG9lCPA0IA8W1vN3HFPYGIGW cX+KNTn39DMH6qMPAtmZitmd5kiVt8tUqVEcDcJk1TrQEe7G+XRMH+E9Cizev+k68Dfo Mnr9/V3RNvbMtdnbzM0qd/fXuZ4slu72EmQ/Uoc/V2ezAB8Q+SgaRNAYgJ73fuc64Nq1 YvdQ== X-Gm-Message-State: AOJu0Yzf28zfcVxfnJDGGrQHM9lDhaXUtKpWB5qzNc49/CV+7BOgzDl/ whu5Xgyr9qgga+zWE3M//JdrQHLCAkmg6tMbVZrkzjnSoTzElRYI7PPqi+RA0iQLQJwTxb6B9rM WG8of9lGIZTvQg9mKBe9zVfJUaMD91orJ4VoO6kBB5SZqojtOv8Tqzmbj0TG41S+SZA== X-Gm-Gg: AfdE7clc5lrUNICrOZlFhn2FotM6zAXpnFRKbvDPXQWYztp3D4z77wF3A0TDArAF716 AVCZwwDq1/7XtlDB7m3YiYWAYZcVGfFI5Kygrh24igyBh5/Qmr25yZHFux6zgdXV+2gDUDDTF+Y c9GRSfeuZNbL4q74eHGn06CrZQBmYzNgVdBvqdskCWvcUWsHZim0T3jiARpbPV+0T9PGp1V6M7/ wWa4wx8BnSEFbn9hz6cEUrblP/mrD6/GVVl3AuUp8oYom3SD8tneYkEDDIf/jxTDd5ovfGjG56Y 9DOSOFAkY3mK7H/eA9tlGuZjmfxsV1xguClXAlQ0Ylxq5XKYHkPbihJgpgbezoTHIcY1ynRP2N9 HwnfTSFHO0JsB8c7seFw2bjRg0BfxYrny5MXhaZiQYMBu6H8YWQ5T4KUnhNw= X-Received: by 2002:a05:7300:6d03:b0:304:e20e:f5c9 with SMTP id 5a478bee46e88-30c1dc6d25cmr9380953eec.31.1782167392382; Mon, 22 Jun 2026 15:29:52 -0700 (PDT) X-Received: by 2002:a05:7300:6d03:b0:304:e20e:f5c9 with SMTP id 5a478bee46e88-30c1dc6d25cmr9380927eec.31.1782167391848; Mon, 22 Jun 2026 15:29:51 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Sid Manning , Taylor Simpson , Pierrick Bouvier Subject: [PULL v2 29/75] target/hexagon: Add sreg_{read,write} helpers Date: Mon, 22 Jun 2026 15:28:18 -0700 Message-Id: <20260622222904.607771-30-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260622222904.607771-1-brian.cain@oss.qualcomm.com> References: <20260622222904.607771-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: cuaK4UGVaq9Lb0_FZ-mqyj1SBVoZnmkf X-Authority-Analysis: v=2.4 cv=EOU2FVZC c=1 sm=1 tr=0 ts=6a39b761 cx=c_pps a=wEP8DlPgTf/vqF+yE6f9lg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yx91gb_oNiZeI1HMLzn7:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=rqZXtLhFGwB6yMrbUaoA:9 a=QEXdDO2ut3YA:10 a=bBxd6f-gb0O0v-kibOvt:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwNjIyMDIxNiBTYWx0ZWRfXzfrU3WQB47NL 36tfXBA+ncqw66Ie74zO1znY5IITS/OZQG7OLeb1rasG0k0kEggKcLcJXv0Ie+SgfztABMGMUSI SXrGAFNPH4zCcI8sr+vCWR2jhSPsh44= X-Proofpoint-ORIG-GUID: cuaK4UGVaq9Lb0_FZ-mqyj1SBVoZnmkf X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjIyMDIxNiBTYWx0ZWRfXz4mMen0v0IPP W7aE4kJDegmYenNd9lZfPexrAE6o+lOLr89JFCsKfBd3l5q5Cvi36c9+OgojQDLkVBjofC/3HIt a1RSk4knqcaIWSZTjSGKVxBq1ixHJ9OwwwBEdBGvh36UiIFZmSB/Agmujgk8sFTgrIXUy+N6pyt OKAtC3cv0c8UYFIM+dlUDYbiTut1vSPIIBBo3d0Z2qsjDAgd8vPWDgwjTtAUP/6A4yenyEEtI65 NKkkpVAwt3rVu6E2CueQf/DWuw2ZdFjYK2iljw3aideg4bJ7lyPgp41Bzjm5OIMjqCt47wCoSHO 9ELjI2Fg8LfB4Q4X8QETCPesGbF+ww+3q3Aupa0SGoGoBd0dxA16F/PXP5q+/f/MhrVloXq1UUb iCyQf/dgRlko8M8uzsvF0LyJVRVLWhFkIbcwazxAaSwJ3yIxj70RqiCysbeBvokif3UhVE5Z1OZ f0I4q/FUy5bOXGxPJww== 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-22_04,2026-06-22_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 bulkscore=0 priorityscore=1501 malwarescore=0 adultscore=0 lowpriorityscore=0 phishscore=0 clxscore=1015 spamscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606220216 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782167623843158500 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 Tue Jun 23 20:53:54 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=1782167636; cv=none; d=zohomail.com; s=zohoarc; b=HbnuTeHqEH8e1HttguUW72SKxgpuNrx9LWi7IbWzEOlBH100OJOe/F1n4gGQl9nsyMEZ85s3O2ykM2V/MUgYgqbp8DjZIfOzq4J32BnK+Ga7CKD+HbpCqTfWjB8sgv9R0aySfxy1icza2nEsXurCdVnUW6kxn+TrwsPXEF//NlE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782167636; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=WTQN1lQ339zm0sbKRg4kvbo2po3rFtR3RLtgD9OkOCMuffU6TJfZxur1hjT+8DlQvt1Yj4AEmCoDMohLtlQtVomklCSf0E2LXX27fA5aZassm9edNvs+Rh1NbYLplc10MepGXuPA729yVo3ms/uukwxGs8Jsky10EOBrN+iQgRY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 17821676362131006.3826607106861; Mon, 22 Jun 2026 15:33:56 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wbn9c-0003di-L0; Mon, 22 Jun 2026 18:30: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 1wbn9b-0003dC-R4 for qemu-devel@nongnu.org; Mon, 22 Jun 2026 18:30:07 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wbn9a-0006bQ-DS for qemu-devel@nongnu.org; Mon, 22 Jun 2026 18:30:07 -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 65MJavOI2205274 for ; Mon, 22 Jun 2026 22:29:55 GMT Received: from mail-dy1-f197.google.com (mail-dy1-f197.google.com [74.125.82.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ey6tmsp46-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 22 Jun 2026 22:29:54 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-30bef75a41eso5571284eec.0 for ; Mon, 22 Jun 2026 15:29:54 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c1bd8d78esm10945995eec.18.2026.06.22.15.29.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 22 Jun 2026 15:29: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= xnSW3oZuwood08ngSSOR1Dm8XpJbybm5vIaVrHhZrro=; b=aIZa5ggKN2Oj6VBV KKcxjW3sdhNKm9TUVcn21351PNyxpyeevrE/xH3psw0j5qqbTiTmCCJnFV1jnFN2 EYtsVYv+3hanU9UgK1TBl78470LZkEuN3Hk78PpnUwZJUC64E1lVpj3LCc1DD3Qc xeZHCRoQHUAE10gX6ZQsgiv+i6VciFlbrWuIq+5slelYfdt6t1eaeRKbKwEyAffv 1mPbDCoUhH82iBFc+PUqhg77SUJawEyliNOjD+F+N9T9d8MhE81UkguQPw80MSk9 yFm2Lda++NkrvSLRjNJA+nNdFVbJlxcIWzL1XIFWRl1Vu/L9AKPWJYF84eC3W5rg xpDngQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782167394; x=1782772194; 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=bUdK8+6/p44D2LEOG3IY7G/vDDrqSjIsyhEqbjlc2Fc3I9vzZrYLH1p+DL6wP/7WlI s68BlJ8a2dqe3+WBayb0mhwURNpQWrq86uQWgu1h/ntD4l4qy7H13VbwzENjErh0KqWi OEZU6FEDT3Nrr+F4iItXzDrCG8ekXhmqVhhY3/pELbqXL1y8U1+tcb9uI33JxX1Drton CShqz1K8j/9VbYRN/yY5DpWJP615y84sMsoA6RUpPvLaICDJT+av7pcB797UVMvnC3PD mjg+ThfwcQ/YbHPryXyPD5Jp+hlj5C2hwvjcnEIMI7kGruQXa5cWUij/UCcMXABeuEvM WddQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782167394; x=1782772194; 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=dbTTyMYTmHXDlXh5yaflkzp7QvBarmle4/8M69SCdKwynzpWc9ANT/chOdQAisSzpR CjrcYYvG8Oh2/4ztV5kAmmb6cUjylG/QIsNNYOasN1+DXviIZZXqZWAFhd+wLYnk/J6T YpZa1RUeOuF33fCbv0thGcDINgFuKvRTNcHpCasIMp2jVY5H0DX3v2AmsFB3mqafXL1H n0B+QxaLyYxQFT0lChzfx7AK+vWfc9fETSyhbK2rDJpopapmuVDWqedNYwOuRE6UTrRH rgswxQOuSlNgubgWY069zE2F504SuARPEUecRZ4R4EA9C8voYl74Agg8WIl54tjrow4/ aaGw== X-Gm-Message-State: AOJu0YxqFgrPcc95LnX/UMaDtoDlSlcLdyZez5MQloVwyH+iBgNo38Eo ByB/A+MvmpsKcqIxqHP0AIx07ew5yIoTf/Pe6hOsnUMvG+Hl6MwwWO2mdqDChjVdlz40uCxX9HH cGg6Kh8NHbwKbjS65fsQMjxw4Xx/Asfh6K7VwVnQrwkW/0zo3qkbMD4h2CZGvmiAZyA== X-Gm-Gg: AfdE7clGfSoQoK5tC9VJrjQPoYpix1MNZd6lljFEDrbalPASNyfcNm4pQgoZ4ucwC+I jWpBOzmb1pcRD9UBI2Kh8fnugMLUXLgQJ8sTY1vZOWi7PhGVT1C3ZETnSXemx1E0XeqgO7hjLY4 u8Acfdi29T8iVY9xksJH/5wfQ9MLScPe46BxihX2xfmIVyMP730cFEkasSBzxncroFbl+rf35aY Pom16DNXWRX6lJvogZagR+3csgvJyczlgFnOtH1ARIwRMyPT2mwHdrTN0/JK6HSOz+2anoO2fsc 3NkZznExSBn2gTcIaAeX8FS6+ACEVglc+RuJIPp/WEGzRUzchOETsIRLKlxXKTnCfm+aI+j4Scu jEc495NI1KyrBaGpGJZPkEOWecSqzNqOSUZTnG4ffnYhed6NmOMZ+Aan2qCc= X-Received: by 2002:a05:7300:ed0e:b0:30b:dd58:e134 with SMTP id 5a478bee46e88-30c1dbd387cmr8386668eec.21.1782167393974; Mon, 22 Jun 2026 15:29:53 -0700 (PDT) X-Received: by 2002:a05:7300:ed0e:b0:30b:dd58:e134 with SMTP id 5a478bee46e88-30c1dbd387cmr8386646eec.21.1782167393488; Mon, 22 Jun 2026 15:29:53 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Taylor Simpson , Pierrick Bouvier Subject: [PULL v2 30/75] target/hexagon: Add representation to count cycles Date: Mon, 22 Jun 2026 15:28:19 -0700 Message-Id: <20260622222904.607771-31-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260622222904.607771-1-brian.cain@oss.qualcomm.com> References: <20260622222904.607771-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: AW1haW4tMjYwNjIyMDIxNiBTYWx0ZWRfX5c1BBDRkTGTY X0ibdACqaCZ+xu3oQ84cFq07l8EgATDP62f/qIdjxpmRRBLi7RFEVkn2+PspOBHkJdPZQ5bPI8v TO0byyP0XL7SIBvDX7NC1T2NSlb2u1w= X-Proofpoint-GUID: FLT28lE173maT6ckPYUN1ABwPlwh2E-z X-Proofpoint-ORIG-GUID: FLT28lE173maT6ckPYUN1ABwPlwh2E-z X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjIyMDIxNiBTYWx0ZWRfX47ILIVS+us4X Rd4IYUdDikraOLj72sEkfFk7VsfQF/PnlSlKz/K/on8VAxoLCiUbnvc86nfov4NVOT2Cz2Hx03v PmWw1u95UT6xfqLbz088V57uo1gTIKBU7ErQPKALWpCmhblY1aMY6/0CHjrvg7S5+NVwFu6oAty bvNnVH1LTtYgZT3V8Co2H6ntCvn16avtop+wpOUQluL0EF89IzGbcdE6mUhQdwcKRc+LdAx/xXz yBaqvF9go43FwAc1padSwthLbgRAowFiCs1erhv7Ak8OyD4eHWCKoLMrxoAro5svzjcVItXx2eG 8QOZIuYkTrNGwpqNHLNUvUEmN3uXhsjM3bLT0ux7WXnR/35B8QdF3Bfz5eKF/YQVEnqc42m5Rcj lu3bcpGigj/+SWpu8T78lGRHBm2rlfJe7+tZV6bkzsuDnf0hGvVCVe34Nf7k5SuZTv2JOrE0wZk 3oApJje3jK2UPVE/Sdw== X-Authority-Analysis: v=2.4 cv=H4HrBeYi c=1 sm=1 tr=0 ts=6a39b762 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=_glEPmIy2e8OvE2BGh3C:22 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=gmA5YO3DfmenxuRff1QA:9 a=tsLLKIjAKpJP5df9:21 a=QEXdDO2ut3YA:10 a=PxkB5W3o20Ba91AHUih5:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-22_04,2026-06-22_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 suspectscore=0 clxscore=1015 phishscore=0 bulkscore=0 priorityscore=1501 impostorscore=0 adultscore=0 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-2606220216 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782167637968158500 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 Tue Jun 23 20:53:54 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=1782167509; cv=none; d=zohomail.com; s=zohoarc; b=hQolSJqBly+HH+0QoSpybHrmKUOlZCstLRZf33CQkgVgeOqs/MdwUcZsOz/CG0t+xfUHQIDv4iuovMQewijj4HoNCeaUN+U4h0xIOCR0X6ri3bAp1zZX5/9pXC3lasMyKVl4aKxz22ahjJBDYC/juMrnNDVIjU0Hpuvg2vWVVgs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782167509; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=hZpDdE3geMC/nrMiavs9Hy3YGC46vpnX22WwsVJQw6/vP3qS+4VaiqnXggelXuQhDypPe/GJGdc8ayzLsXkEx3cLl28Zjo00MohxmL1jzsQOmnq+JVtOKdD3PLKmxiH/c9/eCAbtYBIQXSibHKRGaO1hM2EQmN+PvZmK/czd6Dk= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782167508892664.7943148310106; Mon, 22 Jun 2026 15:31:48 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wbn9Y-0003bN-Od; Mon, 22 Jun 2026 18:30: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 1wbn9U-0003WQ-64 for qemu-devel@nongnu.org; Mon, 22 Jun 2026 18:30: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 1wbn9S-0006by-Co for qemu-devel@nongnu.org; Mon, 22 Jun 2026 18:29:59 -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 65MJZuXl1541887 for ; Mon, 22 Jun 2026 22:29:57 GMT Received: from mail-dy1-f197.google.com (mail-dy1-f197.google.com [74.125.82.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ey3a0tgbh-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 22 Jun 2026 22:29:56 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-30c108c19d4so3951745eec.0 for ; Mon, 22 Jun 2026 15:29:56 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c1bd8d78esm10945995eec.18.2026.06.22.15.29.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 22 Jun 2026 15:29: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= dY/1s85TBUfEZ6DKxNXbQLtO9YNnO553PDpX0fAztOM=; b=Yy6QfwkX4vukpiZ1 O7r1BtkU4tq9GYkrWL+VRALa/LORsHkNILy5FgKeXUV8RgxnHApoyWwSc5Wa2mi7 SYibAB0akI8OS3cZScqXUuv8ACE+dk5nilsq+hMp3RXskMtLd74U9z61HAx0aJyX vGEujyLiScOab9N43opoFbksYyX6FyF5GyMCtD4yXY3KkvSdBzFE9L7Ejeuk4HZD jTPG8TUEyzlhsqZcBCm88v0t8/bhw+diQeS4GOgTssgGbc0eLSjKxWdyPI7/U7n3 iVU5nOxEUadDiKBDfIYjkPCPsWsMwvrba3Ijsd7M24Q35uJQYHuWhhhHAQIVK/s2 ROrHFg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782167396; x=1782772196; 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=eA2V/U8ciJ7v1HmgTfVAWrt/1O+2QB6GWS0Pg+CIXjILMi0vI5orfcP+Z9+BUWlQcP Ntq8Y+6u1XDEpXq42NBK2dmz4EmL7czv0r9r34LzMXvfl4sX6nZXTVqGAQhKy01RoOAA 7d7GwHFXevx9pCGhIsTf0eD6+6Hjf3Nl+CP5UXNuiI0FWzsECxMU8Rk+g16Spftvn3FN IqvzCYHTsO7o8WLrrVUmB2/xRajhAH1tb+sXhXG4zScd7+yiySPhXxfsmEdvBwaD5CZ/ yxo+biNER1ONB4rnqSfx/QSnvZ4z/L6z2gPK3O/ACvU76TwXizjSd4L5wM5/rq+ccvba T2ig== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782167396; x=1782772196; 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=WveQhTWqCs79ZveMBDq6JcTjbwrdeKvhpd26KxfquYceml/TepD+MPoUy+nhf9sfg8 JEfFCub6JYSvtYJ3fulVPpXG6c49i7qh1auokzryu14WpUySRx4JkLncOHBejUl5+pUk vnjsz4hSF1RdhcAdiV5D/vqQYkBZwIt4NMd52TwpH6Jg6Txs7dDGj9lKXydl8wxbg/de SWDCdUUMS9aCiCihkiani+D7rXgYIR8JZpZBc7QU3GBLhNbSlVjMlQmzOEnSdMdXUrIE LvAqonovzgKmK0UwWDsQmJOi3K7CHRTuRIAkzCm+bbG4cSFdJKmTiwapDHkduWoaSyCg 1l6A== X-Gm-Message-State: AOJu0Yzbiuru6RNFxh93UNzPqWhp7Q57tnoSyEts13GoYY3VFX07bmsx z58TzkRkvHjI2dp7CxcB2NtA1ioLSqyecFUI2VNOS4iuT4rOhiHIPV2bzmpe5Jt66/qllUMqGhS CfYPWNjJIVX6xBkdaYUJUd94p+yzS2EnHd9bJg+RwgRuml8LQR64C2S/5WlgqKOhttg== X-Gm-Gg: AfdE7cmxj2QNX5fEgxwa3PiFVxKb907QWgpI9Rjjj4hXwqaGWJh+KlZP4b4oyGY2SdM YTc7yGfEuknAqCEoxCTLJPkuKhodOTgVpdmUr4NRa9TusHS/cNl5pt3YNWWoK3bNW6kb+Fl1NMn oBFM+rbynR+sJUA4BNCtIVlz821oXznPI7B/V4VhSPIpwHw+Zd5VO5DkVxNx4oT8N/krzR8Qu7o YwH7XBvpPWu/zIx+TswzB8BUNIYHqVJqYLs/nscLli4srDGGcocKAV4v+F0r+5kyoDKavwvpoFa ub0JF6PKsljun/mbbLumLXUqjIcj81NjQQiSyzSXehzoiwON3NQnXIdvfjY3jn1ePFDZH1sCpcT JzSC4NOUEXeBqKLR/uZuvupIIwjbVVeUL3O+fyU6yy7+V0ls+Dlh7uDO7Q0M= X-Received: by 2002:a05:693c:42c6:b0:30c:1b70:896d with SMTP id 5a478bee46e88-30c1b70d9cdmr6568001eec.31.1782167396230; Mon, 22 Jun 2026 15:29:56 -0700 (PDT) X-Received: by 2002:a05:693c:42c6:b0:30c:1b70:896d with SMTP id 5a478bee46e88-30c1b70d9cdmr6567984eec.31.1782167395746; Mon, 22 Jun 2026 15:29:55 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Taylor Simpson , Pierrick Bouvier Subject: [PULL v2 31/75] target/hexagon: Add implementation of cycle counters Date: Mon, 22 Jun 2026 15:28:20 -0700 Message-Id: <20260622222904.607771-32-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260622222904.607771-1-brian.cain@oss.qualcomm.com> References: <20260622222904.607771-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: AW1haW4tMjYwNjIyMDIxNiBTYWx0ZWRfX39li0Gx8QH9l 7h+x6EKZKA7KyL9pDD56AUfHj6Z5ssJ1dFVOGf7oEmbggduG2J+MAZlcTtvbWZBb4CEXjA5QAHs KocWy5yhCo96mHKANswt9enjryFEuPI= X-Proofpoint-GUID: QIaRwH34yAjog9Gig9S_y1Ka4vN8JkZk X-Authority-Analysis: v=2.4 cv=UJ7t2ify c=1 sm=1 tr=0 ts=6a39b764 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=Bw4caLd0n_0OF-yX4NUA:9 a=QEXdDO2ut3YA:10 a=PxkB5W3o20Ba91AHUih5:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjIyMDIxNiBTYWx0ZWRfX7C3DmY8kNxBf YLu064K7LRy7Ujp+1N5xvltibXncc/S1CwjkdxZ8NgWvIqXkadum5T227PL3JFr/3OKbM2X3rOm kvDApYfQN+jpy40PPEqscZi4H3iZFRR3Ex6sHBI1tYPBacp5mCPhF+HQ7rHku9FThUxqqojMjIJ D5hvRj/Gg+24vXFcQ2w9H3jfbL1a6dCiGTv1ps0KMW960bzYbabdiMy8r7Geb24Wd8ACxkH9rL1 SZFB5NMZyJ8ezs3SrvUCiWbyunvhuH6Ct/yuO2ey52plsk2F3A16l61j7Q2WnF4YXtvF9bytqeD eROv491WwHqN2N4Z4NL4N8CIVgCW7lNgLXZly4SFGXfjh0+OvCfgonOEPvadOEyfHtsu1nMd9rF ytASufPPcFvOrsc4wJzxzBMkErZtz+A/rV2yO6lGyqhScob1nqt/iyscpnMuHUsw3TVP4egbFom GvE53ij9pqqxYobbPWA== X-Proofpoint-ORIG-GUID: QIaRwH34yAjog9Gig9S_y1Ka4vN8JkZk 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-22_04,2026-06-22_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 suspectscore=0 clxscore=1015 bulkscore=0 lowpriorityscore=0 adultscore=0 spamscore=0 malwarescore=0 phishscore=0 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606220216 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H2=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782167511236158500 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 Tue Jun 23 20:53:54 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=1782167641; cv=none; d=zohomail.com; s=zohoarc; b=VAvG2QFQ4vah7Oahgfu/T7AG45+np6qKpmoI9kO2rdby190BG84VToK41ijaffZj8mggnBHxzXo8FyZ0SANCXZMTs4F3xbntkRZL0Ku0Bz5H1YXVaEs86i1utSMqopHJmQARq/dPiLnU3rssx/r7zVNHBSjscUioagL7MhP/jF4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782167641; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=CqUNqwIVj79CfhiG4WLi0e3YvNxeY+mod6USLLoWtHlXTpunEoFEVMjpymAD6IFxDn9Fr3a4J6zJ2ohh7dBfNTgJRGsiarUS7kex714cqL6/MmRkQ+pIJt4wpjxT1M7hvWGMEBfdKkRCqXHnWMaIsJUxGwx/S2j7ppfL6j+Q4TY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782167641333883.3724459421554; Mon, 22 Jun 2026 15:34:01 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wbn9X-0003aV-0u; Mon, 22 Jun 2026 18:30: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 1wbn9V-0003ZV-FT for qemu-devel@nongnu.org; Mon, 22 Jun 2026 18:30:01 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wbn9T-0006cB-ED for qemu-devel@nongnu.org; Mon, 22 Jun 2026 18:30: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 65MJZxFF1542000 for ; Mon, 22 Jun 2026 22:29:58 GMT Received: from mail-dy1-f199.google.com (mail-dy1-f199.google.com [74.125.82.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ey3a0tgbj-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 22 Jun 2026 22:29:58 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-30c17f62afdso457288eec.0 for ; Mon, 22 Jun 2026 15:29:58 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c1bd8d78esm10945995eec.18.2026.06.22.15.29.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 22 Jun 2026 15:29: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= MzvUFKvc+sUpWvc2016FnOxj5PhtBZkyxIiMWx3S09s=; b=dOw7Jdp7s50LIcJd knd5ozZ7CFrezmJNkm9+0O+fVyUTNGYJdzT5QvTjyxqrjSE0EupBVzoZSPwTBM6A sbKztPBZbeMlNzEpVo3ZhGU2/2tqSgudKXGCoROYz1kIXYeFrRTaChH7JFgpqQC7 I0Wu+Swa1Y6Ry+I1p9U+Xt2YM4C1ltPfUZhu8L7MkolKGVagIVzmQziYyTh5qOtV U69PJzvifjLizBSCCJFIsRyu0MKStdqBKFk2tmrZMdkzS+Yozp0eeFhLw5tf2N9Z STZ4HNlTZ5KzWNshS0zSTrCSi3VClUvEKupGULms44LfzxFmEIAD/R0nQMDjQQ7L W0v/kQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782167397; x=1782772197; 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=ieQLkf2F0k0RdBtVBHpeCdPzV+Ci8Zzo/YG02FzFlg87KenBu68NKAKfLa9lTKwvdf zY4B6e7SvBPkoD8/i11aDb7vdOmosWazSSCvBxNmTlsciBmyAfYw8kf1RbgznfiMJFPr R5peyRtja75Rg4g8fzcxAt4HuTyDqEpKkiS5l7DNG+lAyFpLBv9gbbiKRgnpR2xxFLXH 7QacqR4FYOv9rZKfWXwepsDjL+Ozf6glpP+TgSKDGv3uCJ2lO3ECG79klG5U8SWZ+wBp nuONchM465j6hD+XSMaOVk6jXJx+tZ4Gg/pDCoB6FNPDy35XhO9yReDcnY1U89go93W6 7gKg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782167397; x=1782772197; 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=qXFVbQaatWywdcS/0EWDzzkxEN4WvL9/e5qNEKzPTMX+dNlV7m2xcef75zBHi98QSO vgfUnXVYaYihaOYD5waAF0BzdZ0L9LpJHhCcB9xNLtvrb8+Y9dWerRtuvFTWyA1Vk7Fg 1UTlLqjQqQ832P5Td6D7tbS3BN8VkIGUP02WxWFG7CrE302nNNjp3000UR+TWLq3EFmA p4NgR4kgq46Xdqn4NjfFOeRQUeISaIcKkmd4wRFLgyCavyWzRd/JuqUjriAAg0hJHVp3 2E/HIXkTznvQeHpXiUYrNYrQHWeQKkzjCzOP81ZdWFPtCcpQmT2VyVzSEsFLCBu9IHwy GmwQ== X-Gm-Message-State: AOJu0Yx+lm9S1NU2jUTTClSqPA0lBNMXLnpHhdQs53AOa8MWEpONqDtS Zbc7eSaeg+TzHzhU9h4rtoojYcrB9CbstIWeaR0EOjF/BbmY0KVgcXL9cuYcBpbseoC/Okij1Y3 M08cAAMrCLMJzLpZ6gt5p4RNWmoGLhNemwmzIQX2Chssp0Iz4D3ce68Cqv/q/h6csFw== X-Gm-Gg: AfdE7cmEt59CY/CYwA55k7BRoewCzBn08FETSC/82xS5WeVmq4lNqSqtSjoONqNZcgz jtXqed5CnehHZv6xjyl5sl9GUdo2OyZ6EHuV0ULPcoTm2SA+ZIzdDw2bReePxvt990l0apJdUR3 EKLOaq2Yzvo4t3RjMIY53QI75ArWWOKGdwWcOOkZrHbuAI/6XzyzrWEvaFUKuXQuiexzYxJdCPf GjRHXy4IkMPKpH1s6PBG+UFiefCiEBkQTUpBO7C7j/loXcVSbw4W3lyTdX+iMU33oRaZ+V0Csh0 wJzzERE5JRTw2jXXFmAcq+n29frGe6A7dzuDD7YZqvI3JfGCWnkLpGexwD9YNuSltYSx3AC83gR GzGGwtwOpdDY+4NRptzt6mL7cD7sYVq8UP7RZlgmej0Ic7e2AElPlesXVxrQ= X-Received: by 2002:a05:7300:de07:b0:30c:46a:844d with SMTP id 5a478bee46e88-30c556838e7mr642277eec.20.1782167397403; Mon, 22 Jun 2026 15:29:57 -0700 (PDT) X-Received: by 2002:a05:7300:de07:b0:30c:46a:844d with SMTP id 5a478bee46e88-30c556838e7mr642265eec.20.1782167396861; Mon, 22 Jun 2026 15:29:56 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Taylor Simpson , Pierrick Bouvier Subject: [PULL v2 32/75] target/hexagon: Add pcycle setting functionality Date: Mon, 22 Jun 2026 15:28:21 -0700 Message-Id: <20260622222904.607771-33-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260622222904.607771-1-brian.cain@oss.qualcomm.com> References: <20260622222904.607771-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: AW1haW4tMjYwNjIyMDIxNiBTYWx0ZWRfX5X5u9FHo6Dg+ DlXgRoSMvvA1tAoN638yALOSyiRH/OxTZBtwlupxMJJYsjJPgsXlLPUzAoBdzQIl2OT7phuaQJA x4c5wfGqZR1SJHIOUEBr/z9nS3ANjz0= X-Proofpoint-GUID: NzGb7wuJZhE3GyXk587Km7P2c_yx3x_t X-Authority-Analysis: v=2.4 cv=UJ7t2ify c=1 sm=1 tr=0 ts=6a39b766 cx=c_pps a=cFYjgdjTJScbgFmBucgdfQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_K5XuSEh1TEqbUxoQ0s3:22 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=OF6xqQKflNrgTLtdKXcA:9 a=QEXdDO2ut3YA:10 a=scEy_gLbYbu1JhEsrz4S:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjIyMDIxNiBTYWx0ZWRfX/t863xLSD2qJ vvdA9J2o4fojrNEaGKtcB0xWJRALBF9tA/+Vp1sYft9ShVY6OeAYx2od89tp5w47i0N2PST6v6q RPh4+whsTpd1wD1J0JM0j6lvQdmLKIEuuVeUmingU1JxQVTsiJR8W0aAplrglOza7Az6JolTXYP UgBaA1CI3QpdmRTc8nM6D76q0RZQq7srqhkq/hJTFM81u3EVo5J/ADWLRz9f14bkThmLk+RVqsV aC4UI1LqNraDxlKCbHQH3lyIB/PRh2tgWNkBLF4BPlF68NdMro6JZedqQAwXRxrnc7RIY1mYe6I E+tKmTM9yDZM/SG00daJuGCuiuaMjwLi401WNnLsNjP1vIzefNpNPbpemrmJTsyoKBZGsPj/+2k +d0bkuBTxyLepMLVA1YMiw5Tv+BK/DrTYFPqZ2DidD00OYVk3vCkZzJkeHHQS9ZqnKq+NL8Bypj whF9LMdoOg36JDmDDVg== X-Proofpoint-ORIG-GUID: NzGb7wuJZhE3GyXk587Km7P2c_yx3x_t 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-22_04,2026-06-22_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 suspectscore=0 clxscore=1015 bulkscore=0 lowpriorityscore=0 adultscore=0 spamscore=0 malwarescore=0 phishscore=0 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606220216 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H2=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782167641855158500 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 Tue Jun 23 20:53:54 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=1782167589; cv=none; d=zohomail.com; s=zohoarc; b=ERfRghHtAiX0F/J1mIDRgSRfV0Dq0PJw6b6IUQYR5fPQllMTi05kS6vAqnsOzM6MbhpDAxGkULDQx1erpkgP8+T0dS/vO73l7qZ63a/SbcpGUez1tq5oKNenU8Oo6h0ufBPx6sRUQYlS0OdFvAKqYVqlV6UST621wLNhkCAyloA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782167589; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=cOw27dTKK6d0Qy8j6wUQxybwMRFyIYGD0AQZcAFyBGYcioEtHWIhwKjSBvGUsSRmvg+YMHlDAMZwUCBzQ8Hp4uyZyaopnXr5Qc1eBq/mqlIXENSwAlWpGB2i9Ju5scVCA+yLPlcdZQfklaOILE5zFan4mM8y8dLmGwIccrkPDmg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782167589633361.2683651547377; Mon, 22 Jun 2026 15:33:09 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wbn9i-0003gG-0z; Mon, 22 Jun 2026 18:30:14 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wbn9g-0003fX-Gk for qemu-devel@nongnu.org; Mon, 22 Jun 2026 18:30:12 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wbn9e-0006cU-Te for qemu-devel@nongnu.org; Mon, 22 Jun 2026 18:30:12 -0400 Received: from pps.filterd (m0279870.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65MJafrx2176434 for ; Mon, 22 Jun 2026 22:30:00 GMT Received: from mail-dy1-f200.google.com (mail-dy1-f200.google.com [74.125.82.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ey37hahe5-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 22 Jun 2026 22:29:59 +0000 (GMT) Received: by mail-dy1-f200.google.com with SMTP id 5a478bee46e88-30c0d568830so6664649eec.1 for ; Mon, 22 Jun 2026 15:29:59 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c1bd8d78esm10945995eec.18.2026.06.22.15.29.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 22 Jun 2026 15:29: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= RwPVW3CwUQS2/lnObn+K7hYU+7Hhy6ohC8oxC7MFC5M=; b=pxpks4elRSJWVCmU ETq8lU6pY4gn5Z3Fy+ZipQ/0JX6sFL0xjJQ5cYhKsItqurIC2hhroUUEN45ryizJ zfIdu5489KT/vjJalaAYAhh7qoM/FO1kssCOQXk9jaKIXArWslePwZ+XC2sTncZK Igv/KNtdn02XJIFyVwECNxiJAw2n8CyiCKaQzP8AOa76zs4aIJ6G2akkCq+Za8NL 67bxeZcj8rm20TOjAhAT8xBPXLvj5/89Rg4UZDDtEO9lIBggmAfK2HYHlj2pA74+ qqD41y3hcXeMp1TgvQs5Ncfio5ZHbINbIDDf0j5gvPIYnTajE3wf7qmYSNQpcGkf CcvPWg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782167399; x=1782772199; 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=aXen/IewJbQFpfAT/mJqfQiT+tIhnoVelqY6Tu6/mw1LU5lyW2yTausvjNirtheRpb YZzbHa4aRDYqAN1VNTxAXafmPZcgc//pzkUPlBV+R5lbLBWj0ZQJ7+b0xOyHWcypvHCc XDZRMW5f7KU8hC5+T4AcYiLYYVFR5orzHfgw3P3dH6sTXrp9/MldighVyEWD4qaqb3+i QRF61fiZoomN/aHdOyDaqD8KvjW+Q1FsI2SMuKzf1QkBZuVx1eXlgCp/PFuZ0vhpQfi1 SOeR+aEcTKu/HM90w7DBeufSJJ+UGSkldMLvJOBYKRYMsm2yC62ipNGfYQukzFOqsq62 iHaw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782167399; x=1782772199; 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=PjKWMs2EdY+YzYBlfh87ZpY0kOe7d7Ck0vss+KXyqDVHah8uf9CfyB1+lSzILYF4IT pyDR58hDlbpYPP7OHJw7xkAOKnHFSlxqDLR4yJbev2EOOix32NjQebE/F57ny9HB8vBz oWfFdxgM/Q1qU6yxURJE34jT2mTr75Yd28tP8a2XjsxXioLe9LzkL311NNBKl4lCT/b8 WHwNTWGvC3OHuu0s1VNkZifa+kUYbcRKYyl5WPOLIQz37mSX6Uj4ZQ4yZnlDjYPtS/Ao YJWDsFio3AkXwesZBSH5csXcxLbeacpKmDXizC9ors16g1pm6bQC/xUFYtcbknH1OAUu aQdQ== X-Gm-Message-State: AOJu0YyiuKqSorykIAIYgcWavSrQiw9BDHymaVeN7ftndWiPta4IVDEP 8ORQ/mPCAtICVMG7AyzAFHcftW/eilm2hcG+G8ZkM2cR2d4Akn8rBxEIcCxLTWcQ6uz+EpntqZE vue6/Str/hSOoYggRgd33T+8+Yw1S+3IyRLaTLf8iJLa11P/GE1xNbzGb/8v8k6AKKw== X-Gm-Gg: AfdE7clAeETmAN1YzOEESKjq8MDYLN6rPvPhwkXbl7n0dkI6qXNwHUTSu4/hQyM1apy B3ZYKmV7YiIduA56mvsAFGjN81SYAKZJqrWn1BKEdQc+YWAezFSceaDQ20VWm9dpxfVhc+hTaU7 KRoztKdq74Nwbe1YXHXwT/IKQFXWyCp2ROREB/tekWcBKsdvNJQc+BuenhgLkKHkeMEN1L16awR uiAZvJG+i4BrHPaKX67vlzA6EZsKMxRZb3vX8dnZNGwjmD/OrfQPj3E7uhodHCyxFytNukuwcRD vEcbv6s7JkFVG5SYEptntDLkbj9s2EZN2yPqzQYr2efR+UxNn92tSXFvJgMa6LXrF9EWNs1eX0R xbLThr8gZ4jX0K3VOKdPqg3uPZpUnIU57bC6eVy2DJwCYvhRrgjQwnocyUog= X-Received: by 2002:a05:7301:4592:b0:2f5:3641:f126 with SMTP id 5a478bee46e88-30c58ba8e12mr292404eec.24.1782167398922; Mon, 22 Jun 2026 15:29:58 -0700 (PDT) X-Received: by 2002:a05:7301:4592:b0:2f5:3641:f126 with SMTP id 5a478bee46e88-30c58ba8e12mr292388eec.24.1782167398353; Mon, 22 Jun 2026 15:29:58 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v2 33/75] target/hexagon: Add cpu modes, mmu indices, next_PC to state Date: Mon, 22 Jun 2026 15:28:22 -0700 Message-Id: <20260622222904.607771-34-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260622222904.607771-1-brian.cain@oss.qualcomm.com> References: <20260622222904.607771-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: UHsO5A74_kU66gs1xtDiwDyrY0db1ZTc X-Authority-Analysis: v=2.4 cv=ecANubEH c=1 sm=1 tr=0 ts=6a39b767 cx=c_pps a=PfFC4Oe2JQzmKTvty2cRDw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=gowsoOTTUOVcmtlkKump:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=StfCoqezVcLOyubjZekA:9 a=QEXdDO2ut3YA:10 a=6Ab_bkdmUrQuMsNx7PHu:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwNjIyMDIxNiBTYWx0ZWRfX7dmvC6tlfSyH SxnKMhw2kWdg85EaQlHQdS1eVmesVA31gDC1AfHtO4+23PljGCDOzFnSUG4H6rHwxzmDkIPlHU0 oc66IzN6WtHL9g7q0W9Q6/Qy4dMzmb4= X-Proofpoint-GUID: UHsO5A74_kU66gs1xtDiwDyrY0db1ZTc X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjIyMDIxNiBTYWx0ZWRfX8AEVmAb8Mqir zLn1m3DfayEAUDq1CKP9lQNqwf36MJer45t5g3+RQhwchiwF4fbKF2wpITsY4uLMQk7aYX4O7y3 W9OFObWwDEMwNfujLbhV+cSv6bngAhkZy2vp2AZ9fZJ5sG7eaySdBrD8XRGyPKkfSyku3JQPfht M5JHc0QXdDSIv9at7/BnaugTVePwWjNifcAcOCjMje25kZWWGY1Tyfc6codCWZsz68RK9/AIluu SGRODdAEpDefsMy0v0+MFWPbQkjZBs1+msHNxgi7e26+3jCQB/nkDI+xCsix6To5jjYTgofSFaF sQI7WYU8D8qPvx2tfdB64fsDmty/OK0MEn3C3gQujhQV7ab8sVPd+6VUDnvQ3gNq7OSM/lnL589 SgvgRONxHrzl0jLAxdBeGyFIKUY4aK3YcUOjlhjDhd/15hYH6dgRoHDfTbp6kSAGL48wfdyNeo1 00UsqBZ9TtXzacN3lHw== 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-22_04,2026-06-22_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 lowpriorityscore=0 priorityscore=1501 clxscore=1015 spamscore=0 suspectscore=0 impostorscore=0 adultscore=0 malwarescore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606220216 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782167591588158500 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 Tue Jun 23 20:53:54 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=1782167620; cv=none; d=zohomail.com; s=zohoarc; b=bxgGLH1DWHdi1Vf+wPYSH5vs8Zb92OAbryf8jbek1D8/hiB3s+8zsur+q2qisPUrHH8vkmOdFwm3nxDnVCU+GO8Yzk/3Jz4PTM2SZ98CN+jiKA0yiIzBVZXqdOh64Tnb+dzBZMGrX0ThUQF7E5cV7xw9Dp+wLUK7j4cofZtD38c= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782167620; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=m4VA82yIfqyvKija8S+c44MQfzv62XmtBZkIiVa3Cz8m8001atuNnbcn08/OSOjfaj/vTmOiXwSX0eCdfT6SNDncMBoWIO2dexRhlskCnn14oKQMG/guyYe0uoHbIGi9IBIaQU8KyN7GKDMVhoe/3L5cYZ+BH0Eq2M79G0s3e8A= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782167620180977.425625583008; Mon, 22 Jun 2026 15:33:40 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wbn9b-0003ce-1m; Mon, 22 Jun 2026 18:30: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 1wbn9X-0003ar-JJ for qemu-devel@nongnu.org; Mon, 22 Jun 2026 18:30:03 -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 1wbn9V-0006cd-RP for qemu-devel@nongnu.org; Mon, 22 Jun 2026 18:30:03 -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 65MJZkvO1629368 for ; Mon, 22 Jun 2026 22:30:00 GMT Received: from mail-dy1-f200.google.com (mail-dy1-f200.google.com [74.125.82.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ey3cq2f0m-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 22 Jun 2026 22:30:00 +0000 (GMT) Received: by mail-dy1-f200.google.com with SMTP id 5a478bee46e88-30c42d96713so952209eec.1 for ; Mon, 22 Jun 2026 15:30:00 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c1bd8d78esm10945995eec.18.2026.06.22.15.29.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 22 Jun 2026 15:29:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= T4QeLlBFUTpGlmsbriWoI9s9TWXslg2oBf/G9cVJFSw=; b=I89z62XBu8jy8Jow NhGG1QGk69+6qCLFryaja777xGwIhkoU8QZegRez4Shzq5lDA0UEhlbQ7aBERp2C a2pcBuGkjz8zQF/1IbqEPzwEDpd+CxYPSr6IJgxGBN9MJN8FAjredtF7HFXhcsLb agUAu5N6AYAseFRI76tKiwV2DhdSB73OYhZ54iNMCkUayfHU8aShow6bUEQI4P0T veBBxB/SjGPQJ/LgoshzaNW8JQpUcTBPVDzmXuj9y9kI2LzSzgKGSGR2RQxidnne xUEQ1H4toXl1XGSiZiqCTP2At25Yfgn84HhBGxdfPjHy8OX3wBWXi5GHnws3vsK3 VzBDFA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782167400; x=1782772200; 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=bkO0byMCChTi7YtLlq3Lo5SagUaOvqXintC4D0JZklJBAcWaOCKhSc8W78J6+tP1ek ZILwwL1pdR+We3fcwznvGJxRNR3H4lXmodFNkmRhUyrp6c8mYn9dv9W6UvrIAgPJanP4 GFBuWmmhict6AYlrgPWX07LniNAvaoQe2uEbl3PW4YLry74npVooSIxnlWRonpi3UfHt oncjV+uWGo04PE4xcS31IUIN/Kn1K5unI/pEPebpu2vlrIsHmz1xVatlj9DS3LKAZLAv TisLGCJzOwT7WAc94MGUcLVwtGCXOhHJfhR5XnInrerpP+KYb3esFE2SBtft3LuPQXin Cmqw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782167400; x=1782772200; 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=iQ39hyZ4cnPugQS/SQi2KqdmkAg/sAK8SNHJTXIbeYjkrgQ26N+aJzMg5lTEYuzw/a oqXg4uRftzXBQYvjk5olxSn4iOHUCPPfVS0WKkMDPCGmlUp6SYN3VzJrUbU7qjPMPJz9 J55hnpGd1Gs/Wtb/vvG2qKC9/LT6kp6RSqR5QgQXi7GKFWQY5DXK9Vrua+UL90Cp0Jko 9aHlmbl2J9YRkj5tMTGmUKKmZ4e1REd4uOmsg8+32bXyaupKx6Z6lRxybncQk8KwECGT uhe7Fcl8DpY0t4FaWAQeSLaGP3sF/y++8O5r1pUNSq8pJrZiL00WEKMzp1mrIpd2qCuI 8Iuw== X-Gm-Message-State: AOJu0YxGW9oGl0+ta91+AcRwG48ADJtq9vZh+kslvtTmubewnTFvG7fF LKseIJ+thyos1+Mgn/WOFwMZKAsPtQJvti5rJpEEEq569yZiw5qec61pvpnZkDWrP6Pg3qiMCt2 y1HlL5fIkJg+fZ9jTpt5MHTrXxcOdKccXfHZ66sVkIoCepGRMMjuk+wiY4//U8K2/Ig== X-Gm-Gg: AfdE7clBcbNPvh4/I2/wjeXUgH9dHmOqL6thFO3dBu7Ake0+Ilh7v7Lbl7KctT29wtm pzMoVMDqCKB7cKyeI1oyMr5ZNtDxBqbdqt/BsfAPA5Tth0ykRn0VcyUsYFhprX7GsbOkS6mCkZO xlbX/JSIydjNDtzCnonPVpE1EHBSJggy5ELl+vAJhMP2EKwh9rRNskyPdyOXn1/WhPLel4mYHJH OBQEyz7bJvlVzwnR/IhOl+A3nvdnZQkXFZ/iManG+G3tJ9eQaSaGXSbArJDh5V+HCXEic2/2u6n gfSwuMhe4XkNb+9wsVFVDr3q17nuSTa3rhnaw/ye25QtHcsVbe86XLu5rdxLVDbMWT+6aax83Pp diLszTwetTf46GDKnWBik6ekcEDj6XrFHzWkopPnb+xAxo/r6xS5Wvoh/b0M= X-Received: by 2002:a05:7300:2210:b0:304:6448:dfd7 with SMTP id 5a478bee46e88-30c06e0c664mr11175646eec.18.1782167399757; Mon, 22 Jun 2026 15:29:59 -0700 (PDT) X-Received: by 2002:a05:7300:2210:b0:304:6448:dfd7 with SMTP id 5a478bee46e88-30c06e0c664mr11175628eec.18.1782167399217; Mon, 22 Jun 2026 15:29:59 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Pierrick Bouvier Subject: [PULL v2 34/75] hw/hexagon: Declare hexagon TLB device interface Date: Mon, 22 Jun 2026 15:28:23 -0700 Message-Id: <20260622222904.607771-35-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260622222904.607771-1-brian.cain@oss.qualcomm.com> References: <20260622222904.607771-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: QL3bmzAmbyOZ6C7DBhfIxoUHJ0k0bghZ X-Authority-Analysis: v=2.4 cv=VKXtWdPX c=1 sm=1 tr=0 ts=6a39b768 cx=c_pps a=PfFC4Oe2JQzmKTvty2cRDw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=eoimf2acIAo5FJnRuUoq:22 a=EUspDBNiAAAA:8 a=p_7iY2stt2bzV07uMJkA:9 a=QEXdDO2ut3YA:10 a=6Ab_bkdmUrQuMsNx7PHu:22 X-Proofpoint-ORIG-GUID: QL3bmzAmbyOZ6C7DBhfIxoUHJ0k0bghZ X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjIyMDIxNiBTYWx0ZWRfX+JWI0GPdTvT8 RyY/xjXj2pOUgTNaTZh9IYFZS7hniBGE8gz9/VAWbKVvnmw7jaCxHyqizO+qdm1pOkkBYPNP934 wo4P3AIUgJ1qkwtbKAjpjtTCGux7/5jsQHeUKxWTM8UyoabLnU4qq1SkIFL0D0iCGSALI2fATdg G8s5VaMVM1p+iIHCkqj3tWIONDI4m5S9fWJR/JpfqXoFEX6Kysfs/DhAt8foL5PV/XRaQKcgk+W /U1HRe4iEJkGEv7W8t5LC1PnUQACQXbvR4NPrVYP6kXcUVem+MBx5++Ob6+EEeqkLIrhBwKZtje tbtkfieiukGSlP4UkoeF2FGJ5vgyIVdRvdG4xzJFvCe+PiZmCyi1Iq6eFBy6qHY4Qr2Nt6MD0t7 CgCifqV5bG7kBScJo31YJGHE5NnxTSlwaevujHx9Jegdaa/5BtsGya5tR/roEMEWdHLYwIJBteO 4SCN+q3nS/LWG9E4b7A== X-Proofpoint-Spam-Info: AW1haW4tMjYwNjIyMDIxNiBTYWx0ZWRfX8m48/VxvyJMC xlANRQPGLd6bU6h12ZDKQNvwsmg38Etij5xqpYMKR0cGvJuQPzpY0cwEb9kc2SIUyEeSSNhUo6j SWMct0+Yhq0zWF1frCQwLICo+LV6Ymo= 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-22_04,2026-06-22_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 spamscore=0 phishscore=0 priorityscore=1501 adultscore=0 suspectscore=0 clxscore=1015 lowpriorityscore=0 malwarescore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606220216 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H2=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782167621730158500 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 Tue Jun 23 20:53:54 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=1782167618; cv=none; d=zohomail.com; s=zohoarc; b=SsB7E5BWsWIV0hjm8qHLlkqmn6M9A7UGPRdDpz24VkK1sX6vmaxGe1pnolpQ/yM8zNS7McsIJo9h2RuvpKfvS95KzBKVxhTmJ/U1TU8I94xlJf4DYc9mrhHIF/xHdVBtdl8i9No4H7pbLEt2jfdd7AdYczvHGvvFPztw0q3Po0Y= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782167618; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=kdFVrKVIbEU5jgTEUQCc7z+6hjjv6TrQxpkZPu/eVrv9OvwEEvNQko1J+4fMXq4V5rBwpCZoZdzZt9hp6TVpqTibao3IS7PwQkuDXAxSEC6Y9WKuK9f7HNScLJW7RhHw3FxeailBfjcHyR0VL7kkMdItJyAu2xL/eikWfm2LNDY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782167618171787.4901253644534; Mon, 22 Jun 2026 15:33:38 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wbn9e-0003et-Ez; Mon, 22 Jun 2026 18:30:10 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wbn9a-0003cW-Ly for qemu-devel@nongnu.org; Mon, 22 Jun 2026 18:30: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 1wbn9X-0006eL-U0 for qemu-devel@nongnu.org; Mon, 22 Jun 2026 18:30:06 -0400 Received: from pps.filterd (m0279862.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65MJa7ih1542181 for ; Mon, 22 Jun 2026 22:30:02 GMT Received: from mail-dy1-f199.google.com (mail-dy1-f199.google.com [74.125.82.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ey3a0tgbu-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 22 Jun 2026 22:30:02 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-30c17f62afdso457329eec.0 for ; Mon, 22 Jun 2026 15:30: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 5a478bee46e88-30c1bd8d78esm10945995eec.18.2026.06.22.15.29.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 22 Jun 2026 15:29: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= 7mMKASCyM5y7fHIpILH7Fqqeizn/+r4LwxCWOb6jddk=; b=BIbgwu63VtjZI8Gq F/MKfP5qloauCHeS9Tbo9JnzHqGtAMgZfjDu9SaZ58AiRd6VZalgvNmzx0X8Eu9B 0Djq5yHwyfUskyB4C5GA1RROYaFiG6dyfHXGhSIrcLPOj9WA2DFmq5fBo8KUaxaY RCKGKbdDbXCOGqSdye6SFjKM8RUpC+AdEBXpo1antd5hHIoW6cY5yfZgI2aSA3Wf f3O7ZZqYDWpLFS1d5F2o6Byc2epSpKmPhKDnU4sEJCs3N3vaRytHBB0qMNLPEZRC jedwxyFlj6XefH+0bnkc88bjTXn9rAqxp9Qn0xR1xETw8LDZR+hy7vN1XmDtGLwD wElsLA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782167402; x=1782772202; 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=aHyd2g1UNgaIUxIok0KkAXC8/lBMJxC1+xkrt0NXgexxU9PVK/XsSpDmSABP0TUedt x/jz2ok785ME/WAQLkxQkY2AlPZ5VRHO0j31MU/i/V/zfhglyTNN6QSdSWha1H9dgcm7 t/PVaBS8SunBmWtIOtGDOvHnDGX5buhl+IKTFw7V+CRg/BY99rvb8fIsu7z+EWJ5D/mi pJ76/YJwcexpUCaWUGIWRTanM88TkvPCGenP2poYJZjN/h4txG4P7s9RP2a9JZ+WgFF2 4u4JW26PWcLrz7O4mAKf8gk0ULpZhLVMWOroNQ+zg+YCvVhvz5duMk8Q6liomKYebMcH 8Ldw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782167402; x=1782772202; 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=WgFb+6J0hsNJTcL8NFVvGRUVTWUzF2oAt7Apk/frl1fUI07ekJRqkEwLq85b7uq149 4JtHiBHtCpX92ZaaLws5kBwxgP1CQATv92kcrEH1oOdoBv4u97U/AqOSrDwI3VeIFMoi 1/WX00EbVuGV+6tCOMr9WlM2cZoipZQKQ0tKzvxKJ/GDusNwi12Mni+XTEGETn0mk9+E //EXb0gXq40ExdgFOUCe0C2B3Sl/0gWjgnC0NjI02EpvklClyzBKTsoAFZIxrghQ7nzz lwF/3eVnal9hEBQI7vHjAPCj1DnVJVw35VsuqMVE5dgbZd/II9iOpczQ40c2TSieWHFv 7lvA== X-Gm-Message-State: AOJu0YxzCDfJSLi8b1tI6E0VaQ5v7IOFjLrahzve8JsME1gOOvV4cQtt RZHnRPVaFwsxLKEDS2K28nvQ9g9DNJbf88aXpAWCLbN2pjVvkVPt4prkbE/mwgQQLEicRMebe3z 9M5o6lEyUmBNvjJrD+Gl5sL25olKj+DKxLuRpafZGupDeqIb3UrLmoYfJRxe8R+1G2g== X-Gm-Gg: AfdE7cmzXZyILatjPSfvijFLKiQiX+VyDCT4HumjSkY08w+QWdI/0KnUmgFeQF5dby8 I+OHPqWXXGHkVKLJnFYordWPzcmPTofLVuoeBEx7wpFRFMIEVg8yLuI+qne2YKvkAg43v2rjOlA 3448GKlMw73D04AQsn3cOxSgjk76NVk2gqEawahvWU0h9wpP7e0hxIsgEQZUPU4Fk4hqs5Jb4Qd B+uKxi42f6gGn8cRq/r+pPH+63MA+DSvV1/XpZIDoZpH4UcAIc0axQx/AumrbWVlcj4IjejDrsa AmvrX3uhOJQYS4ERNRb2D89amV666xsMwapTtdW/64bEnu0URny95RdVTwftjXmjYUSyvbKOCp8 mgujWbMWS4MnHjLMFAPGC6S07XdFwx4mksP5JGavWOMAMUCdizA+S4wGSEoE= X-Received: by 2002:a05:693c:864c:10b0:30c:1865:d9e9 with SMTP id 5a478bee46e88-30c55684765mr752540eec.21.1782167401576; Mon, 22 Jun 2026 15:30:01 -0700 (PDT) X-Received: by 2002:a05:693c:864c:10b0:30c:1865:d9e9 with SMTP id 5a478bee46e88-30c55684765mr752527eec.21.1782167400923; Mon, 22 Jun 2026 15:30:00 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Pierrick Bouvier Subject: [PULL v2 35/75] target/hexagon: Update TARGET_PAGE_BITS, stubs for modify_ssr/get_exe_mode Date: Mon, 22 Jun 2026 15:28:24 -0700 Message-Id: <20260622222904.607771-36-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260622222904.607771-1-brian.cain@oss.qualcomm.com> References: <20260622222904.607771-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: AW1haW4tMjYwNjIyMDIxNiBTYWx0ZWRfX2E8NjJ8smUn5 /OuL7K7g/8WjFp28Vw87fOar7vnQICVCvuJQCeOwZ7YSmI/fzrfrYCSd1NNhKt3MoPI7jLFwC5Z u0jKp4KQjuw/DYaH536KTzfBhqqd92Q= X-Proofpoint-GUID: -ktfKl-N5-69KL0bJeDeI0uJwbs90YHo X-Authority-Analysis: v=2.4 cv=UJ7t2ify c=1 sm=1 tr=0 ts=6a39b76a cx=c_pps a=cFYjgdjTJScbgFmBucgdfQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_K5XuSEh1TEqbUxoQ0s3:22 a=EUspDBNiAAAA:8 a=1eS9DRoYkSOUxsN_X7IA:9 a=QEXdDO2ut3YA:10 a=scEy_gLbYbu1JhEsrz4S:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjIyMDIxNiBTYWx0ZWRfX8Ag+E/swo+yT RJkHhxsqYy5mlVZt4lb44yt0aGC1YNJo7ic/7f8YxfHmwO8OjMMRi+oovCC1JVVGG4fIdjj/6hu 7Ta9yHsT8acc3hC2f5G/1E46THe9NIU9k0YRSMwQWq6BpK+Mqeg9Mb3M5f2iNE1lPsyF7y1ZW4n /h8IjU90O1DLest0MKrPp/0gZITEvMETT+wQ3gEtfFVH9Q8muAnAuZPrsg+b5Z+BMf6+SXkPNhD mcs3dWVucg87gaD6HbtWQOagW/3PnIjQ+mGbOnYBU1UWlcCsXEWhlK8I2+a3mbD3KsElHW1E6l0 lU2BmF+bkfqCpRE1mJw4KF3uxDUQGOgPkR77JeTeiuGLEn3U0RkOWHEnq2EyEktoJTi/9BN/1VT PG7cdfv2aU2bdnmHeKcGE96vF6qFSx3qZtZ9MLWf7SCLSHBalCU+uS9fLhcr5ohVHbJWdVy/kum dHDkY+ZTPlNaFJ+dt9w== X-Proofpoint-ORIG-GUID: -ktfKl-N5-69KL0bJeDeI0uJwbs90YHo 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-22_04,2026-06-22_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 suspectscore=0 clxscore=1015 bulkscore=0 lowpriorityscore=0 adultscore=0 spamscore=0 malwarescore=0 phishscore=0 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606220216 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H2=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782167619862158500 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 Tue Jun 23 20:53:54 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=1782167619; cv=none; d=zohomail.com; s=zohoarc; b=jcO8p55sMad780oHZyF95CkWVAebpsR8GXvCh7lROcRcWRlS+NQHoGdYp4yIwBYSlhKyYOQZnIGvtqKWLqFJ6m272Gvgahzmn9JPqQBu89TYoWvaFKD0lpJvT5j3nq/eAWJ0oUcMu5GijO9OapYGNdOIuVViSNfcbeEU3RaB3KA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782167619; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=aWA31bVJq6OWYxO8wAycwBc3xywVW6cBTPfmSUJZnNwgjpqaAD1LZaXaBIpW4gbRCyrTtkIJqyUWHxUfp9lNIkXxFnVILQ+NPSnOKotWFnlgHED1HevsdvtQ2HZdH2gYnzjrEbpwPPohGrpeEisfbRm/DClmqP0JoiJy8KlA+hI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782167619304796.6082499117463; Mon, 22 Jun 2026 15:33:39 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wbn9d-0003eP-OB; Mon, 22 Jun 2026 18:30: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 1wbn9a-0003cM-85 for qemu-devel@nongnu.org; Mon, 22 Jun 2026 18:30: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 1wbn9Y-0006gQ-H9 for qemu-devel@nongnu.org; Mon, 22 Jun 2026 18:30:05 -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 65MJZjFV3222608 for ; Mon, 22 Jun 2026 22:30: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 4ey5sn1x7m-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 22 Jun 2026 22:30:03 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-30c0a27ad86so11726911eec.0 for ; Mon, 22 Jun 2026 15:30:03 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c1bd8d78esm10945995eec.18.2026.06.22.15.30.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 22 Jun 2026 15:30: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= ohgluABwS6D8saHfHv2eOLCkXGQOTd4JgFhw3pUO1aE=; b=LOaAfj8byInFB3gC HoALh+/QnoFOv9I9a+PZpLY69nDilNyiIiKX9qG8/lbv7jTZAWcicp6+aqkYeyZ8 b+WEa+SqR2R3qJzsGt6uf2pY2A6iSD85Hy40BWwdw1foSpMoUkOruPMRu1qQgb7Y 7lgs5Txs0dGLnGDq5+ERZoEr2kpAhD/GIFyMGIiPBRMBnQFK5SXACpXUi0ysv8Fa BPz8cVpvrNEUiEw8013F8WQsQrGMimK9O2l4HNIg58z3gZ0SSv9ooiC1YVww9jMM aDwKG3nhUqQZsHyzYpKXOQiB/h0Mj7kohVHB94M0mVERueiCvMN+z5hw8muD8qsa 8/VdlQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782167402; x=1782772202; 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=CsHIEp/1/3rhbRG0jCAtxtFDd7WxwMvwbur2xVHA7bzzNejhKm9LL7bnwpjuNmUR+3 uoN8qv60V2BukWOquIkjxZZYv7GNxtg2jNLCLunMbrN101Ja2H8yGjSKQrGwmixnPVo1 a2M2nRTaTPTEYLGfEDOeBNB9SwgoH4JhCQ4MQxi6XA+VYO5XFam3WobFcmz2p2KlrRLy DZn+1LS3muyc0p5A/RUp7/Z/S5LaBpuiX0qD9YpvzLOIfHqYTTC0qKmK36+Q4yvc/Lk6 Ac5gP4SDlw2UDF8adbwvltWd9oU+O3dW9j34V4JHF+s5hSMRxfeJPRB5hOU1+8dsLR/D oIwQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782167402; x=1782772202; 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=AmuOuHYHLvYCFQyVDnQFDsgzOFxlkn9PRVNDXEEyryGZB58tuBxpZMvKPcDCz69tQS SRjcnmCAGWea6F2LOdRm31jy8glaPBPxRcNehj/2SEeWcJfD2VSnEa+JGXh8sWkTg0DW zgEllbnjh6o/6XCSTR/Q+r7kqC/HQU+1O81kFGb97YPqrzrcF+ljDhmn6Nec03NKitTq xnyY0dxXOAMZn03WDFvKvV+Up37difltuFoLZqjaE0ZjzM2uyopUCnmjvBBopKler5Ds WD7Uo20dwtb+QKRhJ4Yp7IjKaR9mVwOonkSg3+NnywFtYxY/M7m10F3UXJAxDv6F5zY7 jEXA== X-Gm-Message-State: AOJu0Yw9/FDWYnBRR9SKMYEFVR5SWAgMP4rniHyFcBu6dOEwIFWbGOVs uPswBHoNbEnteFXsQZ7cN/Y5fnhyTZ2rVPuR4i2luBjL6fswiI1ZZTd2AUp5kzcD6ARY4VLTywB G7dHXFuULAStax7sfNgTgd/8U7g/hg3mp1A6iAT3k7KsNfTNjz2UFycD/s5jijURwiQ== X-Gm-Gg: AfdE7ckqd5fq9U8ibMoWZefiruMqJ2GBpdFX4Oo7l0T/IGio41Ummox2ly+S7f6WS7N 1kgkdlxW7fIuYTMMDDUX6Pw749PjCzV92TBU97I/Xjcjq/dWup28/B/eJ/KLsOsQON68Qkw+26S H1nB6l3/84zVqpS0DFwLGNuXImvUmcyHpxZKxiXIKBKEm94/20uaN34vfNqOK8LltqKUdnUVR+v NgXaIYIo3eMsdhpbPESVAOGHirulAnNUiGYgMLu6fil2/fSU+MbTJJOwR1Zj541cDQwKluFl1pV 4qcaYGL6BSaoFtEkT1/kcclfm4CG8tKNZw5tuHrpAkyF5XPq5+1YsFxRBJMVVvVG/vvAVHcgtrf 50bD7Uo163HqEm5Atl42hojdyAa08/ELQLPv1cJ20a0kevcgNo/3PZMLZDHQ= X-Received: by 2002:a05:7300:6ca7:b0:30b:c502:23e8 with SMTP id 5a478bee46e88-30c070057dbmr11441288eec.21.1782167402431; Mon, 22 Jun 2026 15:30:02 -0700 (PDT) X-Received: by 2002:a05:7300:6ca7:b0:30b:c502:23e8 with SMTP id 5a478bee46e88-30c070057dbmr11441259eec.21.1782167401952; Mon, 22 Jun 2026 15:30:01 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v2 36/75] target/hexagon: Define f{S,G}ET_FIELD macros Date: Mon, 22 Jun 2026 15:28:25 -0700 Message-Id: <20260622222904.607771-37-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260622222904.607771-1-brian.cain@oss.qualcomm.com> References: <20260622222904.607771-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: GxTBdm_83GaBPsiYolV5G-ASn_a6b1CS X-Proofpoint-ORIG-GUID: GxTBdm_83GaBPsiYolV5G-ASn_a6b1CS X-Authority-Analysis: v=2.4 cv=PuKjqQM3 c=1 sm=1 tr=0 ts=6a39b76b 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=yOCtJkima9RkubShWh1s:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=OC-ZKJ6AczBSh3OnBRYA:9 a=QEXdDO2ut3YA:10 a=PxkB5W3o20Ba91AHUih5:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwNjIyMDIxNiBTYWx0ZWRfX4LAZabxJFycv 88I7hbul/d3nJX8Yaa6OUUeED0A+gg4OCvnmsWr13HPnuUgDRbRiND/1GLz8mb8DKMTTO63AHKI rs3yAlHrjb4wVQCtkHAxS9DPX9DdFls= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjIyMDIxNiBTYWx0ZWRfXxZzJrBIcaXWi sqSJ6faXwGfgR5HRxYZHpkozUqAHEVuIzsj1rpk9qSlL8HTbfwuK888E1VQe11YozL9LY3J5ZEb KXOAt875Sj/I4w2/eh9AkDvApBQI0o+kIDt3S2Ot3WgPmoHMafdVRHjUqRj74b2D/aAu+IwGdDw WgasZWFwii+eSXCyhhFjpQqyWA8zgg3e2edLBYqNtN39qVoJvugo10rVYqiw0Mt9u2bc52e2m9n j6QV2MAs4i5alzhP6rEq/2vt0Hod/ZD2DzfbX8rbxLvkvGGUK9XYmH42yCzr2Fb7ffxKaabo0UC o6+6exUxkFpRzEepT7oW4aVlBi31IvJG1zuYvlM6Cv3Q/RrSBCCxAQCh6g1Fl9wInvyzF1trYoD 3hkxXIi9BEwxiqasOKuJXbbATUCWT4ija4EmsesjkSQGPIOQnhNHmHzlwrCPh/yCvZrILKMVbwg 972/yYqqvfcvz8eLQTw== 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-22_04,2026-06-22_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 suspectscore=0 priorityscore=1501 phishscore=0 impostorscore=0 adultscore=0 clxscore=1015 bulkscore=0 spamscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606220216 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H2=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782167619704158500 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 Tue Jun 23 20:53:54 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=1782167624; cv=none; d=zohomail.com; s=zohoarc; b=TapQR2bSzk5BGZbzCgrSa38yWPzDk5mZaetqZnCG+8FtEw0tP7f08GB5Fv/bGjLwiK8AETsXsd38nZfE+0OpdLKR7uTDyXhYbvP8TVsUsMqK1vZUdNuAiYnwt/j8z086zYCCvSR9UkYdHks2jJk+PcHURsdmFBPtWZw0OyTLIdk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782167624; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=mMfBGo5RR8MHNAFbjOBwNvrJ295D94lzD9MttQB7QDrLn9MIFShF7qj4UWPbYWnarDefJZGJh0P7kCFBxIwhwuk/kXOhHM+i90B+0/JZ9XBRnzR+Jv4SS9XyPZALO44WAGLvpnd/BSJC43fFqFMpLwyd9odsUldv8FI+2zNSikg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782167624204311.5422743039677; Mon, 22 Jun 2026 15:33:44 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wbn9e-0003eX-4M; Mon, 22 Jun 2026 18:30:10 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wbn9d-0003dn-5r for qemu-devel@nongnu.org; Mon, 22 Jun 2026 18:30: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 1wbn9a-0006qK-Jx for qemu-devel@nongnu.org; Mon, 22 Jun 2026 18:30:08 -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 65MJZuXm1541887 for ; Mon, 22 Jun 2026 22:30:05 GMT Received: from mail-dy1-f197.google.com (mail-dy1-f197.google.com [74.125.82.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ey3a0tgc0-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 22 Jun 2026 22:30:05 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-30c0d568830so6664965eec.1 for ; Mon, 22 Jun 2026 15:30:05 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c1bd8d78esm10945995eec.18.2026.06.22.15.30.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 22 Jun 2026 15:30:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= G8bosUNkIisGhuX8AG1Z5l9LVe/reA0/IE25v64WV3U=; b=VyOuZESmBaDb0CVh thlIaJFAGeUWzCF7d5zCW/qp549hQ8qi7M7CShioIrMio5IRyVj4DZ6/zr1cKlfo N1pfu/Jl6OtrHqFoqcb0Dnjk2xutAFV59cMuJOA9IeA5YPZ6Oyxky85dTYgSJ7Ry 5kI9WqhQbxthXAPuxRtaXpnhTp1bh/j97EgwnNujSICp4xmlwncpdBFHQO/Szk6w Zg5EChDQk8SDSArYy3bfiBrSTTCwv/kwu21/r7t3y2TLFRxGgDu5+R9JNR6h7efK GVRiIZC6vPzxjF82xIFXY2veCxyLVb+Ga46+omUE1GdWRkKcCuVhSr+R2MKCaS2l 9aFMcA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782167404; x=1782772204; 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=hliMmdy3vxSOCsR1JV1QWPnOVGmV3RnrHwgXXBq3jAML4M3Sk4bM7vg/99MRorGb1m T3ufOmoHz0JsvSU2sT5LWFFDqWUSu2Q1LOQl3tcKDJsQSZ5I7pj49KZlNf7G8WG3rkuS LRkY05QXmr2WlN/3W3B9blBaGC0TFGyFTTZvHiH0IjA68sXTOZjkYek+VAIjBSYjt47W SkRzJYLgoIV754Lp160tmQNAmWnROysX7TQTsjOpO3L1RRiESXNNp+HLS/QfGLx1vujb Psv8VZELVR60I2Q7DZauqTp9UKnyDv8I8R3jUD/pIZX9l7smPB63lwjboBnQGRhhyFRt cFWQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782167404; x=1782772204; 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=f30i+X2fWS+SD/AmcfyQHAPwSuZy7GcUAhfhLpf/kMeK/RUgjc6nJ9B4zt0dZNkdIt W61BvqIdAl7J5Fe5z6iNvDgac0+Rpv08SftjDciJ2kfMoaJOHDVp3yqEtx43/9DsNEhJ 6DLiu+WdBlKHYVcXd157kqlzeI/0w5PPFpPzeq7qKK5ZYlXikGHaVFLHq8EYNbBF2ZnS Mva4QpwAvmWl7IL/dSuxFb7gv44q61X0q0mWSzw5DempsnbVoUJMAi25ItynTryUDbt+ 9OFo4KZTYr288m8uqNyHLRSbt/9lak2/xgjpNxvu173EVmEJo7+9OLNlQ6yntajSJNr5 4QHg== X-Gm-Message-State: AOJu0Yw0MSkyXiGqTpdFJIsEFzOPCcQujvlcveeCghwpXVTCD5sjBtvH 7e58mmoNkJSR+pwkQaob66H2+7E4dfIZ+Ku7vWhqFmRkpCWhi62WBpHjPnUzBEUa0bXAJKi69Kf jVP3SAaHY4XiT/OdGURYPZU8z3F/zZ7k7kapNIWC8Fx1q4czehyTnah/J3S0RpemFYw== X-Gm-Gg: AfdE7cmu1DOsk04XDhp0BF42WyQI9HXyjnfd6OuP7DgYw1084X1jgXG8FxrS/HriHU0 ArTNyyKdDJG8xMAQZva6NUvps5PeWt4nfGKgADVA5pFbUTf+t1lG53+GuGb0XW54wSrKmDbZX57 v3htJM6RsYPP5lGPJAoirbWwPyXh0KLqnMF3kUBnMOfSKcP6bHhLiQFAbYivZNA/+5dQnYBb01z gLK15Bmpl2vYUoI6AYzvM4nmWu/JBGztsJyRZQEgWoD9+IVCwV4yqCF9bbdCzA1nS5cbGqdxTsb FsEW2c6AEeC6pOwujXXQgHG4YQ3iIBCJff7QRN0iqQc5hX3XB4qvwZTrR9ebrJ1DbneWnRNiyr/ sCEg6Pv6J4iSbHD/9gIlpNgFWlzk3b5mltECukl2eurekVUhRsIAdui+p+AQ= X-Received: by 2002:a05:7300:578c:b0:30b:fb9c:f8ff with SMTP id 5a478bee46e88-30c589f61acmr365890eec.6.1782167404244; Mon, 22 Jun 2026 15:30:04 -0700 (PDT) X-Received: by 2002:a05:7300:578c:b0:30b:fb9c:f8ff with SMTP id 5a478bee46e88-30c589f61acmr365865eec.6.1782167403599; Mon, 22 Jun 2026 15:30:03 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Sid Manning , Michael Lambert , Pierrick Bouvier Subject: [PULL v2 37/75] target/hexagon: Add hex_interrupts support Date: Mon, 22 Jun 2026 15:28:26 -0700 Message-Id: <20260622222904.607771-38-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260622222904.607771-1-brian.cain@oss.qualcomm.com> References: <20260622222904.607771-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: AW1haW4tMjYwNjIyMDIxNiBTYWx0ZWRfX7YMIbckBptzF WWVfdolw32Nohl+2R/jcNPalCX9+GDT2AGRDH7oCBqVkSig5coPVCBHA5gztyAdZmkYHJBm6fMf 4fLKH4ECYmIZ0GjMw/5nT7WBqADNLdo= X-Proofpoint-GUID: G01_JfcBHLWYSoUJeaO2lEDAru5AssDo X-Authority-Analysis: v=2.4 cv=UJ7t2ify c=1 sm=1 tr=0 ts=6a39b76d cx=c_pps a=Uww141gWH0fZj/3QKPojxA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_K5XuSEh1TEqbUxoQ0s3:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=_4Jc8uW0NYDJnYJF3oQA:9 a=QEXdDO2ut3YA:10 a=O8hF6Hzn-FEA:10 a=PxkB5W3o20Ba91AHUih5:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjIyMDIxNiBTYWx0ZWRfXwp6Y0f07w5n7 3i+1V04+OMLNvjYYk+6Rt9JoKaT+2f2rUTyq99Um+diPSWvkezihdeVqqCdmBopXTe2Zm2Rx+6W 7OeVK5idV2ZEB/DbA3iiKkxrE7zbFlYnbo7US9Y3NTAzrmvTYUJft3Vl1FXKyOUEwSmwEMreu3d P0/AgKlNMHVJ5h8f9b2wu2Yl45SJKSfVFk7L67O42iYKC+xFfRy0zZRfmkXpd8u/bDEWXLYNV8H bAbMv4ZHayJQuWRKQ+d6uqv9VfS24dq02KuVY2qrlm4s70/D3TsKtIoRVPJ5ZqNzDZY6jZrxzdF bOGpaIhqvVXtl+oHAKUC9canpnrDT+EwLmffM6Q1BUVv46PVU52nQhSqw7BtOX3vd7C7SdOdesj x66fSvaQx7s48AcQQDg7FlghaFHPci6SuM3SFn2mEHsCD64Dkb1sPf0RuNMHz+WxsfGakhg4Eu2 AjFjHMhsqQ+dP+h0TtA== X-Proofpoint-ORIG-GUID: G01_JfcBHLWYSoUJeaO2lEDAru5AssDo 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-22_04,2026-06-22_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 suspectscore=0 clxscore=1015 bulkscore=0 lowpriorityscore=0 adultscore=0 spamscore=0 malwarescore=0 phishscore=0 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606220216 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H2=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782167625738158500 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 Tue Jun 23 20:53:54 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=1782167592; cv=none; d=zohomail.com; s=zohoarc; b=do29ridFG2hgt8k0sviRomxvZkEKSi781tDBuiRJx8rzgm2K+FBDott1CB0+pMnK4kYIWkipZOjpWYpkfyIIYek0+kWBi0TyqSDWeE9IhLSWCD8Br1uqr+GYjVRdHNK9QuRvsZd9Un6l0vUeMJdVBZLtaBqkvwLAdQdsX23HHSY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782167592; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=j0WQX11GRvOYYIxR4c+KbGqTeOerG8ukyM4VL1EwtEUfCmgO+liZYKhD6LP+yAKNOWLN/EpPmPJr8NK8dyz63ldDcC5kWOvhcTvdOHVyqulmEZMHabkmN3IfetzCcF/bSffN0oCjgP8UGbxKp/aIPC6W40gBchzuh58Vyatx1yc= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782167592160827.7643836727232; Mon, 22 Jun 2026 15:33:12 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wbn9o-0003yW-KQ; Mon, 22 Jun 2026 18:30: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 1wbn9m-0003sk-PE for qemu-devel@nongnu.org; Mon, 22 Jun 2026 18:30: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 1wbn9l-0006qh-61 for qemu-devel@nongnu.org; Mon, 22 Jun 2026 18:30:18 -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 65MJapXt2177085 for ; Mon, 22 Jun 2026 22:30:06 GMT Received: from mail-dy1-f199.google.com (mail-dy1-f199.google.com [74.125.82.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ey37hahem-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 22 Jun 2026 22:30:06 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-30c50cd6cbcso1249287eec.1 for ; Mon, 22 Jun 2026 15:30:06 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c1bd8d78esm10945995eec.18.2026.06.22.15.30.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 22 Jun 2026 15:30: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= oY8qK4LAUtINTePvitXB1Xfo61hqyHEyBFAF6Gss008=; b=TNczO2WdsbPGtIZy 6VPTVFOv1UwSwqjaIwEX+iKCArbujkeW3zP65/UoLiYZ57c8T3pi2V1NEC3qVDWu YA4lhjYovsC5lKCLpl8AAz/HpaAa9MLXaVXKMfVTFVL0Gvri29f6qIJMiRHiKhoG 9hS+mDF+A/BNA/jv7OQuYnHqTg9Zi6dQBC3NJQg1l7ocJV20kSyvscSy+TQJgxj6 22qi2XW0vRnRAT3QNNABbehTC2JrmDGx8fBod3mDQri1rOy8D8ROf7xSyeDkpj6T Uhi+BOAgEDP2PmeZQe375frm4qNPxZFrEgTDQ5uzgWTSplYc4+pbNzIVQvzl8XbZ UKPOLA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782167405; x=1782772205; 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=ipIapESedcAg/R7X8EBY++rhYI4Z9K+fxlZNDn6jkHZwf+25j9gpz+YLNvc1ELY0cZ x5lnFF9GRifdoVlPipim7BXGXa+ntA6t74m7SR4vtwaL1BIHCWnTqGJ+45frzkP4ONe2 pFIHuRQ+Tv+we9aun+0LgWkjUD3MH4eJdQehtQRc/TLkuGTMVU9bk5ft+t2xO+CjORjA 7WQ6vEDViYW3llDabogwYyM6tWQTWax0mQZuUKh+wDqy9nlDFUhhyNKzdCVDNirPk+lx Sl+dJ6WR3a3wULOFxraTNIJdhHqtxY+XnqGQGhX/S99F05cD/aAXGRFoqycJs7YWlrQM wP2g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782167405; x=1782772205; 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=KygawmV65KkTPi1E3+lTPlX+L/mFUFxHIwToimuFsBHb4RZwPWcg4hk8CCXfgLER0Z LhhXzOpMFiZ6QDdt4KgA3eugQrbOwu1zl7RnJV2dGcxihqshO+D1g+3nAn9lniQB03Qy 3NTyQBrHqL5+X5Lv2mtm0nJGZEsnNGYilgDct5psLBK1WMWE9o9DR/xwMh3EtfhBvIzP v0t94OlPtPjgpzHtnTmQVAg7BX8A3xG9OMUAS3rXLGHCyOZyQnFksxPUDeQAZPqmOwtI Zox7aRPCp10nYXwxYBudIwqUrgxJGDG+fddmstx5x43Nn+cgW2Srl/FtpEXv54CuZhDh z+GQ== X-Gm-Message-State: AOJu0YylrXmbuVmwQ8dpqIVPjp3DyTGpL0SguV1elmWhWMajf21Z7rGR YoIjgmG243DgrwNlTo0cVbldOuhtph6v5HfMuHHrvF7z5clzlUH98en16zH+GyRI33gqPjS9Mji ulaV5F4dL+r8ARqxRpcZ2RWuYQlqmTIxYhtTZiIKR5oOPz9qSgHDucCvR9y3jbF/8Uw== X-Gm-Gg: AfdE7cmtcoCzqNr96jLREZ7xQHeiWQIgUYNWA7UiJrkZ8GYJ9SYCU9NNFcJHCgBolwy pyi4HTWb0tuCdJqt6BNQ8crmoFqscr4AgbC4LbAKH7KJacqPyZ+YfvDYrqJVt/mMUP6cVLrr8F9 2hEnxP7Lhw5/M9nwpDSjJvhM6LBhJX/3CuneL5gkJ0/ksSkw9CEaUPqCBz8c0qjCtqa48L1oL9U ZfOJtCxdtT5BS76z1wCB7paqYXTf7Uc+5DuVNH/qq0+D0QW660WEdAOzYkYh3qEegtb82HAc1Mx RrCesBIaCdYyDnHejKGEaWs+hL8zai+n9ptaqmz4gufNd6C6T2uMviUv/aaYycsOKcTCFNUjiEj zOUy9cZuqDIm5gVk/Doi5QubjUqnudBifoDd1oFibyUnElfWwPqGEHu86ok8= X-Received: by 2002:a05:7300:6c29:b0:30c:283:9042 with SMTP id 5a478bee46e88-30c58ceb368mr337150eec.30.1782167405125; Mon, 22 Jun 2026 15:30:05 -0700 (PDT) X-Received: by 2002:a05:7300:6c29:b0:30c:283:9042 with SMTP id 5a478bee46e88-30c58ceb368mr337123eec.30.1782167404557; Mon, 22 Jun 2026 15:30:04 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v2 38/75] target/hexagon: Implement {c,}swi helpers Date: Mon, 22 Jun 2026 15:28:27 -0700 Message-Id: <20260622222904.607771-39-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260622222904.607771-1-brian.cain@oss.qualcomm.com> References: <20260622222904.607771-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: _o_54_tcK9atm09mz21WmA5sWKH5lX22 X-Authority-Analysis: v=2.4 cv=ecANubEH c=1 sm=1 tr=0 ts=6a39b76e cx=c_pps a=cFYjgdjTJScbgFmBucgdfQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=gowsoOTTUOVcmtlkKump:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=KN34Fzpn9o_w8YhA2GgA:9 a=QEXdDO2ut3YA:10 a=scEy_gLbYbu1JhEsrz4S:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwNjIyMDIxNiBTYWx0ZWRfX1Ynw5exyLl04 ql6FKu196OMVPHOMJTn49NWCw7rOJXacy2P/tqhV6rOu/qiNSRQumtuEueliI2YNpVB22GeVvCg 6SFpN23IOUde4L/uW1iPtzqvOyXkFoI= X-Proofpoint-GUID: _o_54_tcK9atm09mz21WmA5sWKH5lX22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjIyMDIxNiBTYWx0ZWRfX/nPEPqnyGiB5 3aaJbCKFFNBu2dmmJ16XdyvABnzWmKRcO8uKtBR3s1LG6ugAYRaR+Ur+xgLC6mhu2kb6mItFzpk fkJMnQVpBDbZUTQOXCrwypha1qY8GfMGaWvZByZdDpurQKrQxSyoIRtO8NJ0kaBrfppDUlFotT+ 0/UzMPqct1h/YbGrI9IHBY5yA0AyUWnCSGR1khn9RjZCln5NtbodBRKjwxs14Hu1oKaHbKU1h+4 hud/mSisGCPYKiu56YXjuh2Joi+bvhn0N2Lu0GVBZgk+Z7wCFB8XUC7pBXPUfHP3AzobkC5EvUk bZa+hCctMdBgxgaCK9eUkalU4hpyTk4c+RrpMX6wGUj/w6wrHkn6v7odeo5FnaK3f1Rg/KG19cc nlEYOBuIgReJbzq1mdRMiaBa4IUi6ASoYuCqbQWXr/ZbScgek2hdFDxTCyQ7yCDlNaesykRekky ORwXx93ea6tG21TcX3g== 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-22_04,2026-06-22_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 lowpriorityscore=0 priorityscore=1501 clxscore=1015 spamscore=0 suspectscore=0 impostorscore=0 adultscore=0 malwarescore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606220216 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782167593574158500 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 Tue Jun 23 20:53:54 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=1782167469; cv=none; d=zohomail.com; s=zohoarc; b=VaG/hcPjyHBRddVDLm0T9JSHpq6jaXbOFSJLCqGYBzQO8ftgHRnhLKmi1EWKj4CbvDcG0y1yxCN68alWPYwqDuVhKgcoXVSVIjkQ9piR1Y3q8dvqzRAqcJxGg+4lCZEZ31/MQ0wYhThl12DxgU4gCb0PIaBo4Gd6Irob8GusjUA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782167469; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=UtAe8Glka29umi6SZseNCbxKR3B1OeqOTLfRo8sU8VR8wsSHyugL1mRceINiyZfMnBeebvXlN/WBAV9B+YM7NWKH7Mgvwx2uxUtwhEfW81UimDgUfmpiUm/HYzTx5qMgq65L1sPXwIJBQJi7Nb7OGblNGH+b4XIP00pE1dARj5s= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782167469706199.12854906799112; Mon, 22 Jun 2026 15:31:09 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wbn9f-0003fB-8H; Mon, 22 Jun 2026 18:30: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 1wbn9e-0003eW-0d for qemu-devel@nongnu.org; Mon, 22 Jun 2026 18:30:10 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wbn9c-0006r7-9K for qemu-devel@nongnu.org; Mon, 22 Jun 2026 18:30:09 -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 65MJZg9B179000 for ; Mon, 22 Jun 2026 22:30:07 GMT Received: from mail-dy1-f199.google.com (mail-dy1-f199.google.com [74.125.82.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ey2yhtjk3-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 22 Jun 2026 22:30:06 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-30bccca5620so6794885eec.1 for ; Mon, 22 Jun 2026 15:30:06 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30c1bd8d78esm10945995eec.18.2026.06.22.15.30.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 22 Jun 2026 15:30: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= 4QO0cWAkJ+q+F3pETQo9dtN15DOJjfUdoMf8+Tm9oak=; b=Waz8h/h2UElsDg8m kIIf7XINWB0wodiHcS419AvTCpTYpFz89BSepG6JjuibUQZenVGIEQXzr5QlY8WM QviiwAGBX8xeR+wp7arVoFUYugLkgMES5wdOoz1s7TkJUIECwjRnUreBZo7wdhTU tS2bJJ6IAj2mSzG+2Pp03G8HBEYhkiajAUABD8RP8ijjHvXGS8O7nCYR7tGsDthP SJh0heQ3i2jMznTnK/Ddum8aGqwwJZKNP9P9OO3C8lctX5OnlB2Cju71346XrTdV 1ehQM9Gz5R4n7PRJYfKInqUvTPx27Sw23CCYU7gisvKX5tvkDVPuIqhq0zJbf7y2 4fvomg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782167406; x=1782772206; 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=iRDQQbE8C4QaVghVeo5FYmZeOXa5lCAgof1tC3CPG/BvADUtpzHFU62znfIyoLmmmA 3dZqixhw1SyiPkCP3QgxGmA7a9inw+74oYoFo43qYHlxQxcwfFcHAUAIvNNQjzJk+q5U 7JmackVvo1r0Q1dz4wPIBZsAajBLkJZJb1hvwYLSLmw3VcGUXR3LD0O4Ud/4BPJXdaJu nxjbXGyOW/WFuM6YJ4zJ6Vts8YzoCoADjfYij8kFQap0GzA/l/y+0SEVdZoes0iDt+VZ VUsxHjKi7a4VhsuUan84/e58ZEv5YGjHmEOqcqi3inkr6JfS8czKzAU30KI5HMnYrTtH Wl5A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782167406; x=1782772206; 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=Up5Rk1KuWuDTjehtRKsf/81Eu9fErihDxsIgZaKj3MFQimylRDp+yFAR4H90UVqIWo NpBFZc8g7fW7QN6+LAnUleyDX+uDWp66ILzffAhFc1ns+KCYc+VJBWpjFfzU3N8vy7J1 dUiHf0xlCAdTYXfBIkI+Z7Un7OOA421BchShZjEKL657ZeP6UMES4+tZUamEAWkmYjF8 T10QfJl1gDq12ontZSBWVCYN1iZlqu/C11yvR55iHWFyQmOVfo9pCetFDFuNFcgbgaa7 s/3ZV0XwN1K8+lzrNISS4kAw8c+uaF6h3s8K8EtQyMsOOIMhyFfJ0TlF5ImgEBq3+9jB ByCw== X-Gm-Message-State: AOJu0YyWRmW1zgO52X7jJP/bXQAcjaFYQTakhGd0nEPry73Gu4NTEQv4 7uQLUWxS2SxFr7oHrOFuzg3AMDEcWSXOC4AOVFDJX+aLkklf1ASNG2JizmvkMHnKAlNPFTOVcSf u0qY+/9DM3S1EXbKqpPmFaQiUaNoC+1ZzoQ1jctdsoCrPuxCIx3rFupIYnoqSNM0jSw== X-Gm-Gg: AfdE7cnU4IqRRDG+MzddJPuhog3Ef44O6F1C0FVbNsbaEfz8UN47P/+NHk5kKCeGBZ0 0R37EEtLGTlYgRyOLxSCCLHs9h/9gRUQTHJrlwFPZkUCLOvUquZwqlMB9VE2eq8H/nsGe/YjdS5 JsL6a+XmMFjmrvHbqRRmSavqqwFQwgFdrVn6uK1ax2OHrEOH5o2NK94c4jGoev86l2I2Tsta5p5 UhiryHfEcITn3C1VataI4J2t4NDJtRl2IzQ21x61R1wdBstFl5gk+SPVZVlMpM3rFj5aySU7ejG +kvqi8vwJ9NbTkjdDy0xIjusB6Ez+eYA2dEsrFF0PFXdrt7O5cVS8e8GJgw9Ss/XrMbY4P5QCuI XYgyPs4DaovfIkfcK40c6jEOuzY5F37DC0A5GqWz/M/AExgdnflMKyzi5sI8= X-Received: by 2002:a05:7300:6c95:b0:304:3c33:7ae7 with SMTP id 5a478bee46e88-30c06e0f05fmr10778647eec.7.1782167406252; Mon, 22 Jun 2026 15:30:06 -0700 (PDT) X-Received: by 2002:a05:7300:6c95:b0:304:3c33:7ae7 with SMTP id 5a478bee46e88-30c06e0f05fmr10778626eec.7.1782167405657; Mon, 22 Jun 2026 15:30:05 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v2 39/75] target/hexagon: Implement iassign{r,w} helpers Date: Mon, 22 Jun 2026 15:28:28 -0700 Message-Id: <20260622222904.607771-40-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260622222904.607771-1-brian.cain@oss.qualcomm.com> References: <20260622222904.607771-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: AW1haW4tMjYwNjIyMDIxNiBTYWx0ZWRfX1YabO1gzXeSp ZmIxi9fPr4kPk9Vhff5kxLdVl+nXxMMgnMRo7+eDxXqohVYgZ92YglA5PQhurViQi5fbRkiSrY4 nMgu1UjFmavpn2YmBVBlP80zZ/G4eAg= X-Proofpoint-ORIG-GUID: Ytge7Su8CSpRoTgpUczHYm4SdN6ss3Nk X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjIyMDIxNiBTYWx0ZWRfXxeKns83Wcrq+ 1AdsQA0xRSvSpu7k/qpuXeHTnustV9eVE6c+AowMMoMAWN1yK8jv4IeZfbiym5Gr/+pts+drxTi CYPPBpe9Y0d8Xp7d4dPFp3GmYv02VmbruUPeiB5qmWmC4rkfj9bdxMhK0b+jGWABtAAjjvxRqR2 9wS5PXIutCwA5xUoxM7eicO/4xaUGUEw7S2Ek2hRbcAkNDYxNhP9XPlIkB5gdqi9a78yCJywmaj gWFOK0qpTdhhh9GhDlXqsoTxzlPL86fut/QRZclFC6SZr2wmyGxBspz0Cv7QaTgu/dLRjS8gKnK UGUYqG4qR70rg6l4bYMmYq5j+b2lDFTiIqBn2oFtxmEJNLkXSnPNHzCEv7fUXWO/JDiWd0K9Qf5 kOCk1sSlXCv7rl9dOKe4A4W380QS5RF8AqOXTREaPfbigMNVzlEE+qOMhuuQJcbW3OBIreH2K9j yF7LSJTDQmYBJP9ecCA== X-Proofpoint-GUID: Ytge7Su8CSpRoTgpUczHYm4SdN6ss3Nk X-Authority-Analysis: v=2.4 cv=cKbQdFeN c=1 sm=1 tr=0 ts=6a39b76e cx=c_pps a=cFYjgdjTJScbgFmBucgdfQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=Um2Pa8k9VHT-vaBCBUpS:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=VnV9S1Uu6eltRR5mmX4A:9 a=QEXdDO2ut3YA:10 a=scEy_gLbYbu1JhEsrz4S:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-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-22_04,2026-06-22_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 bulkscore=0 adultscore=0 phishscore=0 spamscore=0 lowpriorityscore=0 malwarescore=0 impostorscore=0 suspectscore=0 clxscore=1015 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606220216 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H2=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782167471272158500 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 Tue Jun 23 20:53:54 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=1782169244; cv=none; d=zohomail.com; s=zohoarc; b=OTiwWiQT0QF3hk6mUQ/bpCh8r5g9ihjTZVhVxRDNUryWIaw8mekT9m/IoI77vCBWvAmvsRN76qYUTmFw1oizVrXyfF0gWhXNEVNwlyCPiuUAVOMqYmwQ7SNJ85AOdrQ1e2zJPM2lZODreo4YDR6ukM8X4Mb8XeITzZ3u2AhgBDY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782169244; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=O0UaeoEEjfUlvBymynaWvPHoAcUyZGIxC1IESnMXLQRbXAwiMoJ0T8fDrQIG3HD/fEXcf7tZm8I2APYrkxracaojWSp6Uxz5gL/wCJ7Z/C15jImnwbWKnUroXdx/Ym7pc3sMtwR+EglqcvqlBV5LL2msfhLgpPpSEh7WFGgKpFQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782169244396464.8132757431199; Mon, 22 Jun 2026 16:00:44 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wbncl-0002mh-MO; Mon, 22 Jun 2026 19:00: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 1wbnci-0002mR-Lc for qemu-devel@nongnu.org; Mon, 22 Jun 2026 19:00:12 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wbncg-0002Cp-QO for qemu-devel@nongnu.org; Mon, 22 Jun 2026 19:00:12 -0400 Received: from pps.filterd (m0279871.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65MJbCD82122430 for ; Mon, 22 Jun 2026 23:00:09 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 4ey5n421d6-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 22 Jun 2026 23:00:08 +0000 (GMT) Received: by mail-dl1-f69.google.com with SMTP id a92af1059eb24-139553dd8acso21355946c88.0 for ; Mon, 22 Jun 2026 16:00: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 a92af1059eb24-139add73a44sm9128726c88.13.2026.06.22.16.00.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 22 Jun 2026 16:00: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= TfVBLrLYsvAhGMAw1f7WT0DQu5QIyyTkxXEQsAXLmCA=; b=j9mbEMWm0LjQZvUY 3z3SDHrNmv9uGTXTI39HO4qG8HqSIQFEU9PX0C9+v03EnkTbD0ITqomfVAmdiiN5 UCfG3RezrsPUGSRy11wxPRLz+oIxUC736NPGlIqDDkKiGYsikXtxwmDnOzhwsBq0 dqjnBSoXyAIwWKqxjrBvmak/GZF23EXumZmdDDnyVG1OkAXp2woV6pXAkFjQ5Qlh s7Rgn/FDu56VkdwoqZVt0jWRsSGFE73CVBBgq7D9V0WyWEo4aZSCZnS04K7aNEtZ u3c3HCWGSFwUdN2nmmJrVmKw5Rzx0VhFifG0NHHuOvqPZg3PeZZkd30i2LZQD+v1 A+0zrQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782169208; x=1782774008; 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=DN1Aor6+9kUyUNG0v+dCygQ1/gww0P1tE63jmp6Z+5JSlsbzT12beawPW4IzOZIsXs zL22nl/A9g/Y5sN0mB1FPx2QLleBowUPvf3nHPy8ZOI16+hHg3mvUHY9xLqI2SXAKYz9 b/Nw5jUNTX7ttIhAnlYr+qGNqyqwcyR3trHcGhtj85TnUKfcm3rg1vpOUDFmt0aogXDz Kl2BcLVLfjBpjmyQemN9qe5wAM/ND8fT971vlE261Mpy0xqVC6OBazkk1hGCqQeM0UIu S9/v2chSXx0Evjv5Z/WUrtI5Kf53hz0+Q4ObBiQkY0HmgS1gMDDcGrlvb73sIojnUX7z ASnw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782169208; x=1782774008; 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=HPv0kLQ/J3RScfkBuvUJEumGKED96OF6fpwbe3D99Y/lg/n4Szt0tMDRpOY49OEyIp 4V5QeHX57wK40W+PJBBKyZjrTztm8LsSadMC9iFeqNXn7tM4GzLm2c56rNx7AQN3siBu 3eISWQlymeY/8MheEOa64Aqoxq+jjsD3y+S2u0OZUhDczJWqulPrzRVtDg51npvVDnn5 BoLQpY3xHn3RN9ZOISVsCb9Q0RQYCE8pyGq0FQBX7ym18kxGMLtCQjsSYBx7qnXfgEPL SARDhdD08CqoHxtvhOKPS7i1dsNkk9VYz4ZGtoJhntrHKXok8CU/cOsy/4LairYsSc4Q 9BXA== X-Gm-Message-State: AOJu0Yy9uiNrzKi9auFKLVDn5n712p4P0lUfJvEbqVemSFJdmibRtxQv VuyCMrB5LyQZQ+PdmS4E5y9riea59QYhihJLgHt4rZwGcQ7QEzeCK4Oa7v1KMzzyn4cZTJalv4P jJNNURWrE+91SGd5xblTM4no7zD5YoRH1WDZ2CxZI4o26Pf8D3/kVGb3zuWFLA5yMdw== X-Gm-Gg: AfdE7ckjpKfZm32VzccqNBK5esDypAuxUCDlk+D+ZoHauxPmIoYp07Y9Nr2a3u3DaKa cVi28MftxKMUYhIw/0YuTTucCBNOw8pORiBYRPS0Zu4s0udg/aJVtKODKRD6N0wM7CQRALweRek JjO1IiE7I0x6KaJ6b6kXu3P/OF1FLc2XvcyGSZZm93+vj1JMvvOMScCIGfBbMtqWtaYJHsWNRMq VP7HX+O7yqDfI5RTl4C/gkUi+17EKWiqo+a6a78q04lw8FO5g0kCdnF7GgJmhMN6lEUDxyOS2cE ImxKD6y6WRKVoUKHcdqDRmir07P5Pfpqg0RloWq843CzOR6GuiCV7BNiqJJ7ZFdzG3IdZ7Uqj00 btsqKPkCEOhVlgFGefl3wCQDta9ZIaRZ5AHo9/ortvl5bVjeYWIO8NjH08T4= X-Received: by 2002:a05:7023:a4d:20b0:138:4023:8b6 with SMTP id a92af1059eb24-139a34f527cmr6788089c88.10.1782169207928; Mon, 22 Jun 2026 16:00:07 -0700 (PDT) X-Received: by 2002:a05:7023:a4d:20b0:138:4023:8b6 with SMTP id a92af1059eb24-139a34f527cmr6788074c88.10.1782169207180; Mon, 22 Jun 2026 16:00:07 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Pierrick Bouvier Subject: [PULL v2 40/75] target/hexagon: Implement start/stop helpers, soft reset Date: Mon, 22 Jun 2026 15:28:29 -0700 Message-Id: <20260622222904.607771-41-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260622222904.607771-1-brian.cain@oss.qualcomm.com> References: <20260622222904.607771-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: AW1haW4tMjYwNjIyMDIyMSBTYWx0ZWRfXwsUYv1xVkXiA Rh4U79m4/o50QHzRkTT6W1rTanUiT/US7H3JqTJEKKeIB19Gs9oaacbtY4VSRAU36u84a/aBweu Si+Bgvckug67XohfrA0cXSA6PjVuPtU= X-Authority-Analysis: v=2.4 cv=R8Uz39RX c=1 sm=1 tr=0 ts=6a39be78 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=3WHJM1ZQz_JShphwDgj5:22 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=mCWuZxMSpaUKZHDxuVkA:9 a=QEXdDO2ut3YA:10 a=vr4QvYf-bLy2KjpDp97w:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: mz0xB-fNs-TMBKVD8ge57S7sYrlq1pFR X-Proofpoint-GUID: mz0xB-fNs-TMBKVD8ge57S7sYrlq1pFR X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjIyMDIyMSBTYWx0ZWRfX5nRGkJu7r8I+ w+C3GBRU/9ihBjnKDYOEU5rBtsNPe3udAjuk0eqzE3/PIGPH7KYRWOg3qDzvICHKA0JXp8gZ2NE MwfI3hKRJeu12M+5UDUSDpwYL+vvQthPCYvYA5DUowkizJ2f2YJeKR+9OgTtSkAw3TnM/3X2hy4 TMC54rPD/SKLonAdPmvy47XL56CHWxKKXXQbroAXXwiRTDAiayJWQAIuOSC/ESEmBTU6o8P7wnw DG/cTD1TVQBh3M8b27G28UEVm6Q5V3JfD/CGpC9aHs411fROaCAKaiWlhibjniz3MhY9IX4Wcw0 GVOSRNJD17u4npsYOz2m8W9cEMseYc2webzov752wasmsxK7waWPnXfM7g20jjA3VUmotqbe5pg J0Ot4nhHCd72hRK5MEuGB+bq4w3dQrZCUUlV2AJT8yKvk4UF8rRZToHg1o9nEHUYKkxKQfobx0w RhFdDwJszpFaKfRM21w== 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-22_04,2026-06-22_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 clxscore=1015 impostorscore=0 priorityscore=1501 lowpriorityscore=0 bulkscore=0 suspectscore=0 adultscore=0 malwarescore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606220221 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782169246098158500 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 Tue Jun 23 20:53:54 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=1782169372; cv=none; d=zohomail.com; s=zohoarc; b=QYz/PYDa9q0bHyDk34BUy3ZmsrOiwH+bNwaMXOYiN7zien+NLpp6ijsY6CP4GQY4rn6WtkhlKn9ByJR7ggpuGr6AbeCXX0w6wuWvTZlhxZct5ra9j2qLhA6KULTHs3JTryHKtj4waonZXu7JKs9iF56HBPTYjJBUCpYe90oSDLk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782169372; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=OSz0tNA71PB1oE73ZbXx9fok29+n6qCpZRaZzVz9DPvOg/UZe6jZZCEjahcMIInGZ6FF68QCuwy6jyJTtnIs4m3G1DBX5BtiSMadTeqC/JkkTV2H1d1tJbJbgDXW994xK+JW+9ewozrJizrrDvBeH+CA1OU5ngMCTKJ4WS5v3VY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782169372416558.0487250965889; Mon, 22 Jun 2026 16:02:52 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wbncq-0002oH-Lr; Mon, 22 Jun 2026 19:00: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 1wbncj-0002mZ-Bz for qemu-devel@nongnu.org; Mon, 22 Jun 2026 19:00:13 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wbnch-0002D1-PT for qemu-devel@nongnu.org; Mon, 22 Jun 2026 19:00:13 -0400 Received: from pps.filterd (m0279869.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65MJbAQw2205753 for ; Mon, 22 Jun 2026 23:00:10 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 4ey6tmsrec-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 22 Jun 2026 23:00:09 +0000 (GMT) Received: by mail-dl1-f71.google.com with SMTP id a92af1059eb24-139871a52c2so7022346c88.1 for ; Mon, 22 Jun 2026 16:00: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-139add73a44sm9128726c88.13.2026.06.22.16.00.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 22 Jun 2026 16:00: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= i/UBxztk9FzNckObXXg5AeElk2tIk+IMNK3xdbJ6LSM=; b=o//9P+Ruj1aYmrpR j/X6tWylWctYu/fNVRFBq6iMADDSF7gmCR84VxBUhFELfPIJIuZ1ilkaxqRiIohX AMskfzaeCC7Kgz5jnqRS4wswywEIBx9KCH/8I1EPj7zhSgsM1QsEwtsoMOwQ4XDL BxsJK2nRjH7JjP8hChmmUqiAxAINe64xIZiPDWcdFy7Lar20SQMpwIXZMOviaSIH Ox7YroTtQZPXz/IbRJn8V1By91s5lruNQGyt8BimldoSq+hMZfsO2tMFBifiXe+z 0p0Z1jKExDTXFgCs79REsTg/pYYNNBxiyrqXGH6wf1u5y6rAF9LMJfhsC/UplDu0 pmzRNQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782169209; x=1782774009; 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=QH0DSf4cPEbiP7bP3yZ8ce/TdzKK1mXQlcJhoFAE6jLqg8YhTj+JUvREbJ91Kp2yf5 ngAbNNAlvq06EiScH5hdVjI9oceA73Y6UwdU/ZzMm9fKa19ytfZbs4hrQnGhMhSOUcUv SQ7DrpJEyfFDImhm0tOeQa2e/7YPAMjJbYYCbKLyvc7NgufCT11p+uTkFW/4x04UVD4K GFxcrixQ7LwZWPrrwX5JvAPi1AAwI+NNJCijW0FQctABx2qLnd1l7U3ycU1R3D1nMFm+ GgwTbXFfsM6WotjybtdnMZXfwnLNV8wsJdx5+B7yLUzPN+L/SWBIIaLNnTrQloAKDakq NNBQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782169209; x=1782774009; 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=YHGqOZkY9w41hyJeE7WEanMHcI1MVkMm/vpNpHztpNj1bg5Mf900GI9JdOwQe0SC2b iR7pLHjR+LSAYx74RUaSozb6BianK0SBKTXfv5UF6z2krgH57SXMJr3rpcukNjKTazm+ PhZhdN2KEevrtFj4WILh+rGRROeZh8CjuXsFn/+Iemag+259QfF6XEFTAHY4mbzLgrU7 7jeUlDU91q96weIJtLM7EBw5xmwkOnFj62pLdyxJRfttMu2FY4IIdm7fwuu7WvbNin8S hK1NnGRePvZM05m7QWTZmlpf5tgZz0qJlbr4e2A6wCNwRo0X2EBBsoOhpN/MEw/hTRm7 KscQ== X-Gm-Message-State: AOJu0YzDspjKxtFNtI/USrDBYmJWirZBFJmPvwnXqLKhXnxO5sDdZOwn yBCqFQXcS5DSlMz0CIpjk2o5QWFATcPUGNRshjgJewbi/ajS96s9dKjwFeo4y35alNTxbhp9+s6 vXdgJh+URBh7u3niu87QY6XdQbWkhbhyuo/tYeJc6h4FnVyZlSJlFkiWc9tf0Lnz8Mw== X-Gm-Gg: AfdE7ckN7BX2/TGMLf1++IL6TySL27VkXuE4ECo1sl46/rtafCro1nvLYuNLqQ0TCa3 PTtQSsTr8wtj6fnOsDZXFdI8f7/mNCCfLjN97ufnw4m56ZpCZCvHoMiMgjSccE/mc8auDxWRXmM U2QIXKsQIBcwqXIevNsSj7BkopnPtTTA4Cs7SS60vPF+wDiS+zkgoQ8t8WxgQJEfN0NnRrcfjjj Tlf1b9ASCqL4Fzd82fYClN+0rRj9dHeGApJi9xSvpG9JTM8vFqqxap6BWf3QhytIrhLDXifTYwr 7ZmFwQzOWDgh0+0Hfy4tCh7kscdd/iywdAw91QZatZupB/pkTQrMY5PuOmQDvuob8LXOrRb0hnD MZQAeMv9IOtfDgntE9sRubd0ZjsGC1mTv0+5YbBgOJdggTLzg8XdqSiihnoo= X-Received: by 2002:a05:7022:fe03:b0:138:407c:1d24 with SMTP id a92af1059eb24-139a3898559mr8488194c88.36.1782169208769; Mon, 22 Jun 2026 16:00:08 -0700 (PDT) X-Received: by 2002:a05:7022:fe03:b0:138:407c:1d24 with SMTP id a92af1059eb24-139a3898559mr8488162c88.36.1782169208030; Mon, 22 Jun 2026 16:00:08 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v2 41/75] target/hexagon: Implement {g,s}etimask helpers Date: Mon, 22 Jun 2026 15:28:30 -0700 Message-Id: <20260622222904.607771-42-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260622222904.607771-1-brian.cain@oss.qualcomm.com> References: <20260622222904.607771-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: AW1haW4tMjYwNjIyMDIyMSBTYWx0ZWRfX2rIwAoMeTrBP RRHr5G3d5kJXTo+eL21hLazlAG/NSxeqYegzBNcCyt+fRRCmg8zBt304w33IHACs6uGjLJp1Bsw ev9RFVyOHIqiTH+99sov6OCX73utAcM= X-Proofpoint-GUID: ms1fscYl3f8dgeY7lFTOfosKQvMFWwMu X-Proofpoint-ORIG-GUID: ms1fscYl3f8dgeY7lFTOfosKQvMFWwMu X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjIyMDIyMSBTYWx0ZWRfX4yFA6SuCIF+C KIYH+l4dfPoLbm1hTT+JQ5QkzDhpa/rC535FLzsdJnsNji5xS4kbSYsRv6TlVL7UTp5zdfQouny TZvmmBxnpQtI/so/dtQ//6Z/83OvL729eKhsqRgnWq1x2KBssJZphv14R8ON3ekwtQM6n9p20yt 40bQ5OPHiPLm5fao6ZHqwOboOJCtsGvRTydQ++g9wAT9gA1VmhAMJSifN5SH1/E8q4Om9GOOo76 +CYoWuQFKRLIstYlogyiCiTbIhWfYXzEzBF/jeAXzRsOTrUmRaqL6Vqjd0W+vHcIHvEAxAIRmTA SU1XBGhtnUXEyFRZSk8sRJQatqgmpoQqqkElZv31B2UC7cyxh7MISHZDVo1g8DNA8CZ2pcgAxqC 9XX56TrKFpWhhHA6mDdMXRzgJI0OrtLa8uJYVP3kdC8sFk52gPTSdq0usXj4wgUagKC5ldkADYF c1PpWBq2MdAjk51uA6w== X-Authority-Analysis: v=2.4 cv=H4HrBeYi c=1 sm=1 tr=0 ts=6a39be79 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=he7afFXPmx5H4pWyvLYA: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-22_04,2026-06-22_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 suspectscore=0 clxscore=1015 phishscore=0 bulkscore=0 priorityscore=1501 impostorscore=0 adultscore=0 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-2606220221 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782169374099158500 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 Tue Jun 23 20:53:54 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=1782169248; cv=none; d=zohomail.com; s=zohoarc; b=YP5BBV6sd1aImVXCObyZLjGQeRtENWC6CJ0TyXc6osKlXWQ/Uf9bKT3nkiTH/X0o7SBZvkJJJ3zxWbL52Tg2t6JA1NVzywVVn8AvjT+3ir7ZroLas9zrPz3VN/8WWD2cIsRIyv2Fq7F6kyvFpasI7Cul0miW2vDGh6tw5kLc8sQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782169248; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=lxpcBbiAGwXoD+5L9TM9yLVUnrETYVjrpSDJ4aan7m/5jzV78XxejB49ZR8sBiCu0BgOAZudGNXK+8PXdGOB2augDwpQuJBWb5cgEvusfGGiqsEOmQBPsitJfDvNTQhFmzu8kwvPsKSgPZtNGROqOitfxLGZAwpu9/cpaF4ZIS8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782169248414518.6814686965282; Mon, 22 Jun 2026 16:00:48 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wbncn-0002ni-VJ; Mon, 22 Jun 2026 19:00: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 1wbnck-0002mg-4X for qemu-devel@nongnu.org; Mon, 22 Jun 2026 19:00:15 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wbnci-0002DW-5E for qemu-devel@nongnu.org; Mon, 22 Jun 2026 19:00:13 -0400 Received: from pps.filterd (m0279872.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65MJb06L1902581 for ; Mon, 22 Jun 2026 23:00:11 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 4exyn1unec-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 22 Jun 2026 23:00:10 +0000 (GMT) Received: by mail-dl1-f72.google.com with SMTP id a92af1059eb24-13980b6561dso11641627c88.1 for ; Mon, 22 Jun 2026 16:00: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-139add73a44sm9128726c88.13.2026.06.22.16.00.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 22 Jun 2026 16:00: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= HfSshN2DTXGV0fIztvVhxkGkdYU5fHFXewTdLdv52c8=; b=F1UqBmDqr47RR5sK e9XBSNC2hZqUJQQGve0YrWU4ieY9AmGiiU7CNGM/gM3gFGFYhVrLAWj7zPQmxjVw oST5mGqUPeexmtlJUJ1jPb+TE6hF2mpB59S39/eAl4/3tcN52jqkJyH+oyCuiz9S m8pKmgASjVkyEf4lw5Qq7vphOIyL7y5jm6sdX8I8pFEFflE9AYOGEeSO/JNzdZyr XvIDXT49agxXfOFnxszOAkJcQst3dPiDAboX4B3cEoGd0WSq9mQ0MHvZHeV0TuFc SIiXfAyk3WFJuSxmvrsJBdempJUkVXys7gNdHHv7L3lX6qDQUaLSga2260BMeG6C 0vIJuQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782169209; x=1782774009; 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=GYmPX66lok3zdGPKXdtmcPrqbpdby3Y6TfY0/K+tXWaIMBFn4JHDwWalt3FQwzJeja 0GiuCPHFCwdc9HnFJQXLuWtzPC9MWcoaS2eFBj1MXZ8z17bKt+srNZ+c3nRCcuHsV6j9 BVorUb/v962361NbwG2TJaywlI/aXiZyQgQyTqtvvE7pd1I3HTu9wQ/lNr29iM3yScef KKcSh/vZyl2i8Mn9ZzZiHF0E4kptqrd5gP+LP1SIhYrKKX1u8HdcbK21Q9VXr+5RjZXm MxWX4Me1df7QM7Nca3K+QvbGPFNLcS8lIurMPae5kbpZETR0F0d61iUhF6tuJbTN6pkS ACKw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782169209; x=1782774009; 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=ZgGdVuHhiLvPPZh5HLwv6X4fHZFg5tG90ifhYSeQgwBZ5l53LCxUxorTDuIUQ8Yjbq NqpNe+1QH2wMkU1wTzlb9j5f+yA0ozf2HIlPYFfrlKrxBPzYg8JPiCKk37keJE8PBDg8 HhkTTj+BIB6TgCEIO3be2PPczKRjc2Oggysgk6B6urkkABfQPzPnBjBu5iWl/kdHg2La G366y3bFs8tTXAd+N6AOK4iGzBoZ6wxPvKWmcdiYMwZu3s6Gsw2vGB1bG42MVdQRro5B zvQLiQEFuyKr6BWRDf25fFn8hBNcbxbyH0VKSroX/vatFj1vLxYZM9+upeebom1modN7 ttHQ== X-Gm-Message-State: AOJu0YzLrmQFmje2dLKsulKrw5Ilaxhl67t0gfDujkmT/Hcf6LDNfRam SVRJ9ePojLX2zB+a/DCuLU7fTufly8Vd4Retb8Q3Nwl5fcu3XCzhry7mOZbpnEByO54AUqTPKo2 b4oQjqTQeDjLaQ22pJJ5OO8jAzwMDU+wSWooU2B/wJSsZmjfcTeNiuZN/JYxCVfk0Gw== X-Gm-Gg: AfdE7cmpSdZrpdbMup5yeg8Aih3To6PEAG88PZ7WvcN5jYzd1V7L8XegqkjFxGmC+Gu UnE7zcR/v2Yx0JZP46bld0/pD5GHFaAhe9GTRoagyImQWgK1xHN8DtdA1/74iuYZbjYPyl7fOJr B9s4H1pS9ofFOYTkeXxF/YuxpqDrR0HBBgTlsnuviS6R4lDvfaQ+IbEToF0IYiRaQcN/uIQdPg8 Q1X9xlHrFUWBV3cSTQVQpUUdns9gChkDO7rjfHu6VK1NQ7md3/KXRDpXYfhWomKiXAHA8faYQ1t yXAnzlItpXFULn1dQZcvKl3Th6au60xqtiIErBc3zNCyj7KNFEMyyvJU6C14nyDdv133WJ9pnfm L8K8E7Xf4wx5msuUYQbtXbqWjSyLywX6RUhVLTfybzGXPjCWBg+LP0zRtgOQ= X-Received: by 2002:a05:7022:628a:b0:137:699d:7b95 with SMTP id a92af1059eb24-139a367408emr9571075c88.19.1782169209531; Mon, 22 Jun 2026 16:00:09 -0700 (PDT) X-Received: by 2002:a05:7022:628a:b0:137:699d:7b95 with SMTP id a92af1059eb24-139a367408emr9571048c88.19.1782169209051; Mon, 22 Jun 2026 16:00:09 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v2 42/75] target/hexagon: Implement wait helper Date: Mon, 22 Jun 2026 15:28:31 -0700 Message-Id: <20260622222904.607771-43-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260622222904.607771-1-brian.cain@oss.qualcomm.com> References: <20260622222904.607771-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: SN-iWUtX-Oxdk7JXc_Gol0K_7OpbeXx9 X-Authority-Analysis: v=2.4 cv=EOU2FVZC c=1 sm=1 tr=0 ts=6a39be7a 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=yx91gb_oNiZeI1HMLzn7:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=UWtQ3YZIe0Xef7kIUYIA:9 a=QEXdDO2ut3YA:10 a=vBUdepa8ALXHeOFLBtFW:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwNjIyMDIyMSBTYWx0ZWRfXxFT3IklYZ3Ex mWZLffT1r5HIcguFmL9sPqRXWOs9tbwzufVpAv0EzyffHUZRBAAnmBRNissW6u60TDcLtNADcnp loYk+IE/bv7/rd6uFtemek0ea8spx74= X-Proofpoint-ORIG-GUID: SN-iWUtX-Oxdk7JXc_Gol0K_7OpbeXx9 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjIyMDIyMSBTYWx0ZWRfX7reLmb2O9b22 kEywxVavzNKLg7fR0TFhZRJ4L85RRE5BEh/p4VV72EV5AY9Ju9p+xK+5tqIfzfZxTK8mkh6rO8H 0pJjEJV7reoZ1DkFPwkutjZSWwOUQNFVTIb8FMJhC2+vq7r3wsvvjYyl8KhD0sYpsjkbDxCqvH9 v2QV/og2zkQhkfbu22nk8tUHwJLMshYsdjI8zYufbrtBf84dHRx7DWfM0O/HMzfivv+t8z1HJYv v/jXeVop35X8KH/tPhfyfbXeZ3iR+Wc+sRq1MzkCrwY9LP2DbFXQdmXwB6seJHu/MUYnQh+MWoT 9tNmCYCMh6dP9dbqNWSyrSO3c2EATDaKyN/bCfelSvTFHYpwVPR13L+GztHgL9QduxZpTB+QVQ6 sLarQDpESD/+91DGygid7SA3fPIdWIW3vnXkX/ZWQXMWPY/L7N9pGgAHmzXbZiWx1wqL/x257JB yhu0992F74/pePSpkIw== 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-22_04,2026-06-22_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 bulkscore=0 priorityscore=1501 malwarescore=0 adultscore=0 lowpriorityscore=0 phishscore=0 clxscore=1015 spamscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606220221 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782169251623158500 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 Tue Jun 23 20:53:54 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=1782169310; cv=none; d=zohomail.com; s=zohoarc; b=FWCF+6GnWPJjyttf7UfKKTx/YkvSQeVTP+Oh5iSIBd2FYFU6Qvtg+19zGx4Svy4Ea+lrwqcwAB+UeMlkfbD/4M9vgN/bsME7fhj9sKGHPvYxByhUxWExAcfh6qUR0lsUqpCWytTY+XmgSm/ZwJwU9FMoE7FfOk6SwRH4InnuqLY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782169310; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=fgSLZGvNKWiX//nOe3ele6vzZeiFp22OAw+DlTY1gD3LnnQmiOthf1O5u2OXGnZmWhzKo17AP3ullGoGTHBzXuYSPrtkKR5Jt4xwC+kaSfAqdEJE69rbCO/TRO/VvCiEl/n8LhbynzoT1KiyKwRIxrtXkhnVMoGuDl7iw4zB+vY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 178216931060281.10120034095644; Mon, 22 Jun 2026 16:01:50 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wbncn-0002nO-9Z; Mon, 22 Jun 2026 19:00: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 1wbncm-0002nG-7U for qemu-devel@nongnu.org; Mon, 22 Jun 2026 19:00:16 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wbnck-0002EY-Mo for qemu-devel@nongnu.org; Mon, 22 Jun 2026 19:00:15 -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 65MJcx5m1939456 for ; Mon, 22 Jun 2026 23:00:13 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 4ey5yea028-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 22 Jun 2026 23:00:13 +0000 (GMT) Received: by mail-dl1-f70.google.com with SMTP id a92af1059eb24-1394c3ee7f2so24363184c88.1 for ; Mon, 22 Jun 2026 16:00: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-139add73a44sm9128726c88.13.2026.06.22.16.00.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 22 Jun 2026 16:00: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= UbuzJ7YCQZGqOoiI5HAt63RuanuV51wqRpzkdURFyKo=; b=SN0R/kDWb2aDIjAq tupBMnSaNnHnJTn096PksUsrxEqAFBquQZZBlrMRLN1JsaQLBoRzEp1/HF+AsGhO cwW+E+iDrA8nkFUotS+0I+1+7K0fOb9RUVRaESZybqQSFSX60lQsjr31kQZcHZTI i2zqr7vO5XzpHuWmUA3V8ipmuwIQArMY9y3Z66ZdZqDEcf6A1QTa/1/snWaF6XMw r/uniKPsnfJByBuJifq1uv53Y/dbnZ2j0JoM0fiAmjH1IaVDEm4bnVTSCGPV8y0w FNUO5jFBa1OiiuYONttMQhnEAe8/A4xk6A9fv5GPvCCSw/DykK0mVqblX5F/KHJt 8vqMYQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782169213; x=1782774013; 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=VV6G5nAuDGa4LniUthjiDXW9VqG//NjbPcTuajcKrFh52mo7ebQ7HGuqyhqAPyhpVW o1hkLzpYhfEEt32hx+l3NicShWbcsCPU1nBMzzRwG8UQkaSGniRmqrtzTcyIXFePtmrf 3gxrGACLdbge2tRYNZPar+IIsBifV5AarGywvgYCrxZg/vqmnYrzrdQ7jAhj/LAjrN+U d9JWmFEI4a4yr3R3NATthYpBJ/8gJn5cpj4udZammv4xc2HAqevY1BBphWSWK9G58v/b w+IuObFhtd/dplahLtSph1FDJW5DFvTrBwHSUx2Xy0QlTcsCcDmTk1VJZMoyWhHj455a KX7Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782169213; x=1782774013; 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=n+ZNlCRUJPmLlW9WBG0qULXWHphMRL1Hjt3XhZ039TxVBf1LF9fPWUMYuEjID4p+g5 RsFvjSD/HjRlFLxXYInhlVfjQkqwDwDaf7vOMvFR3WnC+NX/OkLzAidT+LDfKGu/H/ky iBXvbWt+X433O/dyeENpMPIDvgTGlfkPlANbvrgK/clR5g8j0ftAjcNkH2YUbOnAK1ka RHiNTIa+HVKWvh6RosqipGDq3kS30ljaPwIKIqO/4VgNyXBetNtWbZolXvJWrCKK1mYo 1XjJbP2NWZT3A2t3lJ0QesoDZo4HX3yculHCAoc+Y8rzz05ylXUNGF9zr532GsVTT2t7 V6rg== X-Gm-Message-State: AOJu0YwXfoEuql5LhXEmFJbx11DujGA1JR8SQZdbPNevq0/ZUnjV7C+4 Qn0OEV0qLhkjy0athIFaFpEE6UAFQca+GmlhzHwc234kVhkM3DLCxpvWSzWic6vLm0Kt6jE1NtW BsJUCzUXghaatcuOmfmcM7/Jx1EkTPCrsVMzW2b4Zt+cLB7DnYO91vqXWgFy4YlW7AQ== X-Gm-Gg: AfdE7cmLcwMixL402Ein4s+/SCFfoePIgWbJaj4tXtJgmsI1CAb5khE1sxL9Wo6uLgu NChjK+BR3T12Wlbc+cTyhtr7wBc7S2l+dz8ux+iD44j2INyqdVonlXpTry1JwF/pmClzgF02frm o7BX8XtIRYLRbXki5HLO24wGPQAQ6vMYkdG9PenBdWkR583WB1HJWdxQ58D9FELYDW3NKX5tXdr HdqkVH7UF44nHxXW/EOJjNX0hmNNPPcPWnWDXSXs8RFSRMNx2/tlWjdsp1otYhV8bg5iFp5G8EN sHw4uDFlrIUhhva8yQn20q/dFIAmhbPmARG5a0Lf0f4+FT1WZR9otGB8Djqpn0iqxpbe3C7VN8V ZqqjCaU7PWmmzZ2oIzh8KHbVxQkIY7DsfOizdMEORFeG60B1pEKySlwB1+QY= X-Received: by 2002:a05:7022:2215:b0:138:36f:4288 with SMTP id a92af1059eb24-139a2061d1cmr10604525c88.15.1782169212713; Mon, 22 Jun 2026 16:00:12 -0700 (PDT) X-Received: by 2002:a05:7022:2215:b0:138:36f:4288 with SMTP id a92af1059eb24-139a2061d1cmr10604482c88.15.1782169212171; Mon, 22 Jun 2026 16:00:12 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v2 43/75] target/hexagon: Implement get_exe_mode() Date: Mon, 22 Jun 2026 15:28:32 -0700 Message-Id: <20260622222904.607771-44-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260622222904.607771-1-brian.cain@oss.qualcomm.com> References: <20260622222904.607771-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: axJFhpIEjlhCLHn3vVy5_cycJudmgNh2 X-Proofpoint-Spam-Info: AW1haW4tMjYwNjIyMDIyMSBTYWx0ZWRfXyIxx6LVc9RHj 93p4N/1f/+rjg4SwOeFel4ERRwOHjS6IZmBX+YMYCc/OoKYdRCHrtlqiIZjiP9Bke2XJWu13TfM MNJfMOTrffXLoxO8qCTK2FxhljSxDv8= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjIyMDIyMSBTYWx0ZWRfX1rRfOnZYDYM9 oqA+UtIJCRr6Ntty9Y25rlNUatDq7CN5a4d7VWtbLKnM4h+tFn3c5Er1jODvwcDAkvyWWq2ZhKQ vBvpXcClgKWRGkWHtoZ1kOg+3jY9fDqspp1dnHSI8ULjTJFiNjynwfY4j/bVoDR5rItiphoYpi8 s25Qpd09tjrOyAOw3MVWMy5GZjOeW/6cuWbw24X38dWloKtErzL/NQ13nSM1qQhciBbhhJBxVG8 sq3qCp+hL1VTj+5qBJpZiBLIEp64j3SkRgfXH/egGakY8VtC6cZyMwG4Heb4EhfOeVvuT7wQpz5 KZUWMr4zvtmKTO1InLM2Xv2bvhrut6lKwjXsQhh6V3ixXWmqzz0NNDV7plJcooOOMLlBb1gUMmI Na2ohJZek2nMQXddj8Ziv8iRPjaNg+E6QB9OrL66DpCDjX5jymx2VZkdY2Ovs61a+1QA1WOZkmj WZz0Xr3sp7OlQMKNFrw== X-Proofpoint-GUID: axJFhpIEjlhCLHn3vVy5_cycJudmgNh2 X-Authority-Analysis: v=2.4 cv=YpI/gYYX c=1 sm=1 tr=0 ts=6a39be7d cx=c_pps a=SvEPeNj+VMjHSW//kvnxuw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=4_WtjC8beq4VSFaiBQMA: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-22_04,2026-06-22_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 clxscore=1015 spamscore=0 phishscore=0 priorityscore=1501 malwarescore=0 bulkscore=0 suspectscore=0 adultscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606220221 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, TVD_SPACE_RATIO=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782169311812158500 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 Tue Jun 23 20:53:54 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=1782169409; cv=none; d=zohomail.com; s=zohoarc; b=Bz3eFnRjADUpFXLbHUt/fGLEnaNNfRNwG4K38+HcxiG61ItoSwC6qQqwYDvbyXWEBvaFHU6WqdyOaQZJ2jMS3a8iiRsgrrBBhtMFHUg/GfYpVjR8Bh+6d1ho5KhbOyYYH8h9L3WXJgjTNBmqkBwr7UX8Hp1z6pTo7WBI8SlQvIs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782169409; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=OlC5T2gMtDcNXd9TB5UKN1lF78vVzwzOD7+ZqvQmJjuc0YP+jVHprVipffdDVRM7rVV6gCHww/2yDFfMCdD3hXf/UFWv2OAXwbS9EtB7X0xUC1h4QMT1ibPhxgiCYowEqTI10NBipBiNULFbqewkbbT/EXOANKAIywSYGPWhswE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 178216940949241.63844500191283; Mon, 22 Jun 2026 16:03:29 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wbncq-0002oF-4A; Mon, 22 Jun 2026 19:00: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 1wbncn-0002ne-P3 for qemu-devel@nongnu.org; Mon, 22 Jun 2026 19:00: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 1wbncm-0002Eo-9D for qemu-devel@nongnu.org; Mon, 22 Jun 2026 19:00:17 -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 65MJbNPv2122914 for ; Mon, 22 Jun 2026 23:00:15 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 4ey5n421dh-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 22 Jun 2026 23:00:15 +0000 (GMT) Received: by mail-dl1-f71.google.com with SMTP id a92af1059eb24-139871a52c2so7023229c88.1 for ; Mon, 22 Jun 2026 16:00: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 a92af1059eb24-139add73a44sm9128726c88.13.2026.06.22.16.00.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 22 Jun 2026 16:00: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= 4hsqE0JDPfvXJ30nhCZ/CCXuACFuBC+IpE9moxChOvw=; b=mUTAGwVXDF+A1/gu 7QaXIrVbT/T5A2/yRZQZHEbogrmscU+9BT75s6M8BRHSb+fez2Br7jRvujzxUR5A CEadkVRKeA4EKmRqO9lHyzGwx2aYpriSqmgB+Fa/iv791/Ayem3CXbC9DzCZC/3y CGujRl9RYs+p/gOT/A5By2B6rx9Y5J/BRkgDT+7DFbv7o0gV2t9HQ70GrJ2PudjV NrDXO0TJGn1f8tLBFDLEMmaCM/Ul2Y3gk4ojue/91d3JQ0EHeC5UCrVCu6eFewQB VZ1JAKjCccgABmzAujgcWwOOKbeaHthSGf7VFkdiZAwgUDvux5SD5KRnaDAIj5hK 3r8pEg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782169214; x=1782774014; 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=Xaglzbp149zx6qF3UEyEMoS7sCv1PnoOydbmqH7JBEAqgyEpo82xYJVmLf0jRN8TuE 1bRaP0KlqdyB23WDzm9+1gzUaIJDKutrsJPUzfDw2zlELlv5lwGSvbSvsW5oNpaROmf2 Mwb9hfhTimiI/FG0vyUBdc4EEciUKGTCahjoTj6nKRfw1MeWX/ieptCthooVaKs1R3Rq uWH7c/FL0X0CeSKuhRH5wSp1vyO5rAWXIZKRcfC2BiEv9JJd66lZ5pHAgST9hIqt3L3W rHWOTzAtLL30ETSaNgKNZErnBGGO8/Q8KyovK5qUt25/0wRFNPYCQZiJb/5eK2sNy9bq 84pw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782169214; x=1782774014; 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=iBbVTh0N9Mkyrszh8De7xJq4TlK1enjpkQBnSLi0G/eyu03rUmuxel1dxCIB/CdOi0 vI3/rnG0MPob6cfrXzX3hVZ81x/MtlMrPAzmaIkfu6L4xY52hDuBA++vuduj2O+ffzGf axnGA5Eo35gKxBydCNZYosPTEolgF0de7oyj0LWu6uo2ZsW/QtRDTeZ/CE4U5ROiXvxi nrN2BuFsIXUIUUQOtGyKryqT+nc/AUDihTnwr1zzrVBxhKsHz/8GbEhy1W7fMbtN6zer W26aDq7TxrwbwOqevbBhClfPQiZHgHUu7idpHsp5/f3KSmjhu5QnBax8TwmnjlAXzWOg VrhQ== X-Gm-Message-State: AOJu0YyAY4BvkgH5Ys8Y0RM24RessQcx0Rd+TOMkWmNDDGrIzPLJpT2n xkV2xPLte6Tbg/XW1JjmZeHKfXqw91sC2wRhXg9/fyWlhNNwmt3kl5x+IL/pGgxlgI77d302kcP FTW2GBrnTeKpuW7/eOSc0sAZLUoBaDXuDz7aKnSmdUgqArJE2+pD4lFHD6dMNF/LdcQ== X-Gm-Gg: AfdE7cn2mSG8a0KM8r0f8LxjUnuIcHWX2DSQ9kFrDgiZFdpIwjooma2yueoBtjzJ3+R meUfTokVbtjiuUuXtnK4cBqTW+DU/FxNj4cf0PpnwMObbR73gyR7RSL9qvOYqnBMAM4pKQynK6v 9EpIQNf7BOdNJedGbwuOPulzl+3JTBvtrLp+NANnMs1bNgB78Ju7dMuMXCpSsqEEHbKt2Qn0InP JW3Tgy8uK5i6DleunoSH/xX9ANmFoaMspYTGr/SCsfwEou4KuX9DvKNgPIDN7IL+D+05WsgnmP3 6oCzYO4GV64mNseuPwDl9BMnNp1GDF84FPHfXvXlJTK+UJcvZUoq4d4ufSexnm9KJXfpE2ywwL/ yWzf+yeDmtkftrryHQQ/JbFf3B7nTmCsMocoXNhXJvQ3jcgJqwwVAai/o1pU= X-Received: by 2002:a05:7022:f68f:b0:136:b50c:c0e9 with SMTP id a92af1059eb24-139a386ba66mr8588520c88.21.1782169213931; Mon, 22 Jun 2026 16:00:13 -0700 (PDT) X-Received: by 2002:a05:7022:f68f:b0:136:b50c:c0e9 with SMTP id a92af1059eb24-139a386ba66mr8588503c88.21.1782169213393; Mon, 22 Jun 2026 16:00:13 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier , Laurent Vivier , Helge Deller Subject: [PULL v2 44/75] target/hexagon: Implement hex_tlb_entry_get_perm() Date: Mon, 22 Jun 2026 15:28:33 -0700 Message-Id: <20260622222904.607771-45-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260622222904.607771-1-brian.cain@oss.qualcomm.com> References: <20260622222904.607771-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: AW1haW4tMjYwNjIyMDIyMSBTYWx0ZWRfX3o0pSTZ0nVqm iRaGeJBkVqVwD93Nifj6jZzj0UivsKbzCITlQdQPnjMTm7rEM5q87f+ctD0Uw3QulWoZp7vVsUu rnARO+7z5dgtS21fbuWRDZ2iZNAb8P4= X-Authority-Analysis: v=2.4 cv=R8Uz39RX c=1 sm=1 tr=0 ts=6a39be7f 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=3WHJM1ZQz_JShphwDgj5:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=RKVJoAg1yBLoogzcrgwA:9 a=QEXdDO2ut3YA:10 a=Fk4IpSoW4aLDllm1B1p-:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: SjkChdvS4TcvleJ9d06yOJtgDJj4Uxaa X-Proofpoint-GUID: SjkChdvS4TcvleJ9d06yOJtgDJj4Uxaa X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjIyMDIyMSBTYWx0ZWRfXxwsVIooOey7v e1nefm0UAmSJe1dCdKmX9MNtGpe6IJYqEV3ofaLvQx7INtNJaaPLzRf9BmmiLVxSMhFhuve7tTe bxMZzGi2/Wc/pOwGqcK3j3q9opmX4JVRe9xt0BK1U9MCHu/tfsu/mBj3gL1GHAniU1sQcO9HtUd 2Wc0xHghfJdLiIAUfg4Bs+s9ef2SuGaMe4W9TaA4RSAVWKsEQKlThrqyJB1r7nYWSZGp9n+Hi5p tw5sdY5f3iLK8Zieewzoo2H812SCCY8Xct11IrEzcYDieEV3OFe2Jh8Sk/1Uw/PmykALBJlmQ91 EHEFjRij0AwPrvPb1oUIXKcQ25Dk+YJ1DQVmfdIeNGYRVoSoqcOrNbBOqEgIj9Ivzc/CaqdIE5h mXWN5NKhTnT4SqnNS7X/yNvUL4aOfXEiEw/FwFOsa4rVteHJzYm3245OeuXgFLTDAyOU/TYRX+w yONDgGYB1fVehj0phPw== 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-22_04,2026-06-22_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 clxscore=1015 impostorscore=0 priorityscore=1501 lowpriorityscore=0 bulkscore=0 suspectscore=0 adultscore=0 malwarescore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606220221 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, TVD_SPACE_RATIO=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782169410371158500 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 Tue Jun 23 20:53:54 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=1782169479; cv=none; d=zohomail.com; s=zohoarc; b=KFvdUVLTXyT2L7xOqpq08aatY4o21typM6GA72r7CG+LJBI4WQ25PzeEAW12jxu09ainnVQjSc9FeKeLEaMrdmk8NtV83TcLh9Ub1NDJ4OpTgc0ArlpQ3cacGJf6gt9i3IS8nPmT9gZ71KVbo2PesiVParZ+X34RTNHU0h0fU/0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782169479; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=a9ChaIgBOo5k+haf1TwXZDMyCMr+KbjzuF9u0HY+gaaw6J6xsv5Ef6VO4F0M1ZO0yrnz6GIu2lriFpvORth4fERNkUiCmUB2D/ujswEhPnBed+x3pGUhRhGsUpw8ZTd4C9FUYZSwIZIO2jbtrXxm6k1aSC/FNcafd5vroP9esXI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782169479505344.34441567435044; Mon, 22 Jun 2026 16:04:39 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wbncs-0002pT-PW; Mon, 22 Jun 2026 19:00:22 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wbncq-0002oG-EK for qemu-devel@nongnu.org; Mon, 22 Jun 2026 19:00:20 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wbnco-0002FP-94 for qemu-devel@nongnu.org; Mon, 22 Jun 2026 19:00:20 -0400 Received: from pps.filterd (m0279869.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65MJautC2205265 for ; Mon, 22 Jun 2026 23:00:17 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 4ey6tmsrf0-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 22 Jun 2026 23:00:17 +0000 (GMT) Received: by mail-dl1-f72.google.com with SMTP id a92af1059eb24-13980b6561dso11641980c88.1 for ; Mon, 22 Jun 2026 16:00: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-139add73a44sm9128726c88.13.2026.06.22.16.00.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 22 Jun 2026 16:00: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= aIbWXnylGEOIxNE7Hh9Cxzq5WDrKFEMpHLRhBN9RrG4=; b=ajpNeVvqpQJkwhv9 tfziI8+58Bcq1gB2kKXk3E46SdLw92AsDU7NZnadnEgY07jDJDVyrEGOpYv3mZXV lbtOOsTU24o9CHv1bm8o4ZPCh9UrANSpbPjp0P4qMxHzj5lJzj0NbweFaf3vewP1 LpJUFkydOxX34TWkLnfukQFI6+nj1TxFO/ymcp9kdcge8M4GgGbTc1w51G0o3+BX PvwMiYaXPOOkR1wiY0jdFt/4egv5vLfO45PsAW4e26IX3YvE1cF9PzqxLhwYYGeM zdEoX8tAtp06pjym6O/g5MHVwCA+wgH6cEe2dEncQgbxh+99aMc91oJnTUbBSuaz 3hXSgQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782169216; x=1782774016; 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=Gal2D7pRSiOrAyjXGrQasYvB2nfiOTlCw+sp8KO3/seOfbLK4XWmZ1l5NEjgBrDNce /g6Z2Djk089kq8q1VgdQ3x7Li0B0eE/cGor/AP74aUyYx0eAfxkx3SOcLATk2msZp850 ZveOt4q9GZseorvYFXZq9FRAx8BFaJoaaeHulrgxBRRTw8BrDpGIbcrK0ciPQDOHLxnN UJWNL4IrCkxke10Wh5UxXcEXz8Qz/R5Ua+1lXvHEeOPyjLqPpr6wUfPaeLGhNTJDWDLR /n7rxsyvNHJQQBoOEuxQDOUa/YEMraRxYNXGqmb73Lfk4MSBfjAT0KmpgIZqzGfGVIWD 0wZQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782169216; x=1782774016; 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=pTHK1FCh3miRDDvkPHJAbNlLfKikhBBmmwq4nmV8tysd877hxoiwsonNUhApgvVXh2 YuqsATfp7X7Pc3nE9MBQGalYfPtbVuClin5zVSAwfv0JRLf4l+pLQKG16or+KRkCr5Wd kDm9uGMVSwCBeTypOWAetrfqrKQbzekDfg3vulwb4VzP/7j6ca7NZ+rbCIfXau4KUFhD DyMtUAvGpIVewmlRFETm3+c7UKVgR9Qih75OJezL9aFAYq0lQ56xxsnRMhDLI+mcTciK E1tLP+rc6LTiKd8nlvGX1WN/VPEP7DKqMAojnp8w6INN2LIQVSRM5VJwJqE2GnHwDFgd Q45Q== X-Gm-Message-State: AOJu0YycGSClofPXf8xuqmBj2iIhM4IXrT8g79EmwDUhCglj9t3te4R3 fg78ESX4OiyoYCP3pNpb2PfHvwoW/9tYUwDIcWvglm1mo8WmwnS21anIkfMoL1yV6FEVtwhCjJ3 umAHqPbX1UzdSFaji0WvM3LIz0GYAG0TNuVC5WFoBrCQCSdVBEODBi/gQmQW8u4XVqQ== X-Gm-Gg: AfdE7cnZNcZWEbii8CuLlz8ttxhpsP31+Km4HzV/BWmnGbOc9quPGb7YLpnlGMdd9a+ RKv2qykWAEOAexPULMOK1H2oLUAX3IznkHZUtfEHk+dgsPDfGy6DwWwSoqEf1R1eZ9XJUycAyX7 mkchk3oXnQX9W9uMkUqmmOmqBfNEfEaeegbL6xMvthlAxceFfk+Ma5GUiKDppPkVMD0bM7/Qgm6 xnJuClu/qXiaPz+CXSLhZsIe3kaZj0V0ZtqBTDg37onj/JicCU+U9Fh0LG02xYoL0GLm+KUyep/ hv0zr0R1vWIKDREmec5mJCTfo1eHKb5CdT93rt+tSilBtGOQ/EMboEFpH5OqLt1zlrvdU4S5Fo3 QVwj1uh3McZ3F21Cufumcw+5yeh6PO5GlKomdu5Lt/KkgtZYmqXC95Cr0aY8= X-Received: by 2002:a05:7022:98d:b0:138:35da:3cc3 with SMTP id a92af1059eb24-139a3686db5mr9919849c88.30.1782169216034; Mon, 22 Jun 2026 16:00:16 -0700 (PDT) X-Received: by 2002:a05:7022:98d:b0:138:35da:3cc3 with SMTP id a92af1059eb24-139a3686db5mr9919805c88.30.1782169215257; Mon, 22 Jun 2026 16:00:15 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Mike Lambert , Pierrick Bouvier Subject: [PULL v2 45/75] target/hexagon: Implement software interrupt Date: Mon, 22 Jun 2026 15:28:34 -0700 Message-Id: <20260622222904.607771-46-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260622222904.607771-1-brian.cain@oss.qualcomm.com> References: <20260622222904.607771-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: AW1haW4tMjYwNjIyMDIyMSBTYWx0ZWRfXyXqiqL1Ra5fe /dBgXfNZoupCIA5H1IC/FWhdxVFNpwMW8Gl/Y9dahnFQBbn2yI1M66+K1Lg02z49qJVcyk1e6QT kDlJbP7CG3QZ4f8DpUNJ1oLGh6UnAPI= X-Proofpoint-GUID: kBeIhxArQiSu_0edV4cx8jrv-tE8_G8C X-Proofpoint-ORIG-GUID: kBeIhxArQiSu_0edV4cx8jrv-tE8_G8C X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjIyMDIyMSBTYWx0ZWRfX2EJkBYemWpFF kkZRND4KJ0zuOw0iDz6mr1quegzEwbJG7AM0Jero+/DRtP3ibQZ4cVdd0tAAcLhuLnV6QMsLVS0 ewStadOwFoyICNhvd9ZrlY/YImiCTTfBu5qrVvrmwsgk44vmpGcWGVcg0eI22vA8Yror/V9WZx/ ZqwVeMJs1pCV6rP3GJ6gi5DIO+mW/Ch7JvRCNw9EngsvIXoNX/bL5jvOYvO9702JIuz8gM8gZfB PMdimBoPw2vqzb+0u8r2j+asLiRzBtnX5raqAYd71pnUd+4tlKquWa9wOcSNeEhmD0gR5HUHdlj Szzc9Vi4v12DP0624V+8tC6BO4ZkPXKH1BiUPl25PpkJxZQQhLq9LnEZh2ZDTSoLGozxp/45Oe3 4dmZoomumuVr3AoIzitK3y9e7nOt3VyG/to4UHCMafve96AoA7P1oHkbF4IzaywMVmVb1xfZ1/S IBOxPYvVeqkVyUb83Sg== X-Authority-Analysis: v=2.4 cv=H4HrBeYi c=1 sm=1 tr=0 ts=6a39be81 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=_glEPmIy2e8OvE2BGh3C:22 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=tNsvDMl9nzr4Tn7f5JwA:9 a=QEXdDO2ut3YA:10 a=vBUdepa8ALXHeOFLBtFW: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-22_04,2026-06-22_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 suspectscore=0 clxscore=1015 phishscore=0 bulkscore=0 priorityscore=1501 impostorscore=0 adultscore=0 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-2606220221 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782169480713158500 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 Tue Jun 23 20:53:54 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=1782169276; cv=none; d=zohomail.com; s=zohoarc; b=J2Ce+GWFWnMBEVrvCzXGDlJdFRn35uO/oXhyWm4PKi4UuuJT5oM3vop0YiDiJ82tNkqWL+tYi16J1BretZ+7/NYfbvrDqQIvPHJI8jiJQqDStSkMvLIizh3BSvbbPYjmYjKGseOv0lHf+a+nG5FTj8ZJpUmJgCUtrmtfF/amoWI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782169276; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=6s9XZ/nLEOgw9bOPHjCnqUR35YzhNIE5sWEtOxfe0pE=; b=WZB9jwWSYyeJCFV3kPU0Wf/ru7fFRi9om9XawJ6bAnW0y3s04+ZwhV8EI85aJ7P6bwh3+qzuqQh6+ymFijRIMgETW1LahGyv/D7+RNccZhfc7vCRRUKmg+E+PQkwaP2OxiJt3wZZ7YSnFIWoxmCHhDgMcU9LrsjulL1IVNaFq1A= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782169276875676.1517407695537; Mon, 22 Jun 2026 16:01:16 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wbnct-0002pZ-Cu; Mon, 22 Jun 2026 19:00: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 1wbncs-0002op-47 for qemu-devel@nongnu.org; Mon, 22 Jun 2026 19:00:22 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wbncp-0002MQ-WD for qemu-devel@nongnu.org; Mon, 22 Jun 2026 19:00:21 -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 65MJaDnP2101410 for ; Mon, 22 Jun 2026 23:00:19 GMT Received: from mail-dy1-f199.google.com (mail-dy1-f199.google.com [74.125.82.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ey3ebah3v-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 22 Jun 2026 23:00:18 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-30bf794ce48so379896eec.0 for ; Mon, 22 Jun 2026 16:00: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 a92af1059eb24-139add73a44sm9128726c88.13.2026.06.22.16.00.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 22 Jun 2026 16:00: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= 6s9XZ/nLEOgw9bOPHjCnqUR35YzhNIE5sWEtOxfe0pE=; b=CNGZXec4rQoNULYK W8uXyJaddufxb0dCcaAYImm+xF4EQmRrFH9mbbN1UxRFP0etju8vv/D0oQ6Sm7SX ImwdfqFFb4GKjBa73Dy4tt4se1lt7tLCJ3uia+YyCcrPuS0hscm+OSGI95wZsO3Q t+IExBcxsSxFDGoBRAZLnxdVEmc0Qy76JcINTqArFuz55/7bNbkMs71jQLnd2yE7 7Pa+bKnmJsAk7sNQ+Rc5U4KUV7+5cJo/f/PZDmyc51n64t0UdYvqQr5o4XucBSRm zDQU7gpgBaws91gQrlKtSXyp8f2NHOiDjtyDabzB+npF4anbzf2nKOCfawFVesZ0 3Dwc3g== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782169218; x=1782774018; 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=6s9XZ/nLEOgw9bOPHjCnqUR35YzhNIE5sWEtOxfe0pE=; b=OnJZpKa5x4CGFHZz9MogtkCsjPrYc4CqMJGahEhvD9DN0CCi6dXp9RD8OoJEL0n+hC ZxM83DLRH0aX5AaZ3urVt9w2lL3p33kA7JRmZqdQ6mGMNtiaaUooftnpq/ghEtFlEHcY Akhpq5XlVkStZ6r51FCVGsavv0fIOBo0MuytPD/Tvz9jYCZ9qjnYk5UcWGBsvN7bZOyy 6fqlj4oQXE9go/PATghjNPvEus8tJWUzeKGtJVL3MCwLsMO57sWPxcctF/3gbqXz/PJT IM+JZZMRKnxpdwMtHtTFA/XcGL7KLNd4tpGN0g5gxbLb3jvrWFBn7KE0Fn278x804uQw /UqQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782169218; x=1782774018; 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=6s9XZ/nLEOgw9bOPHjCnqUR35YzhNIE5sWEtOxfe0pE=; b=l0bX1K6Z85ltV5+AopulrniteK9u5fNeApo3k3bwHsLfWCtTRIy4YdYI8ZBHix3IA/ mRmQiTV/8ofjxNUIuFr6g1jwvKDLs8om4/92mLOtul7I8MJuwOXA7Xsew26LGQW2u9gh PhyWxgqdhJ9vjz19aI9I11K1Rxi0z+iwIyrsfFEVAf3Egi0bvpWerTkVPwRVQ0SZ6SjO tZsQEkgWAB0D4RsKD3bscJ4qzR7GZMf1s9R+SXdnuv4eCtqN9LqQDZQMJFP92qtPv1be WkxzZO1wzoQ7G3H9LXJylmrtai6C3T44zN1hPvVtWRZX7TJQ5DHeiQqaRlRpoBA+ul9k D7Bg== X-Gm-Message-State: AOJu0Yy9/xtcUMFYCcHqRRfRjfMd5HsmYyYF176vMZiQQlbWu6nB/LmU obJNmBNBpVEZBbVFGE1pYHKb440BuGwfSYeie9Os4sh96VZpi19lJ+vkzN068bO3ja2EaS3uPrz B36OOHfokOalNdJovk65ZHy06DvHUcjdjZXh/GmmEpSUDv0y0h15aHFNv/6tXLSfdlA== X-Gm-Gg: AfdE7ckHDCJf+diN+vBdqCIWJSb3hdvGZQY46UuEW+CiUBur514INMPw691t+gmSzbN ko+gnaj71Yyqna6Rh9pKc7exFQElQ2hj1PO8VrVw6KX3FSY0YqZaSaNfwYRLG20Ri9rKLJXzGf8 cIFBL3SRC2tKP1KQNhP20yMhwLvcbKw4Iu75hBPUUW4crEZTUZ9MNJKA8QqCE7m8gCzBvCiu7c9 EWjt9/kVHRn/dUJKAbiBHgrhUVlyLHGLsy2bHD58Vnk9RYIl9uj2R+SMtHvthTDaGafo7hQvF2t 6iPCu1ThiaKG0NxTx9zrbF+CdAy5rsOqawnWUfGjNHRR7EsWtPZMSsmlgdoo8XWK34x0AvdWBZm IMoJpA7UOLPJlE3H6Nyuwl1Aa1k+qlIugY6o0u+JbU1tHHvRFDpPt78ZBrNQ= X-Received: by 2002:a05:7022:438d:b0:138:38c7:6adc with SMTP id a92af1059eb24-139c3aa3885mr940752c88.0.1782169217583; Mon, 22 Jun 2026 16:00:17 -0700 (PDT) X-Received: by 2002:a05:7022:438d:b0:138:38c7:6adc with SMTP id a92af1059eb24-139c3aa3885mr940718c88.0.1782169216726; Mon, 22 Jun 2026 16:00:16 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Taylor Simpson , Pierrick Bouvier , Alessandro Di Federico , Anton Johansson Subject: [PULL v2 46/75] target/hexagon: Implement stack overflow exception Date: Mon, 22 Jun 2026 15:28:35 -0700 Message-Id: <20260622222904.607771-47-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260622222904.607771-1-brian.cain@oss.qualcomm.com> References: <20260622222904.607771-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: AW1haW4tMjYwNjIyMDIyMSBTYWx0ZWRfX0wAd0meT8Qqv HljVXEgux6AxXUij0suYHYic8CYikn5ghrXKbW9NAp4xCofiEReTkKsP1mN2BxC11zr8HU4FOpZ SrWAVV73Edyia02Brmzoh8TSaiadVWk= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjIyMDIyMSBTYWx0ZWRfX+VqdbM0I/jF9 QAinqEk84xZvkN/7cfNspLsBRutjAYSyJNhPcGbwW4QmtfmtjfvO2PXmP9596I61PiM7GptZi0Y rMygjuzwr7eCP4rO6H/mGt06CI35/6wU+1s0mCXiBagIuigS3l7SmRCjX6kTK7BpJbpUk0N6lZ0 9aCtp3769huy3D1p/5Ymcn0atfjUvWVfYG4FqC5KZbY6dRJ1Sty1Xc5Vl2Ce6Eoq0DqACtiH0Ne H/o3wfMHsjnA+qkdJxvX+nEUmRxdECZgpmgUW1Mrl48ugXyCLFThg2slbx+UtuKuEiG6a9bHxYJ R+2PAxDCsEanK3PQ9qUVQR5U/46hwdp15nj6NByqlrHcCI7cICdMKXi0QcXOLSsIMEREfvCO6T5 TYcuR8K0thcOFSCVWwCYolcd2KvefZM4JMqiQAkdxuRy068dPq1qxTEvrP70X7pGthpohL0RWVC I/C4VG4cX+Hgm9fgFZA== X-Authority-Analysis: v=2.4 cv=ILIyzAvG c=1 sm=1 tr=0 ts=6a39be82 cx=c_pps a=cFYjgdjTJScbgFmBucgdfQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=rJkE3RaqiGZ5pbrm-msn:22 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=DTjK4E8Rq4C45BV92HcA:9 a=QEXdDO2ut3YA:10 a=scEy_gLbYbu1JhEsrz4S:22 X-Proofpoint-GUID: RO0I_J83ngpIVOnce9pbjUaD9achMO4b X-Proofpoint-ORIG-GUID: RO0I_J83ngpIVOnce9pbjUaD9achMO4b 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-22_04,2026-06-22_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 priorityscore=1501 bulkscore=0 clxscore=1015 adultscore=0 suspectscore=0 malwarescore=0 spamscore=0 impostorscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606220221 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782169280057158500 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 c6f17c6afa7..22070d8c3fe 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 Tue Jun 23 20:53:54 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=1782169483; cv=none; d=zohomail.com; s=zohoarc; b=Qwt3Alz8xhJY8gBGWKySvgKKI7AV2nQE0RJHaSgUsbZ5p3bvXWKtZ/6+cRuPSl7k3X0PGV6xwUUdt32UY5WDhDTTWvv3RQilapU/dABU4Y28iJl6zLW9JzIdKnWXmj2Do/DEBieP00Q2xGCogQY7MdIVLihGm087qKvrYRDaELo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782169483; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=KA7bzLer9Z7JhOfqzjPFG3TPIG3Zg/LP0cw/HiH2HLC4wUDBNO/N2fMjvIkOSVn0lc940wYcQHFui5ZGj5Qzn+xhT4PMvTvZzoNevEx11vOLVyLOUBDvFwK0pL378K128sBraYMIiTUEuHtWCrVz7kjsQRbLQ0DQVXvrFGoguu4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782169483713165.80027882151398; Mon, 22 Jun 2026 16:04:43 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wbncv-0002qP-0S; Mon, 22 Jun 2026 19:00: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 1wbncs-0002pF-Fh for qemu-devel@nongnu.org; Mon, 22 Jun 2026 19:00:22 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wbncq-0002Qm-GL for qemu-devel@nongnu.org; Mon, 22 Jun 2026 19:00:22 -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 65MJautD2205265 for ; Mon, 22 Jun 2026 23:00:19 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 4ey6tmsrf7-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 22 Jun 2026 23:00:19 +0000 (GMT) Received: by mail-dl1-f70.google.com with SMTP id a92af1059eb24-137fc6f8e9fso5230236c88.1 for ; Mon, 22 Jun 2026 16:00: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-139add73a44sm9128726c88.13.2026.06.22.16.00.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 22 Jun 2026 16:00: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= zeFyaaj9ezk3dMnLRJvqloiuq+fIgJ0YErhEi239GAY=; b=ZeTPaAzT6LcIxxDT E9jXuc+op0WMzZl7aF78VtXGG7LbMtCm6uX4m8J1fMhWWYKXsTWsatlKmLRVGp/r 59XT8/2UH+DJLB+xCXhFZ8vnKy/NDXYClJ7LApnIxwhG+eCQY1XG6dQ7fr3iJeb3 6PbRehxVIkODxp5Fp03SWrGdggsIIyDK2VROLhA3fQV/P1SU04V7DqWl/J1Gfjkb iHu/J934QaIGv7bspDK1Q8sJgzhtckpk5YBhIXLTOAbyJEX+UQeP+CmnWU5goiFK hGOYxiG1Gsm4V129bGKdd4r7cILfMQq+g7ZDU9nSzRuEMHdMKfEefr3wO8Guy+H8 uXPyCw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782169218; x=1782774018; 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=JypoZpjLIWtg3Bw0Bk25vcfR8QyLBWxUtUtolnoCS/roqGQ9DICVrkjL2Qs9EcL9Oj nVA4jFjMuAPSFnOIv58jCqg+Oks/RRS2wp4Jid3SLmGx3IQlKnx8bdI2OQlquVigiPp/ v4CXAca+5WI99SmOk+LO9JiKrsH+KbIg3CjjGW+Td0WlMJXRQq4SYrsRfEnQiWGQ4sLh 8kpk4sZeS24Q9YE8QVT1YQFHZaH4nB0w2M7DQVmYgrojWzDMJuNv8IHpkS+Lknh0DCUA ER8wSZQBbtNsQeEMkX4jQJ1EKXjiGpEtvLAWFEzsDJrmLPZ2gKLiOXJIoP/hnLVraPij 8PGw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782169218; x=1782774018; 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=KREA+vOqDQKIXhzQAkdSUXuXH/H/vB+EPKtfC6VWHT7iXHfxVL8Yl6VPbr88L3D/PB Sc978TmS7Ks3AYX1Y+5kZd/evQh4HH4wXHQ/h87SwhSQELEUGyHmh6VwTwjXRQUeaz85 NsLoihi3rFx7ovuNO462PVEOrMxyEGPVhZp+olNENyy32Zj4o54TthneqQ+MUE6SnHC+ r1KSZ2j1XljAeMbypxNBmxm/dEG0rh+Q6XsJsIH282YDN0pGKOzT7ATCoaXZ2YNdcFVl wJNOdp+/syjibhDMpQ8LR/+10TetHybmlqRNye25H0fMjGzlUn7xyxrK4a5ggogWd7Yn t7zg== X-Gm-Message-State: AOJu0Yyi9+QO5pjDeUXhrVuK+sAR9gjFvKDhJoMiDnLJRyucmSSXB551 6L9tVnrswxxDgX+BirbC+xTEsOhGqrzbdmZ51YN2FqtO3iVCatGajsSRR0hZkBDo5fZLfDDooja Pj9ubijqwTmukr7HlEUeyfc4G6kkPKWIdGsW+VqXQq+pdvQ3UnxaEJS9dafiYfqWp3Q== X-Gm-Gg: AfdE7ckF/Zmwq7Oih0uiPIR/WpuX5cqotaQeBq6mHiEJt2EdFo7b0/UF5PyjwAtWBIP tvH8jBkjR7bqIY3/89zWOqx8T3w+VkAXube237+MDKwnSyB2iDCGDmTc6Z2w9BCT7g/PKHyaTyl /M+6cAL3aJQK0UXWwz1+UIPG2Ndda0WlGH98gPZftPTWDLesS7pMEnAUeMPFI9ntoM81SyYcMAY 84+Dhpn5kTVkFAzKcDn9VmJ1FrZUH98klfbZEw9MVOGeSq7ifrHG1G8M13RW24jFKs/q28HzapI zDUR7EzIyxGFnl3FVma4+j5WCsFek0ZfhK1db3DfAtxZ+qASlKRZ8W7ArHVyTv9Mz1QbvcPL4Jy hTVbr3Ttc7/W5G3q2a0lpWa/pZqtnTffLzodgoBB2wSrlNy8nlyLpyX4RGTA= X-Received: by 2002:a05:7022:6b86:b0:138:3e8:cee1 with SMTP id a92af1059eb24-139a365c7b5mr9268458c88.23.1782169218435; Mon, 22 Jun 2026 16:00:18 -0700 (PDT) X-Received: by 2002:a05:7022:6b86:b0:138:3e8:cee1 with SMTP id a92af1059eb24-139a365c7b5mr9268429c88.23.1782169217713; Mon, 22 Jun 2026 16:00:17 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v2 47/75] target/hexagon: Implement exec_interrupt, set_irq Date: Mon, 22 Jun 2026 15:28:36 -0700 Message-Id: <20260622222904.607771-48-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260622222904.607771-1-brian.cain@oss.qualcomm.com> References: <20260622222904.607771-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: AW1haW4tMjYwNjIyMDIyMSBTYWx0ZWRfX2G1YdvVG4a3a uThPhd0ryC3Af+2kE9LQV02TEbD2BCHbNf8WWyC9g/oCris25eNDjMwq1n0Umomiq40R9ltnzOU SXg/pLyJXvXl8RlWB7r6jsDwJJdV7c0= X-Proofpoint-GUID: HiMonCZTTEGBirETpsg4ugRINvADCCQb X-Proofpoint-ORIG-GUID: HiMonCZTTEGBirETpsg4ugRINvADCCQb X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjIyMDIyMSBTYWx0ZWRfX0imGOC3e7C5J qji2mG9kmZIFtU/VCcElJiXD6McV6bYcWWDRup6NFvzMa8gX3ZOqREQQGx+7yho8Jl7VvqBnJ35 eZHK3gyRm1TZeer9Whz5dLkPgv9XzgMY4E/lKhH/orRbBg1IrMlHdbORji3FwnWFloLevM31rQa wVQIp+hc7mpKKc+uTajUpsDs7oJdCOkr8uV6D5NrCK4kHATx/yFZOicoTs9FTrDEEpOaPXUOYKh RsW7rm0E6b55Gn6Z/ZbvZqVLRk8xk0VwfbE4TNGA7VkclGNUErWICsHAxjmI+RJ5dcoGfY20ZkX Bo/IYHMhUI3SRTmuP2flon8K7yugW/Tf+ilJwRRrRxzhSLhKQWkbXg+628zURLT8V8M3sOgGdsX h3VY1fqHt5CZrD+r+GjAxpP+NzqcWTxP50+V9NalOZo8d0gSYiZX1TkTU8Hnly+6dYev0rFIwK+ zOlV0xPLM0zVrDwaxnw== X-Authority-Analysis: v=2.4 cv=H4HrBeYi c=1 sm=1 tr=0 ts=6a39be83 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=GA9jbsKyPMLDJDmtv64A: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-22_04,2026-06-22_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 suspectscore=0 clxscore=1015 phishscore=0 bulkscore=0 priorityscore=1501 impostorscore=0 adultscore=0 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-2606220221 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782169484812158500 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 Tue Jun 23 20:53:54 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=1782169244; cv=none; d=zohomail.com; s=zohoarc; b=aE9py4nea2ZuiITXteORHfvjsasoDVRIEdBthWTd6swm3O9lLZeRmLzJoTeKBmH1+npYQe7JpSfib49dTR4Qcwvh/SVUPoI53q+MCTvDOX5HvrVTrLq8HHYNbc5J+FjEUawroJEhaQrQyAX06DcFNdkLmtPAxuQNhftg4xQJdnw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782169244; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=PRaZODpoanKH/OEn3OAp4aZD2XjAds4Y6fwwAWhNJSLEmsQ+E1Wrz6UKKBxxdHFY/VfMuT7gNxDvURxmS21WLL2h0S/I6ctvlf5LBoypkC858iWwZgtM1p+RfbpYPXdzRMoy0MkggJk6x64wYdhqFsVYh89ELnVrHr0Efb2BU7M= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782169244683178.1202510399737; Mon, 22 Jun 2026 16:00:44 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wbncw-0002r3-T3; Mon, 22 Jun 2026 19:00: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 1wbnct-0002pg-Kr for qemu-devel@nongnu.org; Mon, 22 Jun 2026 19:00: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 1wbncr-0002R4-R7 for qemu-devel@nongnu.org; Mon, 22 Jun 2026 19:00:23 -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 65MJavx92205271 for ; Mon, 22 Jun 2026 23:00:21 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 4ey6tmsrfa-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 22 Jun 2026 23:00:20 +0000 (GMT) Received: by mail-dl1-f71.google.com with SMTP id a92af1059eb24-139c6673856so69663c88.0 for ; Mon, 22 Jun 2026 16:00: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 a92af1059eb24-139add73a44sm9128726c88.13.2026.06.22.16.00.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 22 Jun 2026 16:00: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= X05v3GkLKVJ5oepV5+STkOz6Fp+VxO6RAfpTWbT6B70=; b=GR0HDKB6p4bKluwK P8/eduLWcXXVttBRHPRUjP390FNLV7vBVKp0QFKmSalUyXpMJfagTlbkjvHs73vy FWpur+0y1ba35QnuVEruJ0ZJOGGRZ5ye7TB35axNqThyfXXiDx+UdWhNd9uGR8YB jLCHT4cxB69ruiKpuq7BcLxrhT56t0SFJAftQHfwXV3TBOHS7ziJYVT6Yv7mR8QM BcQomD7tqEZqD3L91LnpU62wbjNIJEOXgnBZMg6wYsAW+mrc3ji+0Y4Mra253XqB yvuqiDCEg1TUVAYaOHfBx3T3lwO8lBRI7SsE6NYO5emhExnKJXHCwCBJ/jP1IStE 2hWD6g== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782169220; x=1782774020; 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=hqN0h4xdGm6ZjuTnvHr5oAOGpR/x/uG1R9lEaAI1Lz172RINaN/nxd38EORHDt4g2c 9on6B+KcELFMz9lkM2mAz2l1G3XvazyWV3U0834v1TiciHbGhQTsySf2RnZ1ZzlCQLDw pJ2PDjPB/Pjzk422l/tZtZBniQbooE5gxV86DE7wckz+/2wgZH4mE3Wu42OVaI1y28Vj DKqUjFtFIBjU7a+y28NH/w4Fz6l5jWayvW0LxnlQVBp8P8yFOm08gcCaUyX0ALvKqbVj 02P2fSublnr+OebQfZu+ZG/XRtxm2UKrk+3TbDLUyJtuAs4hM3mje+hFo8qfyJGi83lQ 1LXQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782169220; x=1782774020; 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=GoOVtqGBw/C2FOpzMg1Q09O/7+SiZZDt6SOfOitxylnaODnxttSQmx8eE9dP8MdSH7 AfpzdF+3kRG2gpRQdQY4r/+HVqjFzGyilZ+FvnqTi1aeH1pdhv/+PvAeqjw4gPR34Tjo Bashc4ATF25CV9y/1o3hQb6RfdATJAzYXD/1INL4wuoAiT9U5kHQn2iaqjWcjRv/tlAj MyBQl1FhElQAlz3jkZjJZNu+THZeXPcCXCs8BtpKND7lXF9B6WesvAclyOEcSdEBCn77 wJMPOT0o9pMcIjbfnNOna0elDb6VxGxZOpoKv+bQvXQEwAYeyN3aFAvawiBsTuZoDDPK +krg== X-Gm-Message-State: AOJu0YwlpPsWoPpbCNB1KL8uDYHW7yexii1ID4+S9D7llkkFj9dUeLod /Gfgtxbx1dXKjjodX3AiSdgWfzObSx/Uc2uIQzi5gWz+nf9gSr8AcTYbJBvlEkr+2FTTS9ElRSX qszRNfc6MpwjJSwDxedSVgN6okbXMpXP3UUXSPGY6QohQpzkwsQctq6q0LjdDrvdtMw== X-Gm-Gg: AfdE7ckucTtS+bPjsB+5Cu31BnZ992M0RuyA0t3uPfM5BYwheiCusc9eWW/UYvCt5tQ kXXq3N6J5h+qkj+jSyfLDwPSbdBzEL5henpW6FtKzrS244eberXL2DVqV0ePJmt1ClKuPjrVXiM 9blzeEQn1A70drr3asrVpGCTt39cYlRjj4yAOdSpdJOevnGG5jVvqcs88B76RU37GumRX+aHv6g EyCu2Nk9kWE8cK/unQiwoIRB3i7yE8MAJR0cTb1tsFFTnWP9SXBmR6dPMdhiuQ/r6cWViN5uxqE yzE5VPMeTvUZV563D8MH9yZCLfZdIsuS3JFHMrrHMLjuk+suwTETxoqmzDOVRYBMoy7qHUkQfyc xJxWC83YjYkkQofkNuR41CktoHAnlDf4Zh0kRt42u24wbmRVrTHZlOllv4wA= X-Received: by 2002:a05:7022:68d:b0:130:ab68:2b7c with SMTP id a92af1059eb24-139a2035e45mr8697007c88.2.1782169219806; Mon, 22 Jun 2026 16:00:19 -0700 (PDT) X-Received: by 2002:a05:7022:68d:b0:130:ab68:2b7c with SMTP id a92af1059eb24-139a2035e45mr8696985c88.2.1782169219187; Mon, 22 Jun 2026 16:00:19 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Matheus Tavares Bernardino , Taylor Simpson , Pierrick Bouvier Subject: [PULL v2 48/75] target/hexagon: add simple cpu_exec_reset and pointer_wrap Date: Mon, 22 Jun 2026 15:28:37 -0700 Message-Id: <20260622222904.607771-49-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260622222904.607771-1-brian.cain@oss.qualcomm.com> References: <20260622222904.607771-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: AW1haW4tMjYwNjIyMDIyMSBTYWx0ZWRfX1V9f2UZfprDM F57NIrkbQL+2+GFHKQjfH4SirN+g2LjG+Mo45Yj9hpswzzRJAve1P6yvjsuTQ5tvSMCax5bOdlT rIqcY19RTm6tMcFt2EteRZ4tbCVCEXo= X-Proofpoint-GUID: Bhp_gVJ8LLGeIuIRs93lHwr5go0P9sKi X-Proofpoint-ORIG-GUID: Bhp_gVJ8LLGeIuIRs93lHwr5go0P9sKi X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjIyMDIyMSBTYWx0ZWRfXxdEASIg8wYaO wapKLVyiWlCaN1YAMgXAiXInT2cCIgz3y4vMeyow/stoszcHdtu5lXTdYopcu5r/WoPpjgFNaZG LGNLvl2OdzDT95IMDIb2sk40Ln8h30YWnx4nSFU6VWJgaGa1BYQ+NlVmKt676xse3crOr+Drjvk c5TibCWE+JsY0c4+8e+7EVYSwWNSFn34a8c6jRznwZeEE0tzXKd+lHyxMVZaperWAVVMMuR7A4P 1DjJSWmHHZfjy2p258JD0DiPq6upMlEOg2yUYg1bLDqpQ129MSy2EvLxwG98MX+pRyTluCrFR0l MJZJzXoh0SUi9UcT5w5tOGfHLxYfZknTUnARetKwsrsAtxRRPIKRvazfdf+NN1bbmI264whk78d tfb2f0IZFHwlYlauzNUukl+ce8zYfEYxi1lSToJTZtSBnvzacY9241iyL19R8Gz93B8Gh7Setf8 /lTIM2YmdbJ+pOeqdWw== X-Authority-Analysis: v=2.4 cv=H4HrBeYi c=1 sm=1 tr=0 ts=6a39be84 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=EUspDBNiAAAA:8 a=pGLkceISAAAA:8 a=O9wV_FzQyngHLK0UYg8A:9 a=QEXdDO2ut3YA:10 a=Fk4IpSoW4aLDllm1B1p-: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-22_04,2026-06-22_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 suspectscore=0 clxscore=1015 phishscore=0 bulkscore=0 priorityscore=1501 impostorscore=0 adultscore=0 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-2606220221 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782169246073158500 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 Tue Jun 23 20:53:54 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=1782169377; cv=none; d=zohomail.com; s=zohoarc; b=ZIFxu686ZzvvFoi13i/N//2BNUxFyJCCeLdKh0eldNAbwU9g87tfWKB2Au+fGv1LAMTPZ6f/OzZknesHYPj24pu+dnS9AyZe3sGyIaHk6fU7WBDHqefuk1QB2wJB0ZqoH6YEXfJgmfQAAdCjowdcCBgZPKknagvfbs7wceYOJ3U= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782169377; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=NyewAHIHlV8EzNRBbvDyJh4O1mEnB4LUS6w9DAdb4TOGAN7bVSXDPWD9OhLyCRytUeXkPXkn542clXX7ybF/5GAaRfDKlhgJqX2k33rHvhYf7fAqci3hFMX0+r+IBl10vz03cHPybXwGMaOn7Yf5tDR+AoZJhueRhd8/aa14d+s= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782169377268692.5869925934409; Mon, 22 Jun 2026 16:02:57 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wbncx-0002rK-Jn; Mon, 22 Jun 2026 19:00: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 1wbncv-0002qY-R2 for qemu-devel@nongnu.org; Mon, 22 Jun 2026 19:00:25 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wbnct-0002Rl-UP for qemu-devel@nongnu.org; Mon, 22 Jun 2026 19:00:25 -0400 Received: from pps.filterd (m0279873.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65MJaDnR2101410 for ; Mon, 22 Jun 2026 23:00:23 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 4ey3ebah43-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 22 Jun 2026 23:00:22 +0000 (GMT) Received: by mail-dy1-f198.google.com with SMTP id 5a478bee46e88-30c17f62afdso482870eec.0 for ; Mon, 22 Jun 2026 16:00:22 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-139add73a44sm9128726c88.13.2026.06.22.16.00.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 22 Jun 2026 16:00: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= jw9yZ1Fa+tyKZPk60MTE6s7LkPtVtmumQCTRRtdnjUc=; b=NdLynNWtzXg48BCH upkw871rLR5Kw9IzLd7XQR4VILjDT1dBCDYhpYG82yiu2/SD1+tF36cOZlRlKGMy eZbfE7lrWdcYIJjfuXo+yeSvPnItj2sk4yhuplmc+rJ70PwG8qf8F85rmUGl9z0l ez7atvFs0zyYtBEG9599o/bem0o2WxJGw2DGVX5W1B3Ez7s4IQSYuzPthcaVtVSs vMckc5Cq6ZSN5cLxpu9y093TFSh5+hYCk+1CLggib7VlFMUbfBG+XbIGPD7d8Kf5 aEQJOSrPPQ68x8KeaAnQU7sJeRfTuA0aWSXkLZBmUuTOq8IiS9eqs4DBeLgVWp/z AMa1Qg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782169222; x=1782774022; 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=RvmtvIcZGUdiVuVoqqLs1acZWIeZyw62mzcO/phfOkqO1bcKDVvVM/5tNVeYygApb0 0hFq8LpK64ovGsk8OdF0RGvWggMYJg05jpKPYAL0xMOqfOYKdMxCgeP7P96GKSI9Szr1 ICv20e2XyYVZq+rJsQMVVfPt5n/HE+ds1kRmld99vfXyj+ZH/1QlGRqYpDYYwHHL3fCa Bk8nWCTyz1d+gXl6dV8x4tedFZL5zTBf2JoqJxr9Lz77f1TGhaaT1aQQvb8f1bw2Nw+J lnHqHNqr2+5hwZF08Fy6AEpaLwDTkRXt4tAC0o4foZnENMD/r0p3Z01uxeOWvWxBhN9Z Cngg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782169222; x=1782774022; 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=JhWItNcov0yoHz88j2Ln/1BCzOaYSosSclzNGNiTESsSEp0X6Gix2Z4QOuHA9b+1XO joPXB5gbhsAYYd0IfTuPhbgk4MdJU1TcBmHt7uyPaWxttHytQo1tu/oQX0CqRqXzs4cA 60lpnX2Zs0NQwJh4iTsY7VCO1fYzKhiy7t0j4e6DlfPsApVvR+lUKHnBHZifqBzqOSmy QEJTqnZUFIYSzf0Fl/iv8Xu9dnjbOns8e9SpMuTpvagfOqUKSwMEl1Tx7SNiqa4SMvwg SJhTQkMMqmqXu+LQmEZHBgR6vEKAJCNeMOLSr+ExAaos+9Oxi+sfrkZgmQ3AjFUWHlQn tagA== X-Gm-Message-State: AOJu0YyZ3abbUFvz18nWBPQle5vdUyunEDHEY/oapkNRwnKN7Op/Sj8f 1CBI3MA6X5S7+eg8kVAUltQdu963+6D0Iu2m3D84GZn7BRpM1WH4vrUUo5uGoOKANOJKchLWEVF ADBwt/P3x+ZH0gRtevKYuYXppfwdAnZBWRixy+ORtyrN5MJdUhtqCj1jI17R/I3ImOQ== X-Gm-Gg: AfdE7ckQVArvgajrkoM3qXWZWSilBaoOv1KOWoXek3SLX2ANvD4NhiK92tovdigCb3l waqvQA+BGJVm8BLp482RETbcUVDaeVcT3LzcnmKsnkkbPkQyWdSFTFku6Wu2k2uoDIE20craNmD xRzarxow8GUfTs5Qa5UNVE0qY2T6L1axn94zoOhRK9BcSoV9b2z1g9I/ZXdaNUSFH9wrQ4Ij5Qs 6CIFKvQ8BxvobeybyM61Pro7ZQ4JPkKxBN7dGuGRoNUflHMyPNRPC4pwRjlR8NJ7yhfZhB31uRj sr28RsPto1rn6o7ovXa0YvZXGcoCp1VxkbOHJZWqG9MPdIyBgAEtBEl3JHI9Nx0iOS3PaNjvMv0 9/GfJps7L59YusRuuG6y1kfD3Hn9N1mRXSz/FbEU+8sSopvmNjKAdprkei84= X-Received: by 2002:a05:7022:62a4:b0:12c:9037:5126 with SMTP id a92af1059eb24-139c3c1f692mr900182c88.9.1782169221887; Mon, 22 Jun 2026 16:00:21 -0700 (PDT) X-Received: by 2002:a05:7022:62a4:b0:12c:9037:5126 with SMTP id a92af1059eb24-139c3c1f692mr900148c88.9.1782169221166; Mon, 22 Jun 2026 16:00:21 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v2 49/75] target/hexagon: Implement hexagon_tlb_fill() Date: Mon, 22 Jun 2026 15:28:38 -0700 Message-Id: <20260622222904.607771-50-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260622222904.607771-1-brian.cain@oss.qualcomm.com> References: <20260622222904.607771-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: AW1haW4tMjYwNjIyMDIyMSBTYWx0ZWRfXyIg1RzoOMTt4 4Kxdz8YXRTMfelNt2rT6tGdvrQ21IWZ1A1/J5dFN4+XXJ2CbYCGuM+8LXtrvmge0gP9ZwFhKS7C qqndM4zN7nkWBAmNS0+ELZ1qOVK+hR4= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjIyMDIyMSBTYWx0ZWRfXz04+HOaEFo56 jL3Aj2AQcWkLI0FeAUDAAa9rv3qRk+CPSZapHb754RKlp0nc5DFJQerwEwGi6Lvj0s/bn2oJD7v N7ICtrXAUyk9IvoXTUfmpiT82vNPMhY1xToVVGTatoeqYJAV3PJt3u+sd32oC5Y6Bbm19J+O8iK jd1tdt2NUeyE4R+o1rShoRIGU8e24YlJZA1xce3r8LFZUCfPxs8uYtOm3v9F2cjhlFr07Z4+BVv yKaGecd8hP8N1qzGd80t64eBqpKgsjXVsA/52BKZhpIvgPdzo/kSZn1OdtwpkkXHQAOgNLX1xfh VURpjewbnxkVyse9+0BMdDEZwGn07R128eSbgmZMp9RJO+rTS7bmV4DYc0Gil8KKkkbw09jNgGO JUcnULDn1AOccSqprbsK0TxeVKuTGnNJjEU9zB8E2FJB7hNjhatrlbAt7D9icp0jqEzohJVxw6Z dkk9/2G/H/sPYBjbcRQ== X-Authority-Analysis: v=2.4 cv=ILIyzAvG c=1 sm=1 tr=0 ts=6a39be87 cx=c_pps a=wEP8DlPgTf/vqF+yE6f9lg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=rJkE3RaqiGZ5pbrm-msn:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=yz7b9sy1sBSXNk6fZdQA:9 a=QEXdDO2ut3YA:10 a=bBxd6f-gb0O0v-kibOvt:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-GUID: 47w5Eu3j7eoVw4SijfSthA143iTr1PHv X-Proofpoint-ORIG-GUID: 47w5Eu3j7eoVw4SijfSthA143iTr1PHv 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-22_04,2026-06-22_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 priorityscore=1501 bulkscore=0 clxscore=1015 adultscore=0 suspectscore=0 malwarescore=0 spamscore=0 impostorscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606220221 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782169378128158500 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 Tue Jun 23 20:53:54 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=1782169260; cv=none; d=zohomail.com; s=zohoarc; b=LaUBZaTvtvRMT4I3ytDNSG7srppIUrRE1bPB+A/I2fvNaUN2MbCk/bUMyFsqi6qUCZLNT+e1Eha++Q+I/lINatEORpTkcKMeGIP8P7yrd18Zzp59AKgWSnFAYPR81xLgTx2opi9ybzS64PX8jDthsy49UDdc3WS7O4NWCLJl2yQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782169260; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=Up5ppcYtppnqVZQE8LUcmKhJw7q83hioAhaQlO89gAz0EZtuEEGtU7qu0OT6THeJzl0namvHXDbTtVtImx5IvZOz4m7BcJDKDfP9tu49O8RLGyQ7UGQAbPmDKLZa1cauMaBfpkQWRcDHk6VZtaAxzsyct0flS3r55CJ/oPmL8Vg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782169260978148.1578884391546; Mon, 22 Jun 2026 16:01:00 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wbnd9-0002sx-Gf; Mon, 22 Jun 2026 19:00:39 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wbnd7-0002sP-BC for qemu-devel@nongnu.org; Mon, 22 Jun 2026 19:00: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 1wbnd5-0002S8-Ss for qemu-devel@nongnu.org; Mon, 22 Jun 2026 19:00:37 -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 65MJaxJ71902562 for ; Mon, 22 Jun 2026 23:00:25 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 4exyn1unfb-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 22 Jun 2026 23:00:24 +0000 (GMT) Received: by mail-dl1-f71.google.com with SMTP id a92af1059eb24-139af2bd2c8so2432970c88.0 for ; Mon, 22 Jun 2026 16:00: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-139add73a44sm9128726c88.13.2026.06.22.16.00.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 22 Jun 2026 16:00: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= WYScGZeBQb/FybxxD9F89fJ15bRXNrsuCqPgSPyLkDw=; b=RzBnJ8SlAcGS/meX nLRpKtSYLxcxeaW8esFRJIzQ7UfZVLtbLJYqwe78nyDPSA21HE2TscN3x+PGtu3Z qojSKJp8EZZYplxKmAYp7sJdG/Z4wNm8IU0Qlv0phR71/piYVJtcu2cE40IjHGUE ccgJuX/1roOHdtgJgej+fgyc/Jce6zLMcGmZVUvcX14Dxoqym/wfSJrWaZoYVgWr 4wAuZi927yr5RrkDr1N3TuE9NESygVNEI3GhN3non7uE85A/MAZtxuVwhjCRsBNJ 09UFoM8Var0zxkEno4+3a5pCHYY0IHDFP7NFXF/+G6+aP5uIjYcO00RALbmWpKn2 c41MXg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782169224; x=1782774024; 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=MoY88S+GjngORs1Jwb7Lp0G0eh03ocq0GQhkRRG/BhHx49Z2nYHAFKxyoPaP7Tp193 Mk3goquZ43LOycQZb6ePTBZsxL64eqha+wNF4DQvoVeQsriWMMX+sttRzCOuQBzZT/3p MvyrS9mIAMVi3i6R4UDnYKZbAAj/9vm68eDpKNGDOtKy2QkrG6EdeoJ3aacnFd7m7GpP aB9xA39Lru3eM34Q5A9lRKJMX8LOv6HcsQwrnIk9bI11lhj/Z4X+LzPASRDphHW8oHa3 VlrW++pU5rHYrqHUJqDCSsWPkaV1YFHIf0JgEAKcaCt/E1taksk1RkXnxnu8Mk/a5s22 dzig== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782169224; x=1782774024; 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=cpUA43xskaogrA34gXZTUssiGwPX72Bx9xteYApxD24s3TVGOePGgO9ceExwpgRewT HWEPE17AyOJw4kDcy62NN7wtgjddkn1SUQHLVt2dJNrivrmgP6aSBRxyFwIiO2grL1o2 S6Fud6UqckAScm16f/7yipm398fIe4dcpCNnfjcng3dFMT2p7eoDJoLmTkIgQZxJs50v /8u27lo46MggbcLowSAd4NA+CiBPedN6tu/n2hl8jqk9lOKiGqJWb5jvvCNCPjtE+Rlv g8dztkgV7l8cQAk+GeTSqDg3SWTpbJupfVxKEFEcwBq66rH0swE9vFEyYeGElSMn+K7Y Mmyw== X-Gm-Message-State: AOJu0YznwlyCNhJdjX56t2Y07DZjN+HeaCTNs16E5zJJiM5v4PukF2Ey yHKLskIQLZzY+JyAe/usp/3vBWyuljEAPb0aK0uc09H/otHyCa+aGOJNcR+RdH+DzeupVcCCXJ/ PqS/in0R+dIHcZ8dwXj6odfFkm0hI4rxK7zaIqncjTladqX+/lYGx6PzZfcak5WOEpQ== X-Gm-Gg: AfdE7cm1A2mRFRLEbK7ocrrikVxQUvZvfHZVUdBI/TjtWjC8PUWq5+ll1x6FvxNl57K T38E+N9YnDvKSo3qmuwj7aTkxM8TKDlzwQJOuRVEjrAwdY3BoNbBnhtJDpIxTh63t1ek2sy21EW uorY3+ZEQKN+aMO/bHvURaFJGeKuytlUJCkJrlutOy0+SBQ1J39C0wmcIRMlXajLqB13hHp1Ed4 Em4fWTnhjW18qwFK7RsEnJBEkrfAj/Y6LL0JROKfvAujUxiBy6k+ojT8Om05nSUtUq79c85MjVI x5P6iQ714EdtVGM793kVxtkURwjFsEfyUHCJu79cjjxw3CpNV3qJ43UdISHSt4MiVYzCpDg2ooQ 9s+22flVAHLYTxMBc14q+xilzEmpQ00a4vObfLtN+RploZ0T1iZXytUPALso= X-Received: by 2002:a05:7022:45a4:b0:127:3f2a:af21 with SMTP id a92af1059eb24-139c5cff378mr334079c88.15.1782169222904; Mon, 22 Jun 2026 16:00:22 -0700 (PDT) X-Received: by 2002:a05:7022:45a4:b0:127:3f2a:af21 with SMTP id a92af1059eb24-139c5cff378mr334047c88.15.1782169222210; Mon, 22 Jun 2026 16:00:22 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v2 50/75] target/hexagon: Implement siad inst Date: Mon, 22 Jun 2026 15:28:39 -0700 Message-Id: <20260622222904.607771-51-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260622222904.607771-1-brian.cain@oss.qualcomm.com> References: <20260622222904.607771-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: 5Tq1zCLQ6NtCZNttGEFRY57LE1xdh8GZ X-Authority-Analysis: v=2.4 cv=EOU2FVZC c=1 sm=1 tr=0 ts=6a39be88 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=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=HdTxHAvixyPUp6pof0EA:9 a=QEXdDO2ut3YA:10 a=Fk4IpSoW4aLDllm1B1p-:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwNjIyMDIyMSBTYWx0ZWRfX0Y5O5X0ZbH5N zU9Uy0SfohaUSuxJZfOYRP1XDl/dDrpFSMtzh68/fLjL9NVcFYew6U2ZNo57d8e0AadQ0Y6kWS2 C6s80VYrc07wOSkOGOGxGb/nrVTNCko= X-Proofpoint-ORIG-GUID: 5Tq1zCLQ6NtCZNttGEFRY57LE1xdh8GZ X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjIyMDIyMSBTYWx0ZWRfXwREqewkxtbv1 B5UqhgUlwGRbHzC4rkgm8wPlI0L4IzNfEe1rMSPuPnSsWGnaYiWauDmoXimGryAFntymj3dWnz6 /qXD7UwtrRL2cYT9PrSv8GSguI9m+Mzrrf4tT945q4l375a9kFyb24CH0LimVKdUH/ni5rtM38O kMLwEuChnxNXZocAJU2TW7O0g/6o6Nk06u/QWb/lU/kp+dLvtAjZeaJX4TgPL194+toRvadTLAz 56daSZJVyqMgijYQLySMs4YCSDwyEBEYAsQYAnxOKXTiwt9KNdif8M8AEAodnYzzLxI9XnDwUga PBK/2OWT43N4BMByzgMs3cIl014qc4HnLt179MsQIrtN59tOW2Dcz7xhkpysnUkcWK7UOBGFR/h EMxq0KUgkv/vfnCUBDY17XZ1NNJyXfNfOhZjcX+cKq9yzCxenaYl8mBC8OVQ8PAXFGrc62LILNU qWIpApQBeAYo66kwT2A== 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-22_04,2026-06-22_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 bulkscore=0 priorityscore=1501 malwarescore=0 adultscore=0 lowpriorityscore=0 phishscore=0 clxscore=1015 spamscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606220221 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782169263607158500 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 Tue Jun 23 20:53:54 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=1782169368; cv=none; d=zohomail.com; s=zohoarc; b=Vpb7A4Ro2uZUGKRpcH51RKOcwfOjJHTtrcqG9nOOurjYNSvBbY2kR4wGpsNU0dDpxGOiSfDxrVcHxUttdGplN/4syikti3AidpGA1PVaIwJjUlzwbXHP0Zg+xcOOO/9IeChY/Z/PABCBN+3COv4ORVZ2addGeJ0BYRcU2Kx6rj0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782169368; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=hwmGHVkj4m4KvYdMmtZVnZ07Tb86wO8fibzyJ4+0h8s/lexHDt6lkV3Hjlw2HV8pS2r9z5Skulg0Lx3xySB/T7LzJ0SuCIzqGS/gdvAQoi8YxsiMhQBV7rjpsMA+g+TJGE2a5D6TIVEeSZOQRbxhfEjJyASIeqJ0IIyAxyYvL3E= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 178216936845348.6810082117637; Mon, 22 Jun 2026 16:02:48 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wbncy-0002ra-NU; Mon, 22 Jun 2026 19:00: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 1wbncx-0002r6-4w for qemu-devel@nongnu.org; Mon, 22 Jun 2026 19:00: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 1wbncv-0002SA-Mu for qemu-devel@nongnu.org; Mon, 22 Jun 2026 19:00:26 -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 65MJbA0X2122413 for ; Mon, 22 Jun 2026 23:00:25 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 4ey5n421e8-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 22 Jun 2026 23:00:24 +0000 (GMT) Received: by mail-dl1-f69.google.com with SMTP id a92af1059eb24-137fc6f8e9fso5230440c88.1 for ; Mon, 22 Jun 2026 16:00: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-139add73a44sm9128726c88.13.2026.06.22.16.00.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 22 Jun 2026 16:00: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= JvcaRvjzOPnVsLj+Umjxfrn/9XQNcxuKMqpMR7fRmpk=; b=FIaXpITiekwoOgpV 9dltr9vGDPpu70DqvdL6EkLI8XKt9GsESYtUXhw6Ud77hdJihaw+/Jo99GPqu2FJ XAYhaudEpoLE9Ejl74/gQQr7KtU5zjIFbejCfyr0srHiFhRhZGxb2iXIx0cGt6Xd WIuAogIIRU/WBrwTnEBP+2aVlx3lDfd51jr3n55rPEFqwMSx784EcJC0BTsmQn8S NSQvwwlJL+KuY3IMxf8S0MvunEkYHIZJte++fjzcNx4nfpyOOjKmP9tWWztFKJU4 iQUAK5v4Cb8yIEl631C5HgsrP/8VqaP9JCnTzpYVpLiM6h/pmRNfJmKYqO+Ytc24 w02W3Q== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782169224; x=1782774024; 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=LABjf9JBJSHO6zoIi20t52VmM2eBBlwLyf/wJyWHUKZuFBikxh/W9btXI9D3oYELe1 0FUaIqV3U8Im8FGRY6niqPgjCsaq+lrRxA0mg/ipY+TmVWKkK/ZPmNzZkQLonlC0NrSW Ys5Wf5kzAgMInDLbcPS4c0CZwi+gDvR5tie/RZvrPqdR/ovwDXknTkTbSgGKyjhZyIPZ MGZfk/KVVpn8Z5TQE6idzjWxIOBJKpof0p864WbuvDevjvRzbZ8TT29rpTf8aVCHdcj/ bm/QBuO4dniPOj46r3ef9M9l+BA1Y9xnP5z6PreceEDOELRkw4LqmG2Z0EsrPdirJBZI 0ZNQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782169224; x=1782774024; 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=dKa0sE3UEQvmMeoKMogRHehxhAOHAQ3KIkhXCLK3ffADbQgOigoBMcQ7AqH1ase26f VwN/II+hjrKBxCioB9e3RRLdy5nPGX2yOvexxOKhKdxZgOoeixkdZNyQTP5wUU9gcMXL ktwEChB7dSz026mCrEgQbxqqUdNHeHJsYoor/dFHBu86IhV4hVZUuu/Yz+MXoKuqw1xv pzQgTmF0CVntaXOWfbjnfozMB/FD/b130jEnoB+5kM6K+AOXTLBosVQS/CxlRZtM/Q6l 5BGjYbwg27PZH0jxYmTAvSyTrHTYsCIwqKm7Qq80ZWH/GmlqAThjuIE6i7Ac+hdjobi0 rsag== X-Gm-Message-State: AOJu0Yxw7/Pm6u7Mgy7GwvurPZy3mECsihZH2nCEhchElIaFAENWoH96 1hSkQDMhsqsC6nE4Tj7XjtxCdP3N0YIWhTiby88nfijI2fzyZ7n9fwn5TeDlWNNCDURNiwjgUn2 LfedfrgiRrebK9FLS7a2j5RttQfEvTm6Q+qLGVxlz3f1BNIPcV342YsW0HfUa0oxbWw== X-Gm-Gg: AfdE7ckTPvgfJQgan6LbhTUhf5PNSoEugRJLCn5RcLBEeZi5dvgmdG1HVS9LZHQRlER 0RoB3gZSzy7BjnXl3MS5MvnhtQUN19JNtfpy+ZAxpqjeP6YaSR7xf3JRVonEOAKW/wIXUbT13ZW XWQpp216rjHVWXEoOUGFwXUf7a3LcrF/sDf9CnuPb+2IKsEI4a9gqyXs6Z6+PYFonUSm8YWR4Hr 48oCo90mwpJvWRPOiPKyPhAWenLAHXN7XfuxvrUqUis1HV3WPub9g3gQdZYjTvMVzvIhgzvy2cq 18kyHMdYi9FEOC1biR8oQSIUp7c6Ztp7dI3zFgQWyKhG6EjXTgVwzWJ0tg4nfMprrV0KupE85Th 08B2hSvbQfZSPGlG/P5//CgaSqbSiZZK17GXoWLpbqL8DyvKeyQ8zSDu5g6w= X-Received: by 2002:a05:7022:e13:b0:137:edc4:a5e6 with SMTP id a92af1059eb24-139a367d1aemr10297888c88.29.1782169223633; Mon, 22 Jun 2026 16:00:23 -0700 (PDT) X-Received: by 2002:a05:7022:e13:b0:137:edc4:a5e6 with SMTP id a92af1059eb24-139a367d1aemr10297861c88.29.1782169223094; Mon, 22 Jun 2026 16:00:23 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v2 51/75] target/hexagon: Implement hexagon_resume_threads() Date: Mon, 22 Jun 2026 15:28:40 -0700 Message-Id: <20260622222904.607771-52-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260622222904.607771-1-brian.cain@oss.qualcomm.com> References: <20260622222904.607771-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: AW1haW4tMjYwNjIyMDIyMSBTYWx0ZWRfXzSEj6x659kfz yy6itrzq6bM9ZYP1wjaoitiqY7UwOe3bICjRg8rbcwR3YdQgLKnvk+aZJQmgj9Owftp+vahU+HR peZmEK9iFC+hNnlPLDhHBRgWtIp+iAI= X-Authority-Analysis: v=2.4 cv=R8Uz39RX c=1 sm=1 tr=0 ts=6a39be88 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=3WHJM1ZQz_JShphwDgj5:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=uy5dMy9T3THg1DqjAFIA:9 a=QEXdDO2ut3YA:10 a=vr4QvYf-bLy2KjpDp97w:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: PV3o8Eq18nR4dpDDFLmIOXYL4wChTFjt X-Proofpoint-GUID: PV3o8Eq18nR4dpDDFLmIOXYL4wChTFjt X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjIyMDIyMSBTYWx0ZWRfX/czKKOIG+yDV iSIvJJ5yuNH8Wrn4rksqZCzWdaMSCLQnURhsFgxSD3tgV/NYb+5TuVHNB7RbEkn+6BHVEnm7PQW YZI+f2oBiat4+/6XGcHUBcLvIzBWmXFpQg6J0BL59JNu7Ncg7OPGxzUy8f/wPujpacq2azKN7lv M9m06jK9I5Tto7Ap5mIn0Fn5+CXkhvS5d2zI/KnpymntYpXL7DLf/8UykRgUk350gvEqe1rPv6q b1ufasDL8u4kV6bXTpOgHrKKz4CgEK8BnbuaAI9UFRypm7zT/icM0nxgnnp863w9VDm7cCbWyZK u5trjHxJbxDLFwS1P/lo3iTjupY7D53IkH6fsAWJbwjsN694RBQYEsvQMBr5P+tAatGN5YZJp4M jYX7vyaQaaHp3lRXCnheswvNnvrx5WAR5Zs1bn+AIpIRliTab2ALbqTs48eXyiC0gMjCDak3uIL OQ2nZ5kYfhAzfpzRuSw== 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-22_04,2026-06-22_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 clxscore=1015 impostorscore=0 priorityscore=1501 lowpriorityscore=0 bulkscore=0 suspectscore=0 adultscore=0 malwarescore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606220221 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782169370080158500 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 Tue Jun 23 20:53:54 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=1782169341; cv=none; d=zohomail.com; s=zohoarc; b=gAL4LSgmo3ovkxOwtw3NdL0+9Gr7RZ/eaQ3M0p/nL9N9CwuzvUOOcj7J/VXdNvXV0Gy3X6oj1Kjb68YmT/dSKeJVVIr+FHwJCqkKx+yK68D4qDdF31kBMwefAbdUjWZYwq4vkkpNHDZWANRul1TuY0PgnJ/iWNS9ZyervH00dFk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782169341; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=FtdEZLIM+RJO5q8zAf3PKLXidffa7nByDClZXAjBTAXhXgNd7LHoiyDHZh35Tj8wZYCyvXUaLle5Psj4WqnXz3PFxUjpP7FbUypzHDmXlCzfEeQnx8K3WDIE35M7sCMFPndW10DJKg7MRsCdjzWXhn9N+Gg+/Jx2zq+NrnQJRls= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782169341119972.9019763583411; Mon, 22 Jun 2026 16:02:21 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wbndC-0002tS-0H; Mon, 22 Jun 2026 19:00:42 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wbnd8-0002sX-4s for qemu-devel@nongnu.org; Mon, 22 Jun 2026 19:00: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 1wbnd6-0002SU-JS for qemu-devel@nongnu.org; Mon, 22 Jun 2026 19:00:37 -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 65MJaDWN2101408 for ; Mon, 22 Jun 2026 23:00:25 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 4ey3ebah49-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 22 Jun 2026 23:00:25 +0000 (GMT) Received: by mail-dl1-f69.google.com with SMTP id a92af1059eb24-1383723dfddso7821026c88.0 for ; Mon, 22 Jun 2026 16:00: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 a92af1059eb24-139add73a44sm9128726c88.13.2026.06.22.16.00.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 22 Jun 2026 16:00:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= J1aA0AXcl1R5eWizmiiFdBlejhKxkpocBp47xOiaUuM=; b=Eu1k8H2zZHlfyYJX kw4dlxAdc5+kZ1jnhGwDQjTtyCIloRqfzcLKht1XJm2FyAGOLM2D3H7AgrIUmMlN cHtLgZ+kN0Pj+C64547LLZKg0kTXJdJSTlIynB+MxLDrZ8JHmqP+hvG69vz6kzMe 5ONOuwt83LhGYEXWA1E+Jn32Yz+QKU7i7gFSDuT1QSjenMIhz+4esgtZfVdB4vxq qxwqcsyOmxeE8U27FdoC5UAPF4kAxP7YUJEo7aX8EJkWNc3iOcKUy8HAj7e1Xubq 8gJzg2JI+H8L17MEexWPJysDOyf3FJRBOyuhS4XUcYq+hZWupdyMWWPBKyq7TCp3 67R6OQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782169225; x=1782774025; 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=WQ87I3WhgmY4deYHnaY7tk7KXMjvUfAVm1MGTWC9qsm+uK/Q8ADwo5HWEzqrKPNKk4 IhklDNvKYVXRRSJfN9t8bvthBJt1AOrUiSZI0NsqS5GtlmqySEUEJCGEqnzdmhAt+MxY /5yWCTy9RCHW0ne3081x0X2pXetRkk8SHpheGvkMbIVwOt66s6ODRUPY13nsmgoD+dDX ECafbrEBmHiWc0PEcVwu3rnDMlX8MnHymyUBu4yD24wr6a9bI/SY3MmodHREKxjpugIp 3IB16ubD7ISpsQpeABrzVG5cH5WKKRmDGR+ZpaeK+zlbXYG0uCT+giCthFvEG73x5bDI 5Z0A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782169225; x=1782774025; 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=My2Pio+AIeJpUMaYNODFXGEcg7s0TUzX3y/+L8gxcdv37y14mU8jJUo/HWXGYVU25m v5f7dd9fQUP9nYoaJNXu51l1IrBCRl26jkuEqr4vb/qnneBWqygutXt5GKXvGfaqcRyt IYBDtnfdfJPCewI5MAuf0BMTc326ttLBycqmTDdwLaln21WCzb3aghJ+1SODmy+1MssR JwCliaYw23j5hudsnLoh6kcY8mWK1pVHwBDFuF1md+dBQi5nNE6PzTBSSTDdPRGjtsX2 8edtJA6MY+8yLpejQJFMrbClNly2L82t4zLnunMMDGfmmUBqLL5CFaf2PctW4XMpTtxy Q+5A== X-Gm-Message-State: AOJu0YyBI1jQiCPKwECVofw+Q70N/bc/VbTclbiE5kdv+KwORCkpt3Du DCFHOsai3Z4Uy4K8vFA2DO2ot9jLFebpSoAFUXvmElRu2Q/MMrCF41I3Pm4oZKTOM3ogh7HWv+h KqeMWRnlhzD71bXSaJktEZz/+EA3nhHJ+RIZx3kAdiFirNCARKZzNKtH+Je2hA4UxRg== X-Gm-Gg: AfdE7cnHA2xe8eixqd4Q5AUsgTn6uFsbfO1KmCIzKNxv8s/yITXRKLha02KlfEIm5cg jajzYwT5Y9Q+QpVZ0SjjW49hFTZd/c0gmM5jMjeQgEap8y2cV1d1RhRiNFzyOc6N+wxsQhT6/U9 /nWBtuLd8nqsR/J8EbQ1Z3IDdJhbgW8m5Fe37VaH4E1yO4W2Brrg/Rz/khPh731RZL79vOtbW2x q4dPd4tqhQ0V5cs3bDaGMJwdTHcGEFPG4NQjumxA1kGlugXqsb6HQaczI2UTAVY8ed7DDq+3HPK 9XJHIuNxQGzIWaugz2EwjV3jBPLyqzIFlXDV3WCO+3it+Vplu5qCf3S+xjxk49mBYbcIThie63o 02GNIVsulmZzC4SPFjZGggwzzLKxyQ8TISBVe7LecF/Ru50zM6e/BRA1ve2I= X-Received: by 2002:a05:7023:b09:b0:138:1130:5fd3 with SMTP id a92af1059eb24-139a34ecd60mr8680494c88.10.1782169224619; Mon, 22 Jun 2026 16:00:24 -0700 (PDT) X-Received: by 2002:a05:7023:b09:b0:138:1130:5fd3 with SMTP id a92af1059eb24-139a34ecd60mr8680467c88.10.1782169223970; Mon, 22 Jun 2026 16:00:23 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Pierrick Bouvier Subject: [PULL v2 52/75] target/hexagon: Implement setprio, resched Date: Mon, 22 Jun 2026 15:28:41 -0700 Message-Id: <20260622222904.607771-53-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260622222904.607771-1-brian.cain@oss.qualcomm.com> References: <20260622222904.607771-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: AW1haW4tMjYwNjIyMDIyMSBTYWx0ZWRfX1kbT7DIKlKoi pxHzfXuAKTP08fmaHG53rg8CRP60rELPyr5jSTshP4k5OoecP9DLf0dqbNfLMu+JPz4fqFIfrjV dYA4XlgZanAQZSr6cBuwc0+5+yAsTOU= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjIyMDIyMSBTYWx0ZWRfXxydMy9rNiKHc 8E4gnHevO0oWYFGjE8/8XsGFULzfDIZ7ah2+/7eWspg+v3NNRhMeyxpY2hpnn/Xa/Kvd8DJxSGB cYbKX0k1MfyLI7zC6DBOyyNKpssxlz3w0Ria/7nifqbwSivHuC9adxWemWK3aKx8bXi8IT507cy g2sw4dBusIfkSFuHlYmh12/4/26rIrB+GfM0GqSHDjYMB1ddY/mnCvle7FhkAil1BLCabZ1slE9 bWB0NGEKYVFpZlrUUk0bM1Ri/6YcygJxO0N1OTzur67lCK0xVnizuU00gwzcF1w9Tfr90UC3Pfv KtkFAd1b+6sa1ddr5AGOpA5HmwQMBPdOo9ILAQSRN+KOKAWXHs1O6Yeg868CQHfAlJwYL7stjuN 0QoduF6WD5J+MFFfVTGlA6TmGUmHi65ab3QPRli2vTwxa3VkMzs0qEcCVAqHOUVYKpgzybDn+eQ lZqdn2X6umzP+M2uxHA== X-Authority-Analysis: v=2.4 cv=ILIyzAvG c=1 sm=1 tr=0 ts=6a39be89 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=rJkE3RaqiGZ5pbrm-msn:22 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=9hY_xzidxOicKg_qOOkA:9 a=QEXdDO2ut3YA:10 a=vr4QvYf-bLy2KjpDp97w:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-GUID: MT4pAa88YHhiKRm_9Nhlx7Gp11N3F2Uf X-Proofpoint-ORIG-GUID: MT4pAa88YHhiKRm_9Nhlx7Gp11N3F2Uf 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-22_04,2026-06-22_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 priorityscore=1501 bulkscore=0 clxscore=1015 adultscore=0 suspectscore=0 malwarescore=0 spamscore=0 impostorscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606220221 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782169341963158500 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 Tue Jun 23 20:53:54 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=1782169317; cv=none; d=zohomail.com; s=zohoarc; b=ZmyJmxLYB9WgIYoqIZFuHhYp9Ks/tCUsDzTqdOLR/J2OeBaR1dQKvwKk2slWLXSkT3m6g0rypiAbSpnbNoAI7OMhgTgfC/gYPfXePE9lsHh2aJTDwUbCeM5BgfI/PBYkGjj+tdqO84LhF+flKetQyIx43PLQL4ebEhD5XWuesO0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782169317; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=B5hs5vtRPKFOaWDAK8p3KgEOqeuH553C+CKQ5xU4S+n8t1BctgLSe/k8GMIVpvgjwVfqOQk9bD1e4wUMlXrwyqx/MH9Aega6jSei/66Is2+rG9OaSFgttS0tZU2bCbWLizrwBBGCNK1tCqzPPQuD6mxMoiL898KTjONKxIuIrz4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782169317076733.6023607174317; Mon, 22 Jun 2026 16:01:57 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wbndC-0002te-EZ; Mon, 22 Jun 2026 19:00:42 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wbndA-0002t1-BV for qemu-devel@nongnu.org; Mon, 22 Jun 2026 19:00: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 1wbnd8-0002T2-Rn for qemu-devel@nongnu.org; Mon, 22 Jun 2026 19:00: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 65MJbA0Y2122413 for ; Mon, 22 Jun 2026 23:00:28 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 4ey5n421ee-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 22 Jun 2026 23:00:27 +0000 (GMT) Received: by mail-dl1-f72.google.com with SMTP id a92af1059eb24-1394c3ee7f2so24364336c88.1 for ; Mon, 22 Jun 2026 16:00: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-139add73a44sm9128726c88.13.2026.06.22.16.00.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 22 Jun 2026 16:00: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= HRwBm1PEj4CfI6jfh+n9tz4eTBvdQkmFIGL8YkDQmso=; b=IhEpsC6Sh6q3+RLY eSmWZUZK3heXET4eyHZBa+MeV9Jel/zap5R5Td7EztGTK5KLE3E+ghNg0iojVqN+ dJG31J1l4dUlHMKI1H6FKwPbmUpTnM2UeptCkTI9uvgK5KIKdTDKloCcnui7wVcc dR+/G8SKXhCO+f4RAnjnOGr0NxRaTHzyjR7FCGQJi7ORbMBbAdmEjuiSk0KrlG9k zGOWFG5vuasLglRc7UJUmnMSFU2BjJZgkJerYpAfxBhww22YD8kiSqciXPeXDl/7 JCJ/s9xdiy51BOQqWDWPT8qgRGGvdDrW1M3WOoq38Bcl/cRI4iUYD6U4kemJr+9f dlRZFg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782169227; x=1782774027; 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=M+LUNhqBxPofRQHCCzWKUVScnZAULcBrrrBB4joMel6d4wHWBUufqMWoZuPmuoG7OB D8344u3gtR6k+XFhhZhA72xhBfHXjj6ztmlOgi4IBozaDcur+Qcv2cNIRFeCj1WN+3nj Yz0DOaDprF7G1TJvxI6ew4Lg0Fg7LYVDO0tLV8NHG+DMTY87zNEXekhgb51/6EDrhJcE wgme479KPQdGpdRK8uxuzYsr0t21ObCsCez391Vuz3BIU9G8CmFPeq9Romg0LVjWOiPE z0ddmJOxojRB3IPYWd6hKTn55QAa0NlLRoHD5Uv0Q9URhwphQFQK9+7gAiQtnI31V/MK FioQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782169227; x=1782774027; 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=bVpngneZiMhHfDnPLFqzCS/DyXAT0xJvpJ1NsTSUf1y9zF9AnyR9VQDTpb8vD0ZaGZ o6xDOrIYZA1yDY2+muEwJ0kmlxAhQzeC8d+KGFvpawYuqAQSPw/xY3V5rKgldlNkEJjj TtTc/1XsObvWMyqEn7/rnscLfQzPqXsqymSIuJt8aQlr4anIaZpeCMPcjia4CSj/fMGf 1m/JkNAZj7jHDujhf4jZkLu9yTeMQnlz2Nbv9yLJuIx1lEleTdMMNkN7d22Zpqofsijb Eiap5FiubyL7/ATSD1B/jnot567KYo5BOSGzwznxHgFvD2HmIEOTYU1Ba9dq153gGZB6 5jPA== X-Gm-Message-State: AOJu0YxpyglnAH9VFGWbs77N1RFMDoOgfgQJ6D1YRSkNX4wCfK0p773u eoWsQ7aVDmU16rwWeXn/MSptMmkYDVZa9hm8ZMj0WVkV5N5kchlHKStcLVgLEyqOCz0UhxXrvkZ yXCpEAWNq7K3CG5xavW23kGEndq/80FTauHGWLW/+SiVOgv3fkxipmoiQRLHNwoI4cw== X-Gm-Gg: AfdE7cnVDiFGE8q5JYlDd5URVNWGKuKJ6N6LdJ67SwKAlmJqLxZc1S9Fe9oL4dW++Nx 48qEUfV+byG9PEpl5jrq/xNayum6xROjeRouIndSKx0HDycmBRyLnLczwGNxrdBvef7/TehqYZr wLwN6BAsJYMJKv2AkFex+FufcWG0O8x3G1LQ/j01nlt0jc14DFZPe8AvnAhqGA/mAcoIQjvQysu nIj2eG+Wl2YoBtS5+pAcTbK5OFMTi6gsnL7UwnsiaqDxnuSYXncDBxG4x+eGRgBkB2Um5jgEJzq 1zTydcaynhXo0KbBto6icnZimHqw6bC9JaeL4qFxVptskXhrgHh7T6wWYm7mCiR8QRap3qV3SYp SPynxXDHaSRdN3j5N1AAoQfrzeJZaG0C7o96s9sRA42/TdEe1ZZEls/8yL2c= X-Received: by 2002:a05:7022:68d:b0:12d:f0e8:9696 with SMTP id a92af1059eb24-139a20361cdmr9696761c88.4.1782169226632; Mon, 22 Jun 2026 16:00:26 -0700 (PDT) X-Received: by 2002:a05:7022:68d:b0:12d:f0e8:9696 with SMTP id a92af1059eb24-139a20361cdmr9696747c88.4.1782169226084; Mon, 22 Jun 2026 16:00:26 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v2 53/75] target/hexagon: Add sysemu_ops, cpu_get_phys_page_debug() Date: Mon, 22 Jun 2026 15:28:42 -0700 Message-Id: <20260622222904.607771-54-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260622222904.607771-1-brian.cain@oss.qualcomm.com> References: <20260622222904.607771-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: AW1haW4tMjYwNjIyMDIyMSBTYWx0ZWRfX3xOAUzyK/vW5 kR0cor6M2SUuKwAt7HT9nD+A6U1F6b/L276jfRviJqjfyEWYJnicJ3Y72OhXrxplCoUmhqbiesf ByMaTn2qR18ETGiq9y5v/VYf1uaOPUg= X-Authority-Analysis: v=2.4 cv=R8Uz39RX c=1 sm=1 tr=0 ts=6a39be8b 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=3WHJM1ZQz_JShphwDgj5:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=fg0LxJQkbHe3Ved8Rg4A:9 a=QEXdDO2ut3YA:10 a=vBUdepa8ALXHeOFLBtFW:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: DaJ0YY1rdwRHmHjU1Tw-ema3SpynwY30 X-Proofpoint-GUID: DaJ0YY1rdwRHmHjU1Tw-ema3SpynwY30 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjIyMDIyMSBTYWx0ZWRfX/JVElZ2AHlqR gkk6I/9lDxEF+fSIyhgyvXnsJ4D6uKgeVfHpBffi1VNQ8ITI/8+uNZk4zFAoMvMoCS7rgGDaE9E gBcWeWwbR3hw9QogeTnB0wQjxUpg2NbBAFk3MJ3+FyVNMTr8BZlhxTLo9Vhvb8NydAfBnGCXZH5 ea7j//NgJ0pSrZLjTMP/B2oIGIVmE187K0L+R1m4IYJf+G4ti7gnaEVQUIeYWa1vyt7Lb2ShgmL 4VjFKMIwyX/N4Zu4dkp7qqN52JVPyTFXvzfsTWVA87GJ+4qTN2jvxI3g0ixEQcPMl3Fj2Ra8JMo 0iqrPiEyvQNdUEFXtM08BJ+ys71Q7oRg+CPx1Aum1Z5HMndCYfNJKn2A95YlmVrAdnq3JSop9wx zJkkTOlWuK0QubrT1e7xkSq8C9gPr75LEG7QAY3YU/GGPQQsOSBE1nvbrkbOOwSux94ybnQKh9r CDBLoaUo5tU8gEndGbQ== 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-22_04,2026-06-22_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 clxscore=1015 impostorscore=0 priorityscore=1501 lowpriorityscore=0 bulkscore=0 suspectscore=0 adultscore=0 malwarescore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606220221 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782169317995158500 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 Tue Jun 23 20:53:54 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=1782169432; cv=none; d=zohomail.com; s=zohoarc; b=g9SR65zyh6AKI1KfpdyrTfZNcWwfuMPNdMFqe3fIU2tdgeiRuPMNVKnmHg1TFKdUYYy5aPldyGFS2Xjf+72ryo8Hc+YqKolhT0ImYVZGQzTz0bipwhryB4MYlMSLQygTM/a0OaKd8ovA8IXQlBVXTDPtCPNkUb69ddSkLRT9mjo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782169432; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=NRsiyP8fC0rXCI0yp7bVO+ngX802acpGxYhhbuQJrIiwqpQpXd8ILk3VCKz5NwRbzTlD3ybzmktE9OtD0+swU9rGnZd8cBGohy6xQWJqCtLSCliui61LKPz8WZfwA3YpGLwVe5jdilW61jWSrtGB2zvW0HCXUnjZK2jBT9yOnso= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782169432322348.90362882212537; Mon, 22 Jun 2026 16:03:52 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wbndE-0002xp-45; Mon, 22 Jun 2026 19:00: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 1wbndC-0002tW-2h for qemu-devel@nongnu.org; Mon, 22 Jun 2026 19:00: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 1wbndA-0002TG-Ht for qemu-devel@nongnu.org; Mon, 22 Jun 2026 19:00: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 65MJbh2W2206957 for ; Mon, 22 Jun 2026 23:00: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 4ey6tmsrfu-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 22 Jun 2026 23:00:29 +0000 (GMT) Received: by mail-dl1-f69.google.com with SMTP id a92af1059eb24-1394c3ee7f2so24364457c88.1 for ; Mon, 22 Jun 2026 16:00: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-139add73a44sm9128726c88.13.2026.06.22.16.00.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 22 Jun 2026 16:00: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= pn/yqs889jusoL8Cmra03kW8nABJmbmt9+r6zbgwxKs=; b=pom8RrearaayRoSp 6Q7XXJh0vWFqfV7+7W2P3TDKRIrQg/5JSPL9Xrre6drtw5z+USyemGvi4Jp0/lqC m7rUC61aZWYpPb+Guv34lVwihoaIb3F/3jNFyqi+wf45JRSqGSPyKxW5uDExWVJL 1Xqv2fyS1yoI7w/g8BlY6tzoLjdL0wYXFs6FByBaRKK90JT2TafA/0t9/R6LU6C3 8xa/0JSRxwCHtfViIG/14qD+5t3mMHMsPR3bga7GBw/CC6bKjUGgf6GIjRVi27lt Syz2Big5Owhm9y7MFpUF348+Msvwk4vmhbrO0CcJNezlD1htsOIgwUOD+HtDuSPh 2hgKKw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782169228; x=1782774028; 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=VqzhmTbGn9fDVv2GnPcNmqoJb3kkkw76YzS/tVx+f+INRRxcauIgpvzDxkpKpydvwK xz1M9iy+KOzHw6kSPW3hyyAYljSiBUUMHWy3lVsQix6Lpvac2x87UYvYvcPf7QujQsYo pPqMnqcXWg3n4q72GIb0p/wmV09L3LhDxMLpuL90SN/Okq0w2woPFrurDwSFK7BJHC43 7OZq3fOLIiMWGQVI4TT9zDUtm46XrdeVdN+y8Lzv5jLhG7PJEirgYz44JxO4Mankt3RZ K+8Li4HvgreLY7+5cCSx0V1T0yjDQxFrtQLcIKYC/+5dOUkJv2IgN3SQ0Ok77ac4lsui 9NoA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782169228; x=1782774028; 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=bcW2OgtgUSgLJA4FoI283MGS/rITFnj3pbE+T5QhF/grPonASyypvyyJBLmllAVAWc F+XAtA58NJY2psGTuQgluATSdsez4pdGEuYrBJSJqP0nOQ7iJse6mVw8ZifklgaTxtWz /sBZ4nRztm/SwfMKsixen1XE1BnIQGQA9sh1j5wHb0KvSbsYHUiApfnfWzjjzje4kO3h 3QhyOr8cRv/mGxL8oZTbNn+gVT6cfwezJq4f7tRUe6BjyV3PgM36izzHpJWVT63fe4HR n9eUXE5lcn1RCge3El3X+SVT5E3EQbK3vtNUMhjOp2Z/MISO/rBYViCc1XQJh9Hky5HN /E3Q== X-Gm-Message-State: AOJu0YwPeYA/cHYDPV8+gAReYNiGyLHUL8OtwmIxnhR9B82BeCZsLIzJ 3OYuxiqFE9uc7sPbAPBrGvgbIOheCbDd7ngRFdQ6Y2i1L2MWShZp7vIpdAQhuTQnn0uwP1y6Yxc CZEURWNbAO83OKdp0hqypjCm/lywLhlmDMmT8VMi3tTGvIkUPXb/599LPjAmp/MNhJA== X-Gm-Gg: AfdE7clBkZ4PpSRBVPBioJHxa4JMLC23OFTmX1q7fZEZFItnV4imeDeL/FB+S7oSVEA RoGUE0spbie5G9eQBzMYPaE4S3I4U1TLZ0UcApHR5fA9N3l3BNlF/vpA9dk1LMz4ScY1r3JJCIk LKGtvXTXOksdqnZYipcZDfIjVXojdBFZ54effc1NSSyK/cRUB4TxF5DkPfd+xaTa+zillo1HRcw aNpy5x+EG/cbOMw0RZeeXJhs+/wxIOH5aJCWeYlR4LnfQ8xvO+T1gfWOCBx34/uKS9Au3/3/Vcw 7jD/usIZ/TqmJi4MFQBkjWI7DnAyvZysqBqOy7jju53cCR5zNRrCXscnBplf7O2yE93BuFI3NOR UBmSK13bpOYZcfuE/7iwy1X+cKbljQole8sNtlhsUGB8Jt51km1RmJ8E1f+o= X-Received: by 2002:a05:7022:689e:b0:137:f875:c1de with SMTP id a92af1059eb24-139a2116825mr12860771c88.22.1782169228284; Mon, 22 Jun 2026 16:00:28 -0700 (PDT) X-Received: by 2002:a05:7022:689e:b0:137:f875:c1de with SMTP id a92af1059eb24-139a2116825mr12860717c88.22.1782169227497; Mon, 22 Jun 2026 16:00:27 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v2 54/75] target/hexagon: extend hexagon_cpu_mmu_index() for sysemu Date: Mon, 22 Jun 2026 15:28:43 -0700 Message-Id: <20260622222904.607771-55-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260622222904.607771-1-brian.cain@oss.qualcomm.com> References: <20260622222904.607771-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: AW1haW4tMjYwNjIyMDIyMSBTYWx0ZWRfX/DIyE6vrKETj dnob5SsjhpzcfuU8+FgH75TmFjLu9jySchvVCgEJ5+ExXXAQ2yLRUXrIf0jw1G248cBhXymG3uM A9iyjEq5odMPtMwceiv/wxlKrajrmOM= X-Proofpoint-GUID: ehRd3umJPS9AbnFuTkcIkdzvbBBVshp- X-Proofpoint-ORIG-GUID: ehRd3umJPS9AbnFuTkcIkdzvbBBVshp- X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjIyMDIyMSBTYWx0ZWRfX6dTxNOMhq3Gx dLhFsg8GOJ8ah78++0d5A9ma45DpB1m6y+FSikDnI0xmdQ1kLUHWppsSGk+MX7h7ntlWbcqL5+W W7zEgF1NTAOhlutaM5M+771oNlwjWNvKtXWmvRdUX0v8iABY5qPst44sUp6xk9oqFgpTmi0PMux epqIri21KYj1y1RU4V0JmXgeL/RdH4QusJUTP4QXZk4kfsv38CnnKhsMd/89fBvq/IkCLEXjsjG ePDpilVTnrSNWPOLzJ9svb01zyWZ+Uj1Odfb9cxM2K29QXfXsF8jC6zzExV2oJfZUodp1GeRP/s zp8DUEEuMILCjiuqinxQHkEU1DqmgZOfzM/rNjIvAwI+6WUf5tG2XHF75MMGXOU0fQw8W+G7Zx0 pjiaWJvZyMILpYXqF/VCO0XaZezL23ZUsmP+NpFQGO1IcxrKQuvA4QPRboLNVRUVKPZEC/SbOZg tzqGhuW5q0rUJjVZiTA== X-Authority-Analysis: v=2.4 cv=H4HrBeYi c=1 sm=1 tr=0 ts=6a39be8d 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=hUoHZ09r4jABJgGRQWAA: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-22_04,2026-06-22_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 suspectscore=0 clxscore=1015 phishscore=0 bulkscore=0 priorityscore=1501 impostorscore=0 adultscore=0 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-2606220221 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782169432642158500 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 Tue Jun 23 20:53:54 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=1782169341; cv=none; d=zohomail.com; s=zohoarc; b=Exqr60tildH9TNwUVfPiOmdikb7PeDJ1XtIl8wW7JN4ZVC1U2hLoog2h2moFqm91Z4JkSLGRNr6lQyKteIKgbE2pnaPvlGchd4ikLL82+iXj2bRDbS8R8YfyTV7r026VJIHmg5iGWvTZoYsUDEPkNVnR7EMS99M+cCeegCZG6ws= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782169341; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=l3BUzuUi167p/1Ac09eRWc3AQBx3voX16yOos9iBghRqGWAZUAm+XFhcGwXBBxuMSLPM1XvhSqYgAPW6pueFE0M2kFgcXlVA5KGqq2Ovj9isBuG4dxAH76Cumf6/CcK/Qt3q2PvsJnbJmKRTXR4if6ol1rb159TogOLHVxTDeQI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782169341010378.50671165816186; Mon, 22 Jun 2026 16:02:21 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wbndG-0002zz-AL; Mon, 22 Jun 2026 19:00: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 1wbndE-0002yu-OJ for qemu-devel@nongnu.org; Mon, 22 Jun 2026 19:00:44 -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 1wbndD-0002Tg-7r for qemu-devel@nongnu.org; Mon, 22 Jun 2026 19:00:44 -0400 Received: from pps.filterd (m0279870.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65MJanMd2177025 for ; Mon, 22 Jun 2026 23:00:32 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 4ey37hakmm-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 22 Jun 2026 23:00:32 +0000 (GMT) Received: by mail-dl1-f69.google.com with SMTP id a92af1059eb24-13980b6561dso11642582c88.1 for ; Mon, 22 Jun 2026 16:00: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-139add73a44sm9128726c88.13.2026.06.22.16.00.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 22 Jun 2026 16:00:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= KM8Vmh2bjk7TYidhmOrqAPOj1Wp2rd3I7ixjJkyml2o=; b=kPrjI/y74Mrj1w2d Lf5zTblfmecPSJYYxyAWACF0OaJX5gCmDTbaidI3Z3X2x3tS/38IFttZZ+kmZWkz xApwxB1ArF9iuMlZtnB1mTNAHQWCUYG3cV5GaCh/k5gK155F6SKB6ANyxWKBPEE9 E69lG3glna6pcgiYJ5iCQYFrZgbei0gEmoory6joT/1WjRA9uV/0q3EPraCMleBI jkX+DlxhHRYId5AtH62QKexS2XJ6iZWBQk0380deiL6aFdezfBzMav8EPXC/pPr0 GO9FU/hh9gCXE601endsHv/RnupZFtTzm9/vWVuNo0OT1wJnK41poS7jnq0CIvwT 1X8zLQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782169231; x=1782774031; 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=dqYA93AHWrJgMymUxL36Jd5WtOa3mP7Wo8WU7d3b35xxr4m00Rhn3KvPjAdeqELTI5 KsO7R7QDPntMaLcFfj2HvAgs9XwfjvlliCAdLyBFai8YCYODAlyMpeiHYylHDPu3ayN1 t3ds3ahCpHbOreCOXcO887hEodd3jPF3ZM+JBljjX4PipTYWDZHL8LbsYbfuRztAgY8X gaWMR8MWOGF2wFiXj0QVIppBQKlPuMjqCIDcxzMx45yUdRQEpmvgnvqA+sCJY0FASC/N tP/67XksFvoXuOJC6vSf8iRZWb8ZsFKhRFUqK5cBJ+Vz+urgMtZgfDM/43ueHRlKhB8W E6ag== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782169231; x=1782774031; 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=cGxblBYrZ3BNsiQTAEEcg/mf10Pqw7Vdb76H+tAkWOusSg1S41JyVx5QMPIDUoSIlT HVMUTliYAb5bqiMUJ0JBnpXCuiRAN53yMAXMbJ3cIuC4vZjnrCymM0wT6AQvtSXLoEBJ myZsU6A3Imt0canZ9GJdo/ciy0EyI+S/AmF1G+ntTQkJZKumg2OefKKSdaSLn+aTml+S KCn+GQ6Jc4nZ3VWpyL2czICr6ycDjP3Ph2DMSPvt/HykLalMbI1kWRLoyCcVSeGsjubL QT6CJDSXubo2O9MxcGMuPrGX04rNA92Ilt2/2P+rV/MgkX5eek6tZwKdRV1z5OUY8/ZR ky9w== X-Gm-Message-State: AOJu0YySoXcQ5YdXEWArmNf6Zkcr4O8GfOpIW7W7IrNUmPprw3M6oPwP 1G2QISmp5K0iI+guxwK9UoQ877TdHsLNgW1k07B64/5FBP8hEi4lQeJX0fHl/0qC2U+qM0BA5dk lWWuXFrcMdNkyKDXB1icdx3dGlqlhNzrSAZVNOFzqcWOjm7779S3GztIyDVxRUi5+ew== X-Gm-Gg: AfdE7cm5pp+upXcQKTv0vCbbuHXbaXbOL9TSfKzZLt48vL3QmK8fLBxo/e/VdrviLlO D4gHo7mRh3n7w4MfHDqFzB5lEvYFmrDUXjrhlggy1gX8I+eAkACUASoHe6R/qiQjyzJlnTSWR3B SAH8WifkeKTz57W137zvQouyKBKQuXsmYTWFFEf+rekA3kKC8rHBzdirQ+dcakDf5T595q033oG vmlqbgMsPICuNzfCdv6ksE7tXCnu76CEGGtYH+CvHxK4D6mSZg3EZmhRz3GCwO7SgnN6KXVo9hL 75CL8MvED+YPafviKrphbrIRZJrOKcZQUzj+tHChzwOyvtob9lFCNtnkox5VXe0GFr2EfC2oAa8 ariD3cVVOryH5L/+Kh+HaSoddWPD/DH2wibigQYyl1+src56X+yNbDr6gfYU= X-Received: by 2002:a05:7022:3d12:b0:137:ed87:8194 with SMTP id a92af1059eb24-139a34e51cdmr8550847c88.4.1782169229872; Mon, 22 Jun 2026 16:00:29 -0700 (PDT) X-Received: by 2002:a05:7022:3d12:b0:137:ed87:8194 with SMTP id a92af1059eb24-139a34e51cdmr8550817c88.4.1782169229204; Mon, 22 Jun 2026 16:00:29 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v2 55/75] target/hexagon: Decode trap1, rte as COF Date: Mon, 22 Jun 2026 15:28:44 -0700 Message-Id: <20260622222904.607771-56-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260622222904.607771-1-brian.cain@oss.qualcomm.com> References: <20260622222904.607771-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: 3sDOWjhMsyglXWUHpNzNZ6AZX_fvr7R_ X-Authority-Analysis: v=2.4 cv=ecANubEH c=1 sm=1 tr=0 ts=6a39be90 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=oDs3gbQtVgqjpHJ5GUgA:9 a=QEXdDO2ut3YA:10 a=vr4QvYf-bLy2KjpDp97w:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwNjIyMDIyMSBTYWx0ZWRfX7xEx4wrS46ls ecrFH7xqLxEsWgJqlp0j1B1z1jQUx6BdkKSdSChi3/LGF0SCGStwkB9DewXoGJkKqHuuKlCRTVt QXJGf/+gnnDy4RKQ3DPJ/QamsXzft6s= X-Proofpoint-GUID: 3sDOWjhMsyglXWUHpNzNZ6AZX_fvr7R_ X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjIyMDIyMSBTYWx0ZWRfX2RkSq1hyV+9X RQbt70gVYdGOlqx/o69T4h6l/NpOaxs8F8Lkt9omNtP1i8CFa/avXQl/M36wqom8rlYWVr2MSez w4TIfxdaloIpfLlDYIPv7XcNtEwQHIc6cAaj3uqdl7GFwGk8pM2b4zPo5taJyJiFVKXMuNFmYSR 3r9x21dpHG2dnGGVsV7K1ygtUe3fEdgplHvcMRuUd6mZe7bMC6WpzDeJT4jovWabXJsG/Xcgx/6 8+gLe8yrok40Xr0ehFUourHF1AmNIsjxLrMz9nvtNcs79PnuRMW7q1lmVt1/nsX0i2aeXWiQlii cMqoxyYiTUuJE1lbyzmw/vJIU5Yvj2RabjvGi5x8F6M8xiLGVgeRwafqK9dF2i31O1+Ktg+G6rr UvMkJfw1lYSP8rIAjhfz4m2xFDAmSqzRPvw275vRkdR6ICnb1RU/3opTd9Hpq6W3LdW5pJiXTpc YI09tKcmTXDF5/jXxSw== 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-22_04,2026-06-22_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 lowpriorityscore=0 priorityscore=1501 clxscore=1015 spamscore=0 suspectscore=0 impostorscore=0 adultscore=0 malwarescore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606220221 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782169341929158500 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 Tue Jun 23 20:53:54 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=1782169296; cv=none; d=zohomail.com; s=zohoarc; b=YR8LunqM84rol1Jcs9nmw/wbLvKzWpeTPa0RyIxg3r92o9ijzApFyrt8if/6nGCT4w4GvEAKT5H/ppkf3pGQ9m70pQpvOh3Pokxk5/lcyvVMb5MZXbwx/eNf+idQ/g98y/Ctcrmzp3s0jrQp8nWpWW1+9+BXBZXozG7K2i1iXD0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782169296; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=Y23yV7JA264KbTBSWsCdQNxwYzwXz7w0HebgOfeU9YgO54AzJ8yN/tftPTHUyxDqLbUKSXZctWkNwk9xunqzjKmWS3QjvR1kPsFcNxhhfaGktbr0N0Jue2R8QoTSoKWHKg60A6fUk0C8Az277dAjiHitGuF6COigKTuyiZ+s4vs= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782169296687337.38683446228583; Mon, 22 Jun 2026 16:01:36 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wbndG-00030C-Rr; Mon, 22 Jun 2026 19:00: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 1wbndF-0002ze-Px for qemu-devel@nongnu.org; Mon, 22 Jun 2026 19:00: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 1wbndD-0002To-M1 for qemu-devel@nongnu.org; Mon, 22 Jun 2026 19:00:45 -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 65MJdmG51940410 for ; Mon, 22 Jun 2026 23:00:33 GMT Received: from mail-dy1-f199.google.com (mail-dy1-f199.google.com [74.125.82.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ey5yea03e-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 22 Jun 2026 23:00:32 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-30c1f6c5559so5882936eec.0 for ; Mon, 22 Jun 2026 16:00: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-139add73a44sm9128726c88.13.2026.06.22.16.00.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 22 Jun 2026 16:00:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= 3UuTOFdc8oYjbXiuLSyd2e3M5N5lZKNz6xk5uPNFpGs=; b=Z8wYEEmmLNaZsQ2E 7OHMkIu8QVgfabRUfswUOp9eh641+h0+byTc4oJkucgUpXKC99cJcxuQCYkP2Mvg NjAdNvVplXbFbJx30/CXvS5Ixmf4phXb7hUTBVZDsec2hgNDSZLWG3lFPAJ4puwO aITm1vlcLM3UpdRsOxV6+ncBch6JOW9Xpj5td1SuMeqlu9pTjpydcnpKwKDZEgQl bLdMGL+iiV2K1+yT9UyjDO6RAbiCCzzFC6ck26ocR/d00Hck/T92naB+0sIAa4We HGzayqaKc47A3S653u3t14+4Xhp8mZscMsRbFhzlqBD39SdX08rE/D3mF5R5zfD7 w83S3w== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782169232; x=1782774032; 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=aGQ+y8JHN4ePDm4nalH948EeeBGvb6tTHyfZnWTqLSA6lo2SAVIrKTv5F3fq+jgOZV 8njzSNYzE4ngVQWd0/NlnkRRMO2KPk1lEq+Je5EOQ+ef8FH/+j2CZJCggDlQZyT6Oq55 +onV6OiPd4/9h5qSF8Qv8dftxHcoUNj1m0XYwKhILDvVS4hCK8rgWRa8JrlMlFhWhA53 AttTJuEIE/8IbVt3hoMxuehKwi9exSdIM+CR8yIg35HAsUmPRef9zigRqnCQh4uaaEGs un/dgb+UNyzHnC3lP8Ek+imoy8rOwM2qCFoYFaoOxkDy4faX5JOZ3Xbb6ULbrMMnSXSS boiw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782169232; x=1782774032; 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=bJbAMtKIaIOZUPhgT2JmCsa+AazNquK0THPM0KABK1mn6xibIeVidBX+pMbR53008A oA2JW+ZuSbB0q1Z0vTf/1PkG/cqJCrPH4WZDnLU7PiB8z19aoZ0EATao+1+1pyadXUxi fPiUbKMKu5KkBRvKcFCSLdBAyz9HBgffmdCBqFLbJR5AKPM3A0VTWU4EyA+2JXQAdBi/ PqMi5bboN0/QVVD2Avvuh+30lKLf/W6QPkQqbGyNC57xyVqqLE/bAVPYNEVZOohSWeoA YDumFffoW6eqITv82YVR/uZzGbbuYcbolh5bHANbKMB2GHYKBrBCDH4vpZs/XZVA16+b c0Iw== X-Gm-Message-State: AOJu0YyW4XxxDMCpKbY1AxNd4He4iH9Ug6xg/cx+FrnSLrNfNYEL09+L ZxYPjAUmzadu8jCOclt8MQ5Im7PzqDqNP3Itwg1bErQI+PbuyP+kImeXc+R9qzgXQ+SEx4E53Iy Y+Bswsg8j/ZT5kTTv0E7Mg0amwMeeu9irANW8C8qVL8nwOIG61UUu2YzMujxE3BJMCg== X-Gm-Gg: AfdE7ckBnDfl7tz649XeovLrDxoxpx8RQPPHToCPPY2dXpWed0MEl7FVOGLa/DwdC0W TQB/Ho8q+s+vBuVlkLKyW+q/mfp+ub2RKPzbctUg/YEB0NgtXSWV0ybcTZdLlHhZDciqpno/EmS 3Nx7LwN4X2fpC8TcHekSzo/C32xGkyIT46MnTjWUbPWyTGx9DTQql/k1oTuEPRGLCjSrR/BT6Mr c2zbiI2HnGUN/eAQuMtPD7Mwm87vLHs/7uXuMunL6WIFTN43hY0gSioEspM72mEEE+289IG7BPr H4gIPTDU6eLKx5qloYG/9+kL+VYcA24z2ghoqlDabUZM8+0bzZut8xo1n5Y5hIP1T7u+yuTQ6hb VY4HuWtd8PUVJ19M/FGInhXCdvQ55qwhQQj1o3YtasuetNhotZW7Q81ABykU= X-Received: by 2002:a05:7022:6b89:b0:12d:ca31:f1b4 with SMTP id a92af1059eb24-139a210df05mr12212177c88.24.1782169231692; Mon, 22 Jun 2026 16:00:31 -0700 (PDT) X-Received: by 2002:a05:7022:6b89:b0:12d:ca31:f1b4 with SMTP id a92af1059eb24-139a210df05mr12212133c88.24.1782169231060; Mon, 22 Jun 2026 16:00:31 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v2 56/75] target/hexagon: Implement modify_ssr, resched, pending_interrupt Date: Mon, 22 Jun 2026 15:28:45 -0700 Message-Id: <20260622222904.607771-57-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260622222904.607771-1-brian.cain@oss.qualcomm.com> References: <20260622222904.607771-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: dkC9PZ5w9wyc6eBwuxTYmJXd-H4zISmE X-Proofpoint-Spam-Info: AW1haW4tMjYwNjIyMDIyMSBTYWx0ZWRfX4J8Fl7yW8a+P 7jh9pFdY3nxsbSUttBhDLebY1rE0k/jheMqdFo7COqgVuMYjbjr+0PMwC8dhKG8jSoTDPVvh4I7 fgqLlBvdHBvbmGgMhIoy5KSl9FF5ooU= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjIyMDIyMSBTYWx0ZWRfX4oMpn5V+GZs9 3+/L+Obo+x4s2GJJ/YbPNj1V34YzKhbSGRc2lARIh41rDeyfCD4QzaiTAYiIleJ5OYhSqzsAYqW 22NhPmw1iw+UwytpKaww4BtWTfCR30rMUGhFF5CUiEwiJQjHEd/XycI0UfQsuNv21LJxKBqAZNl LDvYem/K/x0gC7nuz4iI0oloZ3gGnB0DkUH05P6lRUsYUEzoWVMmK4EfZaDVmEVDy9QpXlqp33Y uq99icoBq2MCX23hYf+xhxjSC30/G1GlDXRKj4014rFDMBs6zs1iOh2LDdxJBTx719tHokphRCu 3ijl2dxB6h9ZI1Z4hZhZlv3iste275mJO1vmpa94/HlNI233IIUkQiRt4ZoP6xFre2PUKIetYPg uz8d+a05/cx0hghXzlVBDAnim4WcXze2mCE8Z+Sgqw0sKdqoF+b3r2uVVSXZgzzo7glgzyckPYZ VoflFZBnBO2NNm7kmMg== X-Proofpoint-GUID: dkC9PZ5w9wyc6eBwuxTYmJXd-H4zISmE X-Authority-Analysis: v=2.4 cv=YpI/gYYX c=1 sm=1 tr=0 ts=6a39be90 cx=c_pps a=cFYjgdjTJScbgFmBucgdfQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=c5yFZwH1WPb9xS9x6awA:9 a=QEXdDO2ut3YA:10 a=scEy_gLbYbu1JhEsrz4S:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-22_04,2026-06-22_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 clxscore=1015 spamscore=0 phishscore=0 priorityscore=1501 malwarescore=0 bulkscore=0 suspectscore=0 adultscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606220221 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782169297933158500 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 Tue Jun 23 20:53:54 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=1782169350; cv=none; d=zohomail.com; s=zohoarc; b=XKqMu65OqIp6HEhvfG6ZSxD9UvGiLpd/Yf+/6Oe/0u8zGC1L3cFgH9eq+FnLQFOWAVlGH5FOhzjmYbohm6cwCB4Y7eOzLrqScP5hJo+MPc8nLsElexPmkjuG7hDoiWwk7uz2ZNJfR1yjKYE+XS1HCAJ++WUpxdSopZzXw9CeSi4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782169350; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=TsWXODRLKZ4o2A/vnI7nrum2QrXtjRfGwQA4ljIwXtHV34IH6z3UJ3YOG9E5MjrPNjqYGgG/sYVGOzMnwKe63bA/oMZaSvh2/w47C8lrhc2qhpJr4zkauT7TJp5pXDeakBLMAcLiJ2cBI3hc2/1C0DGvK2wLlR71ZVzQmOAHAUQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782169350533261.5540268546305; Mon, 22 Jun 2026 16:02:30 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wbndK-00034l-4T; Mon, 22 Jun 2026 19:00: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 1wbndG-000308-M7 for qemu-devel@nongnu.org; Mon, 22 Jun 2026 19:00: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 1wbndE-0002U2-Rp for qemu-devel@nongnu.org; Mon, 22 Jun 2026 19:00: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 65MJaxca1902568 for ; Mon, 22 Jun 2026 23:00:34 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 4exyn1ung5-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 22 Jun 2026 23:00:33 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-30bf794ce48so380208eec.0 for ; Mon, 22 Jun 2026 16:00: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-139add73a44sm9128726c88.13.2026.06.22.16.00.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 22 Jun 2026 16:00: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= DwmtLwNQ586yD7zGJVwVTp7uqi8JKqPltGIMKxadn6Y=; b=jRfpcgKo95iePReb xvSNekHPeH+AP8KrAMGw4AMgVCEYueBMMY3Xk78ZSiSUGMxIsN4nPsoF7V5D1TIy dDDFnggYgqRrgAb3EX1FFhLsC8wdXUHsTMNGX0dge/mm5U9X9ZKckdd4IaRMF4Ab 8IQMxZ34q1AzmFb/xmZZsyRGLQEw7RsO3aH4n6rEiT7Xn5vN0LlVMyn2euSMEDS1 0S5OIC83J+b6f27cTXQgWrUZXt+kflHKU83ir6fF0g1jNxX+DjoUYQnXh+hPuXAN +PLP/wnc/jgrjwtNSPYy0ePNbG+aF6jIy4F4wB2aaLkvuCNIqg2OlSeAK02hqUM8 O4RXxA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782169233; x=1782774033; 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=AAxaWG80b38sRIWywRKAmbxNOveajMxHhC10ajHwLrAlk4eI3gVVF8up53whxKgHwH 8mBgHcEcZIstHxkw/+eJB0t5P65npYuclKgLad3CBUhGF2c4NSnhX+NOJp2bq1VxTioW ZeJKdhsUbjs3NgUyB7FutRyiH1sG9LuyT9BIMm/xsq87FTlOk9onDbMzgvugVVTL/7j+ sHC7wISo38g3kkCDU9w6KNAXnvLp+3YthnAzk1nikUaus/UtxLP7FmF7V1NKFI7vs8n3 zXK3/u10AmRuY3UAlsTY3ABh9pa0C+wU5WVul2/SMwTpTGJpiNQ3/H5qn3xLJ2FhVf6g t/Og== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782169233; x=1782774033; 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=gaU58ZCr9qHz6qLxygGYgTXde15MogZeX2+Vtk4REZBHrhSbuy8k3k73Yz5kJUbdLW lZBOiWvHc8QqTPFDfsP9ck5ClBZw2dUfttVn1B7nD+g42qO0kINhoAdAruku9o9vKgS9 TRFii5x/1EFAgi10wEBcdR4ruc4WoRbFFPWqHYB+umJ2uIjIFL/2MqqYnBKojzJpSumY 3ZJ3Zza+z1Tif1ZuSwGz6f+DqRYVfsKgB3l0gBzsVEOCHbvHL4qkKsgJOa1pwS0OwmbE Gs+IohSotkZrNcyu/Sdg1YFX/iHftdNqiI5d/SNPwzl2vqQ1X94Us0SfMbeUlUVT99E1 ecJA== X-Gm-Message-State: AOJu0YwU1bk0VSXXhU4Z1tNUJhCd3DyTZNzSBnjhh/oLDWsf1J0BHgwa +WaHRECn0EcmGSWBYSoomCgNH9JtHQpX9VdOGBBJwnVpN+RzrmPgfvlp6u5evudVa1XQmpXqoUo lbQMLJ7w1xG+gjXWQN1jvbBJdCpc3t28zc86Kq3p6C334eN9go06mCqlXRZpp+0wsPw== X-Gm-Gg: AfdE7clikXkLqzPbxhc5mO6dRPljSvikrkBILuOs6GhF5rF7VMFZLq1m6QCREc1ld2E CvnjTE0Q9D4WWFSPnppTvyKcSHxZ3jWadBLHE04kt2UnDTVv1Un+BntPRgm9sJ3i6d8aHbzEUZC Qze8h/X59amy50q4wuJ0NA+LuzDFIocr2DgHdNoqN3TMVLCx62I4egNr2jHvzhSjuKgO/g3WpaE ivUkBPghDWUC1rbvhLOdw+LLjKC1tOkH2ad4SWIs4Aco693DrMJrZutYDZu9SNwl1mFiW4a7GUR g1M0PXfTpZa5aBrNEELOH2vEmxPTemaReEBbu0w+aUX/oWHU9YXekFwmsUp5VdOYMbjBCd5/Deb EEzr/CWuMsaXyQB9uR64WGMMTW2nCKCjxkd48h1spOY6lWBm+cyeDpjUPTOI= X-Received: by 2002:a05:7022:410:b0:138:501f:46b2 with SMTP id a92af1059eb24-139c3c124b4mr934568c88.1.1782169232705; Mon, 22 Jun 2026 16:00:32 -0700 (PDT) X-Received: by 2002:a05:7022:410:b0:138:501f:46b2 with SMTP id a92af1059eb24-139c3c124b4mr934532c88.1.1782169231971; Mon, 22 Jun 2026 16:00:31 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v2 57/75] target/hexagon: Add pkt_ends_tb to translation Date: Mon, 22 Jun 2026 15:28:46 -0700 Message-Id: <20260622222904.607771-58-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260622222904.607771-1-brian.cain@oss.qualcomm.com> References: <20260622222904.607771-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: c7uSgQHJDUvB0Wzo4RJiom-ykjrmk_Ep X-Authority-Analysis: v=2.4 cv=EOU2FVZC c=1 sm=1 tr=0 ts=6a39be91 cx=c_pps a=Uww141gWH0fZj/3QKPojxA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yx91gb_oNiZeI1HMLzn7:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=PUAfe4L2FItr89aHCx8A:9 a=QEXdDO2ut3YA:10 a=PxkB5W3o20Ba91AHUih5:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwNjIyMDIyMSBTYWx0ZWRfX6RcDPMF+qmgd vzEYF9FTGL4Fmixd5apf/1Qe1+2zwUMYIb7PZkjXeBG/mVoLPoLXPC8oB82Is99czCPNVEbcDJy hc44/BdewsFpbjj3zTuhRwrPEI6uZaw= X-Proofpoint-ORIG-GUID: c7uSgQHJDUvB0Wzo4RJiom-ykjrmk_Ep X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjIyMDIyMSBTYWx0ZWRfXyTSPmHHjtwo5 5r0+lcwV2z4/GL3Du/3kDlXVp8NfWer6QPQ3n9ViL3HSMr8L+bp1ULmE37WnLR+QvRbcA2xALOH aa24hLFNA/a39DOR3lKigggDYCln8kyQemEbBuu7acusfevRAi4r0tLuYVYPwdBlxOvO50lztOq 1og+sn07j6RTUd2mDIkz8gLUcrQJ+nVHLt4n9QWD7Sa+Y/xTJxTH1GDc7s9R0h6qLaxyRHqIVZx Wzhd1OyE8mSdXKQza5A4WZB8zPoCJi/sAHxn3W+1VjH8QOLKJ9mvZse0h0GZWHaEMWsPt+atM1S zOllQdCJXqtimSzroG2anGMyhDxFLBz+BFAbu8LbKl4VpAfoe3nBVQFVIaBgdR//9/UxOMqWvCX D08sJx7z4GyhA4lkLe+WTZKE6PQysXkxI0cT3v8xgi80J5OqEvk1nc3k9Bm4GVzU49xlZe360gZ KxygP9b3bft41WgFKIA== 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-22_04,2026-06-22_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 bulkscore=0 priorityscore=1501 malwarescore=0 adultscore=0 lowpriorityscore=0 phishscore=0 clxscore=1015 spamscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606220221 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782169352069158500 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 Tue Jun 23 20:53:54 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=1782169426; cv=none; d=zohomail.com; s=zohoarc; b=AbJOVhcU5prVPyKrLYX0THZVgKtAoKI8oR3p0GvFNdXkBr4dZ4y7ZpXsXCNue5RSqtsEeU7g33lCTtf45A/2z431DXVWl6BNdDRz7pj+mS/1TPU7emK+01sY82mbOiqoFutLmCcWFkQBZDJU09+8eOl2ebJhH6WFlvJBZN/0tg0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782169426; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=WXyJyEJL8l5NBDNWZ/rcz/5wEjf2iO9afhMaN/NJ8UqmY1WnOAYPEmlzDsagp0PivnClzJwTk86rUv8fBQbToEoUofv+gtfeI5r+/fepcd7m7KfXAOHScuwc9au6wrifDZYu1B1oVgq9MnEqygqpIyO+MjATxJDztR2tks71aB8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782169426377556.8004543891005; Mon, 22 Jun 2026 16:03:46 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wbndL-00035T-37; Mon, 22 Jun 2026 19:00:51 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wbndI-00032K-8X for qemu-devel@nongnu.org; Mon, 22 Jun 2026 19:00: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 1wbndG-0002UO-Dl for qemu-devel@nongnu.org; Mon, 22 Jun 2026 19:00:48 -0400 Received: from pps.filterd (m0279873.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65MJaEU62101424 for ; Mon, 22 Jun 2026 23:00:35 GMT Received: from mail-dy1-f199.google.com (mail-dy1-f199.google.com [74.125.82.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ey3ebah4w-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 22 Jun 2026 23:00:35 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-30c03c1dda3so6385316eec.1 for ; Mon, 22 Jun 2026 16:00: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-139add73a44sm9128726c88.13.2026.06.22.16.00.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 22 Jun 2026 16:00: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= Yp87kcoinbDBfUm50phdJD1Q0SWWmLVPCkRoyO7PWUc=; b=epsWKcnLiMtdqarS uMAcjEAznSOdNpxRVzymUuDY5ZyWEOb6MUenWTujy4xGEg1QIXDxhRC/HO85P0dw k6UVWKuJDQYUO7quvRNOTkIAzZ035ah0EXgSK08A6RcxPVbrokZwIv8O/NkvBj2q ilQQXfi0gw9hGlLq/Pb8CSPj1tENS6hRFb8p6ZE0GKeF3RL/6fZ1rH7WekztTABZ H1hsNZglXTmmQ0hBV4Q2pBwTN0rMYCT2EXCF9SJleH/UEtTXv6RxFN7+mC5JuAXx Mde49qJfD/j38ILrK1jRABzMNxEuFQwjlXi88c4DQ3SLd9cGD1SpQrKVsNNdWaXB myHrnQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782169234; x=1782774034; 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=arWHQ+P+4/RUsB1tljZTOnKt8KD+yIPYiw9Jkr7UK2stX1CLWVo10IvTSBk1YJFFSA gvxYINpPRHZz+zfYlxXjd02Qy6c7sY0d2k9tbY/mRA0fi7+4SYq7DRJOVbCtbD/XT15/ EUsMZLVNksEgGQfDmVcWFxBL764+6DQMey+rh3F38mnTtRvaXqwpSpRHwJUbtVfgPHtj n42PmINEHEsGXW07kyJKaQtxYuEDnZyRS0IMRkld8tbL/Xp7p1LW2wr8PZGjlZJNr8rB p2ax7n24Ig5sUsVbQN3n2HIZLo/5IsksAu7+U8cLcTFEahEI/ZkJj2Ph9k6wB6PcTdSO hP+A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782169234; x=1782774034; 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=nimI3dqDQ7luTvq05HvshSvGwqs5AI4vdRxXsqEiWWjPu8Qj0++tX1Xv4j/RIb5UDN /qi6uhNtWR/xd4MKtapGaV5PhhDavpOkmzVUwxtk2vya4t+e54+HxuTKPuvT7XvL08eE JUuliXEeZddZ5zuNbRBDCBsHaiUEhf2gprFvrpC4BzheGWam/7zgSOPVA340SUP/cOlX YIsW+FtGZpXjnOOoG5VPfAZDT11wU6y4iRtUmcPWfpWKut3+iZu/9OQPEk4YEfmL4vjS MW6GhuuVvquRSGcxEoCCN13eAh4AOShC2flTS3+bu5V4OMC0e1aimXJKT53vfOeeqLwg aH/g== X-Gm-Message-State: AOJu0Yw5hysnH9QPenlyI3D+cre0tUC2jPP1qRGzgcA6lKlXV4Lf4bnb /QPYnvGWnlLDGB1IbRA0E1pbZKqAlC//IhE1nQ3BSaJMxV4rzjeXWQB6NON9yBQEUxgPfsPrG10 fPRYjHWwKWDzzyR7ho1eTDNaJG/RB2vHvVOQF5gK+DqURyyd7bEzgcspnB19PnhPWCg== X-Gm-Gg: AfdE7cnS7LIlgEW0s8NwWq23jKv2g7qGi/f9KekMoGnEF/V0EYxU3cP+u2CbwxxAqbo DeSufL9d+lP9Sn6wsaMA3hL26IxRkxOnCwTlj33NZhPjkeJOqPJ/7vKyc7ohL3RbkKi4y+U9Jla Wb+WYws/2SKRUjXzTvoWuOzAuPqlQHuH0WhzBKD2O9u6s/mL/etxqvUW+AbP6xRXH4uVG2M58/f UelMDI9NvAjDVNUlMJbzjjjcJL5oOMVvNhCVKvSc0MTTcSaJ+ay2YSaKU3NQ2twzhkbLD65osi4 obC8+hx5QNi//pplK7ogGgKVoY+yU2VC86OZ6cM+M/kp8JTxKsSpGkTJdrjyO5WOJlEGTmaVDLu pMRC5nLJWhVIufkeCutxm6/uLrHEPz+vgt5LeM7bJMDsk/eWQeDh57SKMuoQ= X-Received: by 2002:a05:7022:204:b0:137:8bc2:833 with SMTP id a92af1059eb24-139ad6ff7e7mr8304452c88.19.1782169234465; Mon, 22 Jun 2026 16:00:34 -0700 (PDT) X-Received: by 2002:a05:7022:204:b0:137:8bc2:833 with SMTP id a92af1059eb24-139ad6ff7e7mr8304403c88.19.1782169233678; Mon, 22 Jun 2026 16:00:33 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Pierrick Bouvier Subject: [PULL v2 58/75] target/hexagon: Add next_PC, {s,g}reg writes Date: Mon, 22 Jun 2026 15:28:47 -0700 Message-Id: <20260622222904.607771-59-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260622222904.607771-1-brian.cain@oss.qualcomm.com> References: <20260622222904.607771-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: AW1haW4tMjYwNjIyMDIyMSBTYWx0ZWRfX+NwHxx0M3NxL syLW2UyRxhsHpsmtWqaKo6QfUAU1EdoNMTjUpHfOSZtRD53LfBeWD/RouUB2u1Igqy0p1JMvAmX 30qTm1gsMSU98Tu8xfY4gl6rIAfwNsA= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjIyMDIyMSBTYWx0ZWRfX6vYQxKv7RWmi jtHCcvB479F/eCGPgMtXqDNW/U/V9ud406TIXo9wHZtjN1E/hBeKEcD2QpqU2lct0afBP8GDeBZ kXAor65Uj8gUcUzvcFlksYiCmhbl4hv8a/0F5AU/2sn+770tOy650FXSzwx3zU5wbm/SZHJhUpH IbgoCFcLm54df5p8Wl/evAd6i0Fx8SIpXfmToSXZ6EN4qXkdc6YS7wyGtkty9GcZ+sXwKFFfiXY rc+RQxFnsR4DS1sZGMDEL3zJrROedTo0fd26tRclz8i7Ekx80PWnLC3rQE0LX1DOp0Mk7Iwhwkv uI5Fmyv7A8nOrH4gxxDEJy+hkW8xFlSOsWaQ/eYx/opOpLFDc4zYxqx9nj30mgSJHM+YvJDI6dU lGxxrcH/2cUOYbQdRY82KN5bs0SPMGbyCKJ89sVuM2huxBlIMB+H2+X+jGbqhhF5sJvnbTjhMu1 QR+LKSO1NRM9t269a7w== X-Authority-Analysis: v=2.4 cv=ILIyzAvG c=1 sm=1 tr=0 ts=6a39be93 cx=c_pps a=cFYjgdjTJScbgFmBucgdfQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=rJkE3RaqiGZ5pbrm-msn:22 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=fJQQT6FIS2xgNqPK2MMA:9 a=QEXdDO2ut3YA:10 a=scEy_gLbYbu1JhEsrz4S:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-GUID: pB0FMNIcMuWdMh96-8P4_-rmTfrXJ0ly X-Proofpoint-ORIG-GUID: pB0FMNIcMuWdMh96-8P4_-rmTfrXJ0ly 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-22_04,2026-06-22_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 priorityscore=1501 bulkscore=0 clxscore=1015 adultscore=0 suspectscore=0 malwarescore=0 spamscore=0 impostorscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606220221 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782169428496158500 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 Tue Jun 23 20:53:54 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=1782169426; cv=none; d=zohomail.com; s=zohoarc; b=AGMb09lLLyi2sT1KM8k4RTptfgrA7EZU4lIC/qZBAJKjBvZJVIdEqcdnBkVsQXUaHtsT9x9YGn49baiEm7MbsKqoher3dHp0c1rNMDcsugWWpdA8cQlBmQtJ6R7qE0EJkm4TjxW45FXiAptyKFjL1HW/zf1M0wqqWmOAlHckcoY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782169426; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=B0VXcQ7Ce6s14r/PaGrnGjaarr9k1iB81aiIIhQIYu3F/idia/mS1KXk2B9xrv2UpJmEeevI8QA6PI8E+jOp8M6N+4qcS3BcFnLBSPHChos4ikndpvyK1RDcbtZCuxyJFTSRBwM2eUIPfristM+R9Zh+PlBrAVIHl2hFE7NPwbI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 178216942656748.37812770788287; Mon, 22 Jun 2026 16:03:46 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wbndM-00036E-Sb; Mon, 22 Jun 2026 19:00: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 1wbndJ-00034T-Rj for qemu-devel@nongnu.org; Mon, 22 Jun 2026 19:00: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 1wbndI-0002Up-6U for qemu-devel@nongnu.org; Mon, 22 Jun 2026 19:00:49 -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 65MJaEU72101424 for ; Mon, 22 Jun 2026 23:00:37 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 4ey3ebah51-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 22 Jun 2026 23:00:37 +0000 (GMT) Received: by mail-dl1-f69.google.com with SMTP id a92af1059eb24-137fc6f8e9fso5231074c88.1 for ; Mon, 22 Jun 2026 16:00: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-139add73a44sm9128726c88.13.2026.06.22.16.00.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 22 Jun 2026 16:00: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= WSxBtQ42d1TB+r/kba+VA2NNeVAZKwGKrYR4H+pwBnA=; b=GIhyAQDSSmUQxO3p WTCnhdXTZTqDy4F9uFtYy2jYp4g7qP8JiLGiiai46i/Bj3C01uO0v8CGTPWo4dyc xUmNwTAPpCSMPZuE3OMNwMDYqLaBx/ac7Sp96zgv8tZkQe3u6dOcMDu6WTh7BaxI UbKHzwClZsLGlVBrVjquEBMI+L1Vy9DRj4EiiQKphBq4hXa1g1837Ixl7eFld3L0 YKZPI+Hyk3rQqYxG0fCeZ0WCyu9sX0/ggjWRvUhgBOp7jSh/y6d2uCk6PYqCFIPQ N2XdA9Zbf9wDvJaeTexl2l+UebV1ZgTFl2wrr2If5OofgXhwqAvUKqIhb7BFK62p Rkr+sg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782169236; x=1782774036; 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=gvwwVSnkYR1wizh8F1Kw3g1VS9sKSQAy8cjekpX4Qt1L7vIES+fvzLSbm3Etc5NHgF 36tRq0dEitIuNQrWuNELZ+CcfAiKbRKujuBrUuwztRXY4Uktvmt7VLcAU7KEAntAL2Bw OpRuyf5u+3kIn7cyEn+lmBb/oAYvVA5/mrsCsjPKm/2XRl4dfxfiBZnjqkIVDKATvStD qrzmfkF1VrQfF25BKxzcJ9ZHP/UN+HLlJbqv+AVb8eDScJwqVqWYA8EwiSbIdTJvSfuT HSsObSnvMZv2NV1VVRTL+wOhMhlGT7IWK0733Rjd3sw6kDy6297pb/zWCON0UBZnZ70G hSMg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782169236; x=1782774036; 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=Aem9OidGUAUi8ulbfhEEt5x49vP+1QIdKPZ7ANP1dpF8mPLogK7meBin4cFEw6FpJt LkiPYU8Xhi0OazZzvKp1KW3FA+SHGFC5Iklz98FrQ9FOMsbrAGlayhOxc9nvydjSmhMB 4+D9tGXKcQbf97hu8m947d5vfQFSsZ5S2DdLdvPue2m8FPam85uo0pLmcGEeeHPLHToC Qj76qvJ12gSf1C6ditU1OrtGswW+XjSrtdLUkFX3ok4fbPTMawU/0XmHpB3U2goDy5Uv 48Pjh9+xBDWNQXDsHzHO6NpZbS3XC8uYTbIwbFiDMMRcoy3ZOljZVFA8ExcsAHvLTonp XwhQ== X-Gm-Message-State: AOJu0YxttA4y6DGavEti2nq5vsQujKT8C7n10rajiTN7mgFRxuhzwCQK 9reMPK5F8lO3riYYzNJOcfglIGO28M+TkU9MyM2ILVcF6mXiTfE163D9hkbfw+P7gZyp+saOhQR jL13RAKRswxTds11fzHj7oZBNb2YAeIZXN9r1NV4iilMP0YbtAt1x0fYQq6G/FUOABw== X-Gm-Gg: AfdE7cmH0diri/ZLxCrS/nXd9z4GwnLt4YN4wgcFKzqnGzzQndMuRYzNOjrLjFaHBZX pT2lthZ3LSfIhDncRDauLgByDc/EFryeIvg8ydthzNDwM3YTEN8cWNpToTgXPhNWLN7zavwF2Ac MR+5EmmE91I4AQshKYCh42wgG3Z0jdQZsQmZ1bCe738XN90paNHAOJwNJzwfUay5dih+5qtTi8D KGvutTkoSaPq5B4gQQ8Mg807PrZ8SI06DpO9rk2bdF2uDSHmLC7z78r28opGM1ZaFGz1XV3b+kI 7oVzD+iwgSEbxeYtXH9bZZ5wOg05iDrzVjH3Mevb8VLJZIXTe2iVnFNMtgWKHPADQaDd/2M2rDE wbfggxnc6l79YgJo0y8MfEOqIDVRv5/9phSEZBLsle2fn/nkfTIfMKBA6NS4= X-Received: by 2002:a05:7022:e98c:b0:12d:d972:b969 with SMTP id a92af1059eb24-139a365d1c8mr9199787c88.24.1782169235980; Mon, 22 Jun 2026 16:00:35 -0700 (PDT) X-Received: by 2002:a05:7022:e98c:b0:12d:d972:b969 with SMTP id a92af1059eb24-139a365d1c8mr9199766c88.24.1782169235348; Mon, 22 Jun 2026 16:00:35 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v2 59/75] target/hexagon: Add implicit sysreg writes Date: Mon, 22 Jun 2026 15:28:48 -0700 Message-Id: <20260622222904.607771-60-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260622222904.607771-1-brian.cain@oss.qualcomm.com> References: <20260622222904.607771-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: AW1haW4tMjYwNjIyMDIyMSBTYWx0ZWRfX0x1bhvBlUvb5 md76lXU7DPtBGWIvlU6D+xI38urYCNOlMnCNROG/KTRIlfayIkvtulRvKwU4NKxb/Kq3xu9DEf1 fsHGe6JU7muK5Erv7psHCZB2EdYxvFc= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjIyMDIyMSBTYWx0ZWRfX/ilwV0FJiBdL BLrKR6LEHjWtuC4qU7y7B/Huxww4kjFV9Bpk9Z8bq25VfZ6L/lxAgLkcm+7dnenEXpYhFkCznqt aZMyPwQwARflo0dXCOGoGcwXDTtlEPGXVNczbN/sN/QCBY+qsy51z/Wt0wrFqwjg3CYcH3wSEJn +i3JGjXC1tYacmttNqbinGa5dgqSNZ7G68Xkyf8kI2F/iUxIMaXLBL/IWY1hwv8TFHOqRKeh29D oPFhE8tUKbCF9l855D7rhf0t7lb5YjKZx7CWfJU8dTTOQzasj21bbaFRjrgneUWffdUo59/KaAO 5CkZyxzPbd886Qf80En0b6uG6zsxtOW9GgvkBbAYmaZpjSI8OEX9q4tjMHe71PRy4YjGAnpDo91 ShDXN9HhgcB5zxx+CIm1NVbX/GFuLpIXRFONO8M1jIEFHaB5NRfNPUXLiTWZwx/GnEYaSAGufx9 veGTSTI4Kw1O5LwgveA== X-Authority-Analysis: v=2.4 cv=ILIyzAvG c=1 sm=1 tr=0 ts=6a39be95 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=rJkE3RaqiGZ5pbrm-msn:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=ySlkKLH3HnL0fBWr2zQA:9 a=QEXdDO2ut3YA:10 a=vr4QvYf-bLy2KjpDp97w:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-GUID: fOpliKkVaT9C6X17SoN8D-8uo2OLv93s X-Proofpoint-ORIG-GUID: fOpliKkVaT9C6X17SoN8D-8uo2OLv93s 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-22_04,2026-06-22_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 priorityscore=1501 bulkscore=0 clxscore=1015 adultscore=0 suspectscore=0 malwarescore=0 spamscore=0 impostorscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606220221 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782169428440158500 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 Tue Jun 23 20:53:54 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=1782169372; cv=none; d=zohomail.com; s=zohoarc; b=NFXIBiprT7rpnd+jHfOoe/mYCjxJVdHDte0DA25xY6qkbH9G4s2Est910N645kzL89oj3IFJQzn/WxmYc/ATQcjXOfr63wg6ykL/WZSwr7Kpi822AYmiImwJ4A5dwX3CLMp54eymALdFoLfoLgdSpvIiL/06CjheA6m2cby6/DI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782169372; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=YXZcQrLljGRVwyVBx+TL0otXa1iTQuj6U5Kg3B2dUOnlgbsCXQ150SwJtDL9sKfFHr2ggdWj5ZifnBY4do1zfgwYT6Em6ZYVikHzXwiMyqrjF8R9orEoVC+lTEvE5ZsLeYqNq3RzXb2MMZKplHkvMx/VhtP44sLiQthpNgTmlpQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782169372413620.0744859453192; Mon, 22 Jun 2026 16:02:52 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wbndP-000383-Ki; Mon, 22 Jun 2026 19:00:55 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wbndN-00036i-Kd for qemu-devel@nongnu.org; Mon, 22 Jun 2026 19:00: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 1wbndL-0002Vd-GR for qemu-devel@nongnu.org; Mon, 22 Jun 2026 19:00:53 -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 65MJaEU92101424 for ; Mon, 22 Jun 2026 23:00: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 4ey3ebah59-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 22 Jun 2026 23:00:40 +0000 (GMT) Received: by mail-dl1-f69.google.com with SMTP id a92af1059eb24-13980b6561dso11642945c88.1 for ; Mon, 22 Jun 2026 16:00: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-139add73a44sm9128726c88.13.2026.06.22.16.00.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 22 Jun 2026 16:00:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= KQKd6wa9CP0Atn8b+uEkUcIK7E1HAQywunGjG1NtcJk=; b=d28ie6Xs1bNqUC5P I15ieDmEZ0uMu/X/13XAY5LHOyJH4USTA8OwWt98U4hbPNDiTIwy9UYEe8s0QtZN 2p88J/2xGmMsSsqJqDrCIGBn/CD1D2W5kdfJ1+WoKJcIfooTL6V81zKaILEI1bLz gY3zXDeXoCp/oTGPpldrbBJ9Wmyi512mVaci1DS7RyljtzQK+8L0COGr0sAL4mjn VPrextgTL5GpGHa4W+lX2P1d9WxHDyU1BZNqpNWS/ds3n7um3BEgKYkURG7Csd6X f74+9QHzOYxrZu7ugw3aYejShlWzmvPnwLBjFgxEIqD8YnsbrYKXWJSopAIqS98/ n4EJ/w== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782169240; x=1782774040; 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=SZHjgBCnZMCYfnIeJX0ppy2cYxMoXN7uHBcAbtksWr48OYqBr3rscuZex6curYskvk 9Yixfv6bYiZFLWtw/ySKuQPp7TuqnK2KsCMWFFhnDuPsD2KoNBP3YvSgsdu6ykTbgoHF zoyzJr3DmFD4GzFhTIIrMk3fJstTh26Qwdb52ageiELRANqDPsMG0a4UM6SWFoAkMpXs vKmGfOmhYdqmXcO3YJ7aC9t3mKOdxbhMY2c8hOuEHZNLq4Osx3scwEsnMNsMrDOebTz8 Lm5ov/pgleXfu23DgH1kyIg8qeUDZsia7284nm+JvFk79aj4d9BNIWQX/IM2EGCq/ESJ tHNw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782169240; x=1782774040; 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=Ux3cUAmyIF3P0/wHnO8zZR9jRLXsrEA4Pfi6yIdx1utEWVNXZJi1esSMEnwfmjSUlY dzSyOPNumm1+bb0D7A0kkCZR6+jsHZficj6LMaJKGhNhk+wzDshIrj4xW5T/Tjo8VA58 6SzJRl83exLtY2ZdVeSaEvnHZfLcrkVpx90OPzTI2fIe6CDhGKG8eYZlqJjtlNmmv2+U mzc/bzAz7U0tFLGAdUY6RYlm1Hj508LdXJ6Y0Ft1qXfXOkAq/JleHSwt42xuaO1fQw0N v2x1f6/N6xNkKzZg0VTYUB9F2/LZ3vHQXxytxNGZ7UNdf5TIjhnuFyE/3vPkmOgmFQ6n 0MFg== X-Gm-Message-State: AOJu0YxcWMO+Rk327MukKTit+ycPufaM/9XbJfM1FM2+dw3DxL++rsuk PP2QEEwDkHfvxqmX5xkizlUv9autXmcGWTP/iA+9RIQaqVnKYoD80JInZxDF8rPYE6XO0Xo0B0j FVRFXgpOb8EYV7pNL9ZcwklfrI3Qnla8FbKOJv/emKJlN+H7TdmasJRhlSITacJbLlQ== X-Gm-Gg: AfdE7cmrjVi8UEdECFvn5LqqdW8gG5WWwekYfDLw7ESNj+e7QNQeGLXqdWZ6HwkTeX4 vAigKDuoGvxVKxYMcLzEwq/cpsS+F320mQl6j8mndnNmDSc9TrxDhbiXdUmkSJ2EW7DfMDXlc0M 9siu/LtYZR+uX7hetDfocobxEsYUE7Vpd58s57+Turp8FzlspRiF9KIR++0RdRD6TkcqkaiU3fm 5JuFpirfb4yHDBTudjPXaW7RtNi7MbiIEsWQKGUYEVhbyPnRLbRidQC6IC9aD4mHUkt6ia7tmP+ Uj36nnTAoEIv3gjnhDcvU5sdxlkBU6y9CmHorIBfXn5JP0J9Qu/6MN9D66V59UVAHcD2I/zioJZ Ff5MLa+gPWiBEkwRFpcojF4QbzCLad/pXxL1/aDxM9e/PjU3Rwmz+v/x5sMg= X-Received: by 2002:a05:7022:1a81:b0:139:9f6f:2eee with SMTP id a92af1059eb24-139a369a9dfmr10033098c88.36.1782169238107; Mon, 22 Jun 2026 16:00:38 -0700 (PDT) X-Received: by 2002:a05:7022:1a81:b0:139:9f6f:2eee with SMTP id a92af1059eb24-139a369a9dfmr10033037c88.36.1782169236977; Mon, 22 Jun 2026 16:00:36 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v2 60/75] target/hexagon: Define system, guest reg names Date: Mon, 22 Jun 2026 15:28:49 -0700 Message-Id: <20260622222904.607771-61-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260622222904.607771-1-brian.cain@oss.qualcomm.com> References: <20260622222904.607771-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: AW1haW4tMjYwNjIyMDIyMSBTYWx0ZWRfXwd4UU7IFSCOY DVcPXkzsfiZ/IKhQ2mtfRTO1DU2Jba+/3u0rzA/jM3ahz4RSMZiRn/NJRhnpSiqQsaoaaY1SOzW WhkvRkNU9stG1HCeXbRbPLrBrT8h8M8= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjIyMDIyMSBTYWx0ZWRfXx+9xEmR0T92g CrNLCO5R9uz0eMaaBKPapMdeCz9gKs6tyr0l9AewlAeOrreZs8+aNJiOfE7rXtI1pW/wC11M71O aY+CC31DtIiQGY84qPRRcax/Ta+Jd4fo+tPrNXZJVW3CgFI1czwfG7vHHnxwb0k7jdy/jkQEki0 LLHw33unpLgJ2wLyHwU1gqT7AakQIesoAhtXjLojtTAFNUyN9JGNgVV5n0YFnj2zj35IxVWGUM6 Kf5NOyTrPkC7xFfxdayxXv/3BirCC5soIlibkxHmR5CNpCKFBgAeAGuL/FXpeCuWBdR8bB7wlyo i9sAN/0e0CWFD8nancYV/K9rOJLKeK8ERZBJ/+349BkQRCbGlRNpPYWDQJdarA7iNEnxLM7wqeB JPNaydwiViIIBPqLVxHGHsaeTFvMPxBh0P4GT518ce7mLmAXWIA8Yx9drXYJMcAe5YxxLhbHwl7 BN9xXZmfa2kU5Vb7zMw== X-Authority-Analysis: v=2.4 cv=ILIyzAvG c=1 sm=1 tr=0 ts=6a39be98 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=rJkE3RaqiGZ5pbrm-msn:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=Y3CEZXcnQwYgoNz55sMA:9 a=QEXdDO2ut3YA:10 a=vr4QvYf-bLy2KjpDp97w:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-GUID: ZFKvS-LadPlVrR3IsvhcL6GODimjlwOc X-Proofpoint-ORIG-GUID: ZFKvS-LadPlVrR3IsvhcL6GODimjlwOc 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-22_04,2026-06-22_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 priorityscore=1501 bulkscore=0 clxscore=1015 adultscore=0 suspectscore=0 malwarescore=0 spamscore=0 impostorscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606220221 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782169374135158500 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 Tue Jun 23 20:53:54 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=1782169481; cv=none; d=zohomail.com; s=zohoarc; b=b8gi2WUWKMTSlVBmCsYIVxRKS0AldYTt/5toeVaWi5EVfN0NeIhvmBJr6RTeYObiCy+TWDYZC99X5KIZ+M1t1JiMGxsuH13IPjJvsPVWmUWSsM5PL/jVzeeKAwgYYvUjDds5iCv9NnTFZKmvsxeRkgwurcW3bWzDSkogZi8DuXQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782169481; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=bfr/9IlLSilLL/Jc4/S/03rlii2jTlM6dkVQR+UUPOtZM+GrFLjoGfVI46Vl3Dkos5dQWHXO/36YXrSkbGHN9hFQq4SDwi980kNj89lXh4RDprzU+F+asWucbCat4zxj79F8SrgActeyPFutkHSf7PLSIbed3/35k31T9vuBwRE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782169481476141.93137713383737; Mon, 22 Jun 2026 16:04:41 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wbndP-00037s-23; Mon, 22 Jun 2026 19:00:55 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wbndN-00036I-0q for qemu-devel@nongnu.org; Mon, 22 Jun 2026 19:00: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 1wbndL-0002VV-4A for qemu-devel@nongnu.org; Mon, 22 Jun 2026 19:00: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 65MJbNQ12122914 for ; Mon, 22 Jun 2026 23:00:40 GMT Received: from mail-dy1-f198.google.com (mail-dy1-f198.google.com [74.125.82.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ey5n421fj-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 22 Jun 2026 23:00:40 +0000 (GMT) Received: by mail-dy1-f198.google.com with SMTP id 5a478bee46e88-30bfe262ef0so330325eec.1 for ; Mon, 22 Jun 2026 16:00: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-139add73a44sm9128726c88.13.2026.06.22.16.00.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 22 Jun 2026 16:00: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= nqsoCKwlR/1AtxhbSkaDMpXnd9wjaz9i7dlB1dgLGBU=; b=GyOP82kWHssrax+Z zBlXUVHEXRyjzF5ovoIpKaqDkI3P66LlFgoRjLyb2G9OcuYcjQttFiBgUiYF6u83 2LoSqjZXiSfyqDQUAofPKMRz3gOBjCbCTOHMHXpDrK5VavVxkpMEBYDwyHtReUZQ WMEmsBJTjon8jJdpjAj9EQNAa65EBNmzUO2xVED3tC0Yxsmm3ut3KQ2Zpbv3pXdB GEIo8TDt6Bx2btz9zKI4ThTincRu+F8uhRIMgE6lRITTuQvy9c4/1Z7o3gsQ6QzJ DD3ejsbruDIPxjrG5+diHgBK3tFIozM6WCSK5FrmuY2JSdQxPIbYMp0vYMhY2Mur mt7dXg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782169239; x=1782774039; 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=hqSlVwnS7cu1985HHrGs7oAwUeytqDTgiNnrRi9r6B6NVGuOlqE8W0Gn27jYSQ6Scq L8QSUMhXKJnYOfcEoQQVJRSqhKZIHy1I2GMpB7zHMtwMXst3lNqz5plX3ZOzifZOLGfs SqCPQ3wtjxOPo4AWN6uYb90AVcsolrGcZLEVAK/0GOigYe4Q6HpsabZDNmRo9M7eRYyS xryrk7f079dTPNZCJUeSTSpb8LnLc3YB/lBBQmY9xMCsmLZp09lpo9ojon9QMR8kL9/y bCO5gbsFeCkc0SsUMI3q1TOHG9WX7H/spGoTE/v2sL6SpTuRMjZpbVXnAb5yqxaWZcqa 4Eog== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782169239; x=1782774039; 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=sb5QZeS041+8Lzn/gYrNlc6yhAsrDXrqwwpb16uoC5QpVoTWEhf9o8U5ZuM+aIINwT P+JKiJMy6xuKuS5RMp7k8mK9c4QIumAyl2M/W2i3D4t9YNZqVhXsBucIYCByMyexJ9Qd H0IL53SvIznp1OmZAznYQDq6HMhbGFHNzv9uL9HWU2vbC2meXjTklAsmeH/hb6tpPjtu ws9ib1+pyvsU+k0BlI/9D6xS/x17h6ba2Fu7fH2tBMoyUndSlaij9h8cDnCwTZLEuVUP o6nlKsL63+QmoNUAFtPAJhE6nNwmQl2qYnQAs+B1hq5u5XElMQBYa5u/FLLSiYr4b6Q4 wP9w== X-Gm-Message-State: AOJu0Yz1ltwjb2BM21hS98bQUX0aMMnDmDIwCw+2cgU2NAimDF5/csWk iBAQFJ/X2cZSeCGNSg5fmNp0GgnHxBugqzu7K6tlToZYhmasCwlxIz5xeatlXWv2/sYJ07816oN VSsW3hn2uYxliEK7ylhbVdt8/Q3ZlOyq4p2Z4s3TtHi+nNhUMaTXQV5GHCyHo7fNiEQ== X-Gm-Gg: AfdE7cmYNTKl9fDQ3D7RDsPG3Mm7bXhsd3IMS5bqloUy8+AqX82gzk/LhoE5yQtqJdl uU28HZyCuI7HFPykkk8IgWB9tEJ8kRlOiJBiyQisY0M9QbYmttLAWNPlsyISB/mLYah5BE7G/4f 2XM1RT7exWsjUL4t+UakJGG6snxKY4XtFfoxFyWiL0jtZUqZqS+LHe6uOn7CHxiIcD1CsL9YE7A NfpyhQD7y1lv0Acsc0Vvr53Lh4VmnWMlXoRans356Kg2rk0oA3HBePsoJA6efJgEh8yiNZLDycQ AOvZ5pCCrYMWK5aKwFPD+u2rZ4S/H00B2Gvs/gpm3+8sGSyt5LrgE8WZd6fEaPrPo2ybWCFp5Jd BQ1fLDrPav6Ok0XV2ObYyX7ViqRJWQw+LXNo4LOMBUG82H+Ybs+8uKX7nCB0= X-Received: by 2002:a05:7022:7a4:b0:119:e569:f874 with SMTP id a92af1059eb24-139c3ca52bamr962716c88.17.1782169238770; Mon, 22 Jun 2026 16:00:38 -0700 (PDT) X-Received: by 2002:a05:7022:7a4:b0:119:e569:f874 with SMTP id a92af1059eb24-139c3ca52bamr962672c88.17.1782169238176; Mon, 22 Jun 2026 16:00:38 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v2 61/75] target/hexagon: Add k0 {un,}lock Date: Mon, 22 Jun 2026 15:28:50 -0700 Message-Id: <20260622222904.607771-62-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260622222904.607771-1-brian.cain@oss.qualcomm.com> References: <20260622222904.607771-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: AW1haW4tMjYwNjIyMDIyMSBTYWx0ZWRfX9//Io3z0bebZ tsECrdTVasYaULlRwHI0rzUupodQR40nJlIS7RrLuwdqwqqQA9D9axOOa4bKnEHtR565zquXMvS H67u5gELxWgnzLrnErn+ICJ19G7OYz8= X-Authority-Analysis: v=2.4 cv=R8Uz39RX c=1 sm=1 tr=0 ts=6a39be98 cx=c_pps a=wEP8DlPgTf/vqF+yE6f9lg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=3WHJM1ZQz_JShphwDgj5:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=ZtvnA-OJD4c8FAOZTSoA:9 a=QEXdDO2ut3YA:10 a=bBxd6f-gb0O0v-kibOvt:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: zLsE82esfBRgm8EcPszk-rBtbsdZw4Zv X-Proofpoint-GUID: zLsE82esfBRgm8EcPszk-rBtbsdZw4Zv X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjIyMDIyMSBTYWx0ZWRfX8x5mvyAmdKnY D90MrE+rJQFjZcES3c/tkDqJY/vsCxZh4m3SCgQqwesjsH6mRyUl9ISCWsUxUFWeQjf2K7G51Es UE824B49GBNaY0sOqKVKRXiLdAfuxKkYtEfNT4jKJjYERBEr3l5KFuu8T3cQ+ZJsZhMh3Bg/h93 VunH/P7EklG6QS1oblc1jHT/OpymMhZss7tQXy8/Ql4VROr13huQAtnuH0wNyUpovNH3m9X1eNx pbYT4taWfhcNuKEeikrEVkfAcJ703E2jOsr8TBYQa4mDhAxTgy1PTD21XkiktgvIGuto953h8af xzd8YFcJ/KPZc7rdADH3MbRPN1Fq/NA7yz9pSBvFqi5JAIAS5b4BBkiFgTkUSn+jUBs3Ts7Ozwx +K7/78RdQVe48za6UCs27VgzRDhc+hoPkLqbWQo0zkkW3T5YSAx3cbwiWm28zl697br8e/Fbj8M u8MYCHQA0cfXO9N8YpA== 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-22_04,2026-06-22_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 clxscore=1015 impostorscore=0 priorityscore=1501 lowpriorityscore=0 bulkscore=0 suspectscore=0 adultscore=0 malwarescore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606220221 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782169482826158501 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 Tue Jun 23 20:53:54 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=1782169468; cv=none; d=zohomail.com; s=zohoarc; b=gHBhvmplyOelKNGaXQfrU2QAv67zkAl0/ByNccLZhzZPTIY3wd3IEdpt9cB0EwVfY1/Lz4jc0/dkUwX1I9FU7Hk2nF07ZCRxSNmMa8lz1AsWjNUyOyxaGdcaihSNosn7iJzn3jcWYUiDM+4Nd7mz0a1GXFZdkvjg9jGPiFxh22E= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782169468; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=jDZePelMj1lNL8c71AcG8HS/CApB4eNzvdKoKjWRjCbxuWPybCJF9i7yMuqSOIrBdyey2b9NXYKF1IdJctiZhfBQiJzoN3CeK8ApiK8kKRuMCdGZVeDVfBf9jsJx6+Hr2XvtD5Ij3QvHQfxuvVzAIUAQX6RfRTH/iYdKFmj6Zl4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782169468909926.9677579412416; Mon, 22 Jun 2026 16:04:28 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wbndH-00030G-Fj; Mon, 22 Jun 2026 19:00: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 1wbndF-0002zK-23 for qemu-devel@nongnu.org; Mon, 22 Jun 2026 19:00:45 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wbndD-0002Vx-7q for qemu-devel@nongnu.org; Mon, 22 Jun 2026 19:00:44 -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 65MJZdTL178964 for ; Mon, 22 Jun 2026 23:00:41 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 4ey2yhtmnx-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 22 Jun 2026 23:00:41 +0000 (GMT) Received: by mail-dl1-f71.google.com with SMTP id a92af1059eb24-1384427c3efso5329549c88.0 for ; Mon, 22 Jun 2026 16:00: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-139add73a44sm9128726c88.13.2026.06.22.16.00.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 22 Jun 2026 16:00: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= k98P3mzy875bIQ72dfi4cpupNsJGfuDp4DlfWaLieyw=; b=oMZ7sc3mEUKLol8B 5+UrGjgOQ+12Fj75DmcRd8ujCrRzINQXdPQT7F1c/7s5FrBn60yrXZEopGbXuC6Q dEPsKR9oylJQBddM1DUVWJ7gHA2XRww8dK5zynYcZqG6I7nazVpITZ81RsBTuODf FKrgMJHS365RiRohd04PJpC4vl09XvyJuc5bbt9rWck+6K20MTiyBNYomqBFqx7Q e7ik6xnvmrX1aCOr7JZ9a/b9TvzByUNGi9zkho7n5KLeNcKdvBX2qRDXM3xeiJDz r946pkdEsdQOYAZd3XUZaf5FW8854SsNQHlpu5xlNvnF2ZjhNbNn/yYMlzSkp4XM joPB1w== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782169240; x=1782774040; 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=F6uGMHfIgNiNrnLMdaSbcgz2mGXJ8SPO2wPdQUQFQyAjPHlYqHRwHenzzRfu4TVyoV Eg1spuEle1mFeL6DufyqdTSkTTgZYfgMAaEUJigTqhjJ2nZLbZTTL5jXUTq7dTShek45 U/h1sfoTQuGsHzrt299CgPkNpXfk8HZgxEBxueKYOpzYLRY182dV5fwPl7f6tfKEv7Zi 5oZe0P9PRV2fLJCk8gvHAYZoD9kBIbAIS+it6fHm8IbZfDGK/rM5MKHkjpZGPyy3GwdB 9zTAvQD1OmH1CjJV7/qvgDzJikmOIAP1jC2h+tke2TRIPWSjAmvsWeEEt1fTwkOJpstK IkdA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782169240; x=1782774040; 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=OqCqhiaHh5btAHnScY5aoSI8KYX2yswf/MBembO/oqwQ3g0SFvQO+L8oYO0iRcN7FE a1Lw5H2keL0HGXrv9m8jS7W0YWPNGCXVp1WzJOmrI1HhtR11iddd7oBgFC4mye3GVxQP 34D4hEHDuTsgzvskGXrkxXhhRDhggGp3Ogopf1P1StuK/HjvFA1OsBHQe9V2KBd7rahA ILqxHthaco9BS7CbD5++RIKdeFQ5N/uzz3T07+lVw3kBeItOQVLQdYL7nMYSoQTx7WxS q0NPyCAjHFtWLK3TmxfnO6H9CZsgH9e9IdgZPiyazYhIIeDZJ/O+81494INL64/SBybD 8vrg== X-Gm-Message-State: AOJu0YyBOWVHXAbOwk43pe2NPPJkLPJlKPy1s5H0wtFX1bYDWLyulfta 5gxKtghfmWgcpseBvHIOI0G8bXx39dA9mpM0JjEpfJXgtGkZbxuGvNqaxM0NaKzSmTLBhMAqWhv iheBFhhqyn5mQ2XSNBoqrFFbUC4livFeZkwMaX0fMcRQLPs+yE3DiAHDBYJIVtCvwHg== X-Gm-Gg: AfdE7cnPcRV6GOQkWZaxxDmdlQKwxtqtFBgJ5jbE3+ZtPzr1z2TuT2N2TzUF/B8DkUv y5RBeUiq8ft4T7kAmPBqHRgUCugIa5VXDQ5W2j1JsrC9bU6dHDwGcvr0REAvWWTI1LHS+mPBANm nAHzaeBjCqwiKWm0GRyO5EO9sVeE8JQuexxYRtxfaApQQoSuRnUX57HgeGEqCueleidrSnEm88T TITgyGUGjwC6+/4uGOqP/WNyxhKWmDWjbsBi1sN7lJftHdDSzAlEVsPdpoeAEZuSUWpo0ilztZk /qyc1d6zlBP9LE6b6/tW0FuW0RD3ffc7hod2J8Vn6V5iF9EMVYaAZ0Lask8uBjfkqy1DRV5kzZC 2kmMX2plEtkv5CCJVw0TPHSnh7qoleD3AemsDVwGQA7o3fC73LvIZ0UkuAfE= X-Received: by 2002:a05:7022:609d:b0:12d:b993:c68f with SMTP id a92af1059eb24-139c5ce08c3mr279109c88.4.1782169240304; Mon, 22 Jun 2026 16:00:40 -0700 (PDT) X-Received: by 2002:a05:7022:609d:b0:12d:b993:c68f with SMTP id a92af1059eb24-139c5ce08c3mr279089c88.4.1782169239751; Mon, 22 Jun 2026 16:00:39 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v2 62/75] target/hexagon: Add PC to raise_exception, use fTRAP() helper Date: Mon, 22 Jun 2026 15:28:51 -0700 Message-Id: <20260622222904.607771-63-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260622222904.607771-1-brian.cain@oss.qualcomm.com> References: <20260622222904.607771-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: AW1haW4tMjYwNjIyMDIyMSBTYWx0ZWRfX/UQZSXAzJuuN cVhk94+oqD1voYw5lzuB2jhMbOvtfAjv8/i+5lAF7WtVBz7l6DozsclG4Bl41m1ihKFD4El35Om tB7mptZrYZbl2JhxMQG6q77HORVrzFw= X-Proofpoint-ORIG-GUID: 2y3MUG56qHjw_XmB1lLrlEBmgKe2DMgI X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjIyMDIyMSBTYWx0ZWRfX0BLpgm2eSHLg T77ksqF5hTGKPvXjmHEyQGj2MKVs3HQcypUdqyenoozLrZjuAc1VxqATS+Q3FnkK19BYp3SIfXb jkvTpJC0ObHRuc4pvveqzcO8c8T8nRJ5VyOzKHQXZ12QN1hFj2caWhKNQnoICmZ35NwGviNiHUu ZNpwBKQkEAadyKPSgOseI7dEKvbeMdEX6XgRjmllsds1Ca6Eo8J1SFGTvuVQ0yYX8oJlo15SPBs JbTlD0dQfgxFIbVty//7gFkyCNErr+KtFS8VjhvLYewC6FqAXZGHm9amq+DNBvDEtSW6f5JqiMy UFnJPXWU8OQABzl7VbydwQUB5i9Q9PXG5MvHw5kjf99hUlwW9nm1wsoBAS+R5UUjLpe/jEzv+xv cSIvrHJVjWQt/mLSvXypeInJV8fNcFoRvZnsGDIH8BKegHiUCUgl/GaXoo1Gefyly5V2mCtbvJa aPH7P506UU1UxEfjNLQ== X-Proofpoint-GUID: 2y3MUG56qHjw_XmB1lLrlEBmgKe2DMgI X-Authority-Analysis: v=2.4 cv=cKbQdFeN c=1 sm=1 tr=0 ts=6a39be99 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=4FQt9sIIQT5CW9ciUtIA: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-22_04,2026-06-22_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 bulkscore=0 adultscore=0 phishscore=0 spamscore=0 lowpriorityscore=0 malwarescore=0 impostorscore=0 suspectscore=0 clxscore=1015 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606220221 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H2=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782169470761158500 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 Tue Jun 23 20:53:54 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=1782169336; cv=none; d=zohomail.com; s=zohoarc; b=ULQraFPpjr5gQuv52h9/iGSTQ/HZ0s8DEXSOOVbo+e+csgOPIORyWZXGCdBWuQgG4YEk5eACp/0iG4Ieh48vo6uacz5/CqeIaE9/5OSURt6Dz1BH9YzM/vzwe4gwpXAx+z6V46glFbAfNAIfncmbpJGJoJmASRdsYmXXLmC4N5E= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782169336; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=W5Jp5oolXT3+7Hr2WhbHI1ESoST+iFAxjJo2G3Udd9auuj74TttCpdvwVm1ns3LleCX/535M6/LKbSgJYiOdEsEYSSyIJsbDr83/5Oud6sT+pyCE9P1ZkD6SG6u8Hs2w/dq5UhToqRxFDc6EQ0WVUFxno60spmjHGdYpEcuN8Es= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782169336164900.509917645694; Mon, 22 Jun 2026 16:02:16 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wbndK-00034r-JL; Mon, 22 Jun 2026 19:00: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 1wbndH-00030L-1J for qemu-devel@nongnu.org; Mon, 22 Jun 2026 19:00:47 -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 1wbndF-0002Xy-Fm for qemu-devel@nongnu.org; Mon, 22 Jun 2026 19:00:46 -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 65MJZjF63222592 for ; Mon, 22 Jun 2026 23:00:44 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 4ey5sn20gp-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 22 Jun 2026 23:00:44 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-30c17bc96afso2933471eec.0 for ; Mon, 22 Jun 2026 16:00: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-139add73a44sm9128726c88.13.2026.06.22.16.00.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 22 Jun 2026 16:00: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= 1ECOxl3Fg5yOtnmQVv6BfaD55uXykPkSbZivFHhIDWY=; b=iWkOfIxG7XvYMjix etFwrOtWZYQMkjMMSRQNcU/k6ZRgu8fVGMAL3WSpoN0ZlIv7nz6Lk0hoGW/Xs5QT VSw9dZneOTMOWxshHlswPkDSYIENzsQrvrKxjHX1uBncmEC8NLhjaQiZ1QQjsWtP Rd1auM+jGMB0uNEdGKuVNNhii1diN2Ot3/iEClz74SBRhpWRF4WFboVf6W81LBlH CkBNQys6D6bSS4duL2BhgdAQVi0y5Yd4ZaKNOLBqY6k+NQTiu8Ll7IIJuM6Ti8KI yEPUeKxOxyJ7Q+DSpOldtEuvNlJejDpQO2y7FcmI71HWDaQyHS0YY6GiLg2Rzi8A 10OsJQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782169243; x=1782774043; 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=ZJERXrb5uNgXfrgpJ/kjtcFISZQHstFKWiJZwV87H1d+ei3PNBKuC2By+Z6GgykIFE ByAFeLPOCxSgv54P0Ec0Lwq8q+gO6P2yEETMDj8FBPxwZCUKFTUJ+wMEeNj9EJZVEzlq EdnsQAcNWxQNTHNaDRfJutp7oLkMqYK7abgJnchEUehWRwynckp9ymFnGRwWWJRJg9UG pto3yA7K197NSkI8Yix/yMmkuvS2t5AH/xK/UepNGNMz83uk/BSxL3jJNCCT5BR4CiRq SSO1ntjEMdF6A1+PMBMeHlsjrgsGZlT6fi2r/j5wB/YFCBeeLeJw/Z63d++EsQX0VIpM hymQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782169243; x=1782774043; 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=o5vqyvqDWDRWF19gUcHJUtEWCR2B9i+WL9N4WZU+1II9FUF0cIpdNh3FDVSQGm/WrW zi8OsqBpiYNyvL4Tyfr1qOnZJM1MVti/eAn/Hl8ZmwqplNJ9OhbrH52HYzZIPUhgpTNd vFsgzgZy4VgZdbVPzQr1TWL5q9Z7mEas69gxU4eF3SJuXEh6jXX2i6XmOnZwe0fPCRUf mK/YqQZb7ZuILpfJ9Bw8IgXGWSY3lmNDyYinPuhAltBbUwFqNHdo3Bep9RHOhmkf49N3 fEtArCqxILT94uY2i+AMRjgBjRrbd85W8Z+G7pK0/S+8XCsaLZP9V6B0DdADFxl/n1Cd Q97g== X-Gm-Message-State: AOJu0YxPHcFK2a5cOhowItisflbvGO97HfX7CvZmylOLfhzUyzf6UbYI yidqNh5Eaj3OHCaqF4+87FnRHT21Jq5lxBzr36nhACld/9n1UfKo7/84X5IHEP3/tFKxipZEu4r Ia3y0XjwOHGynsBmezO+Si3wxuSuwjrj/KG7FHW7OuTqyDgDUipDyoPU7OgU/YLMCVA== X-Gm-Gg: AfdE7cluHJI2T2d8LDsDyeARfT2zXiHiHxUZIHOd/fbkGOdIpU40VN0UP0hb+PKtkEz V/MyWJ4+quqO4OhYC95xLLYsI2oXjKye3J9mQNi11++j7Cd0pgZDGv66LnbtJED70ugPUdHo0oj eJcpoYljXfKmLQ/zzYJ0K8aoj0SdiiSaKArvswMaM0g6WO9l83PYrm5BjDloNrpCHrGmczqqnYQ p0JKTNrYZTUG9m1Pw0F3BAD6Opc4eVdULOiyPE9jE18zb3Xbc4Cut59sLEQ2PsKK8HbGzvFXCOb nKIUgP/KcPO/mfgGGf47p/9navlL1VZxqK771rOGcm7DUP0NpGivdL+2Xs2CoQLAQVMJZ/pthWE px2mBCLKQ6dnPfCK37kESOAEVHWDGLCL41zkFkZJASPzni4G6hbTTPXPaI6I= X-Received: by 2002:a05:7022:438d:b0:139:8674:e45b with SMTP id a92af1059eb24-139c5d05ccamr355130c88.14.1782169243220; Mon, 22 Jun 2026 16:00:43 -0700 (PDT) X-Received: by 2002:a05:7022:438d:b0:139:8674:e45b with SMTP id a92af1059eb24-139c5d05ccamr355085c88.14.1782169242528; Mon, 22 Jun 2026 16:00:42 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v2 63/75] target/hexagon: Add TCG overrides for transfer insts Date: Mon, 22 Jun 2026 15:28:52 -0700 Message-Id: <20260622222904.607771-64-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260622222904.607771-1-brian.cain@oss.qualcomm.com> References: <20260622222904.607771-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: bfg90APf-_VfQ4x77jkxc2kNM1YxM_2v X-Proofpoint-ORIG-GUID: bfg90APf-_VfQ4x77jkxc2kNM1YxM_2v X-Authority-Analysis: v=2.4 cv=PuKjqQM3 c=1 sm=1 tr=0 ts=6a39be9c 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=yOCtJkima9RkubShWh1s:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=LN73x9Sj_Gq4gUX8wwYA:9 a=QEXdDO2ut3YA:10 a=PxkB5W3o20Ba91AHUih5:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwNjIyMDIyMSBTYWx0ZWRfXxHfYnPk2yeg6 yN99z5EO9J4BcM2o8AXwd+11j+Vy2m3ACKx3gSAzkJKY70NmZvLK/w4JBgIB5tz8LAoZFTJTGnd u0+5pI2HFPuG717GBrJ6k2/Nwxd1VQ4= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjIyMDIyMSBTYWx0ZWRfXxv91TE+IbOQ3 /tRv0darLUJBasQDvA79wTfZSXj+ktkp9y3Ago6kUzxgzccUH+ftfKmjdApdA4SUtejxy0ch+gp jgUAJI4DortdkTBMOZWelbHIkL8FNgH2Vd9URHB4NgI22djsmgl/3BmKaQtva5QaUG4pv3ekGBl Gzm8WA3E1PWPZuKVIp7UstxJpg3ETh9EUsWBql0W1/Y81Y7Ky7hlc6Ap6A6kIFdzaRHHKilU0tK nUcMfpvjDXls7ovPN/VEeBfOb1O4xIbTDbFI+PHGvalmcNO1+09da/jR7gnAhdwU7U7xkjn7E6x smIwxoQ3HG39RFbZ6VXn4Pko+Opek0nYEpUL8xfpDXTAYw0OuKTgiyTAdYBj6bjHUDDxZimyX+I I1/lEHnc/jMImTn5JxMkUEKI0IYaVb1uL9Vml5rfeif7mrikFTgr/jy7SnZgYZ+Y/bTjBZvmGg+ af+P4C+AfVJ6Y7+iGSw== 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-22_04,2026-06-22_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 suspectscore=0 priorityscore=1501 phishscore=0 impostorscore=0 adultscore=0 clxscore=1015 bulkscore=0 spamscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606220221 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H2=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782169337889158500 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 Tue Jun 23 20:53:54 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=1782169444; cv=none; d=zohomail.com; s=zohoarc; b=fpgoggAtyY+THePCupFEKO9zeak3fH/3Ye3k4hBM7vV3BZSGeTDLCZZ3YMIBUFxUZToEwlws9/aQf5J7iCpi97OMokp9L4h2TvkYqudBDMw59IFSKWnbkY6CDIzBZjSPl3M+KHWa0gbf/VIHiuIlSBG//CZJgVKYGsYGmv3LQ2s= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782169444; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=IEmw5ptbDDrm4iiE5auoloiX5+nYTMn3hC5LnuVKgYAlFXcWWCDmV6Z3Ylm3BBqJEMAR36+6I7mgecdrCJ7t88H/VmcwvDfZ4+/e9u10RVRDwf5O9kgAlqflcYpmYZbtCzfGrgyM7VBDtjDz6zRUDnJXdDOoFGlTSKDTKOYO39A= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782169444932990.680382658819; Mon, 22 Jun 2026 16:04:04 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wbndM-000366-KI; Mon, 22 Jun 2026 19:00: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 1wbndI-000328-4Q for qemu-devel@nongnu.org; Mon, 22 Jun 2026 19:00:48 -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 1wbndG-0002YI-5j for qemu-devel@nongnu.org; Mon, 22 Jun 2026 19:00:47 -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 65MJaGKC1542291 for ; Mon, 22 Jun 2026 23:00:45 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 4ey3a0tjgr-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 22 Jun 2026 23:00:44 +0000 (GMT) Received: by mail-dl1-f72.google.com with SMTP id a92af1059eb24-139553dd8acso21359274c88.0 for ; Mon, 22 Jun 2026 16:00:44 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-139add73a44sm9128726c88.13.2026.06.22.16.00.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 22 Jun 2026 16:00: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= W9aRU99FRJkCFdVjE14GeGuaLGKvifAUAOZ13h7xav8=; b=YSauVfHXE4UOgF4t K3oWjjzFI+3TRzmtxX56HgCj2WQ6u76JKgTEc//Qq0uSuDG1T2GXJTGBxuoMYzj9 s4Wr31rhn83r54a81+NvK74qjQKKUxd+2KX6BAy1Rl8SC59t8RlD0y4RuOheoLGa vrW2SSjQFR6xws7af3MSWL+vjkTReiAVugQH4xIfProqI++kRYigSkMjXwx+Z/WA 3BWV0fvjij3hmRsbEsuH49bqCw3djBGhpIiSVMg5d6jUCM3uyOp+XaG7+8rMpfLw BgD8u8v/2Rr23YSfdU6w2CiN+jFFxMFaP7gGtEWtbAyY/pZcw6weOkydy+3BcmA/ dpuAhA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782169244; x=1782774044; 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=OeWcXaR+Wns42B7Ce/LHNxi6ptqFX8DorgGv23oE/Lbh0gfcPJbOI8mNQqOerTE5Dz 68rlvIaG+P1hDr25oJTq+xPRhhjafU01jdLddwuUNQOgmJWzAp7t00xkzB5cFJW331/O gNeYZWNZEXkEdgwyJNlgcEwbalkIZBBrJJIhf6tjxT0du5qkaky10esjIV4qpVoz+cTA zIJvWMXDqGNJP2EzBbkdvcVWgc0G+affqzd8WymCImnikaEHRSwP8cU07Kdmm7wfW2Lz ys186Ax+pUfKJJk4myQp3O1EsJYFwzPLZRgSBPvaHx5RDag21Rm/rK7N2GND/BpDI4Z0 OG/g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782169244; x=1782774044; 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=mXXkK2SB3bjTUbvh91eAwJU8ddDZ9wOfVz00nlA9UdWR8Yva7/OmvC2ULlMyeUXVxG hELZ0j+KEJ8rI3KHORzsk8ysZH4T++ziF/OVQlknnLvzPdsaYjxQt8stz9dQG0l/+PRc VYD74kShO77/OIdJdlcz3xE7KbPzXvP3+spC68rsDythavUReNPCBsNPDljAAohePRoz RJKM26dQ8F2GT6FkgKUThaXcBYLK0ChBR/aGZ96hK5EnhGWchAkS9vlaZh/1Ejp4VBVR Yk62OJc38NFGnEKOvovpEVU2p2Tp/QF4UG41CyXieaFAUv/6hZ+aZYGwUCKagUf2/ReY kPpA== X-Gm-Message-State: AOJu0YyFLqG75qD2g0gFM6Xdm7GLR22T8eerkOELUmvaRybEY0gWaXZp xLkpvK8OwZPiCRSXyRUHitNRmuufNB2jjfIIWQ+GmGR1Y5O8wyygOIGVlUkHkmvqhua6y/qmj4P yGexx4wFye2spzKb11GOrmKafR0Jq0GWkKFQQljC91+D2X2pkK1rqjMzhO8JoxnN+KA== X-Gm-Gg: AfdE7clEf0zbK/oRPdZlvYvWj5mD7B7fZEBIF8kYxPlmmvwXk8IKP5z2R5HEIhHI3K1 WaxnB3XlwTNgZcQw9tgsF7vpovxbRK9qex1pOvKYWvU4x+N5XFMzifZb1zkcuZM/jY78viOVoyO 1bNS6Jf5G+Y8tucGNylDYy3B5qizKobhw1dgnLJA7tEg2hJp8KkhmRip2Kcr0GoHjvY3t4SrBea N6wydTJuVW4r/kHTGws2mCm8pGZPNmb30z97StBjo8rzaDK5ptH0uZ4AWB3eOYxDo70ZoVks60i iSxYs7Nk73LjM15eDI9PfsM4JD83tOvrtx6YatgMV4H1bARdzeM8WKA4WVC/rzZ1CejtDVOPTz4 vR5cWpPcm9hTnlvVTZbe030JvO4HJDIZhhikUKNmLFUba35oAGe1p8Ckr8lI= X-Received: by 2002:a05:7022:98d:b0:138:35da:3cc3 with SMTP id a92af1059eb24-139a3686db5mr9921311c88.30.1782169243976; Mon, 22 Jun 2026 16:00:43 -0700 (PDT) X-Received: by 2002:a05:7022:98d:b0:138:35da:3cc3 with SMTP id a92af1059eb24-139a3686db5mr9921282c88.30.1782169243468; Mon, 22 Jun 2026 16:00:43 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v2 64/75] target/hexagon: Add support for loadw_phys Date: Mon, 22 Jun 2026 15:28:53 -0700 Message-Id: <20260622222904.607771-65-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260622222904.607771-1-brian.cain@oss.qualcomm.com> References: <20260622222904.607771-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: AW1haW4tMjYwNjIyMDIyMSBTYWx0ZWRfX/VqjAD1RsTuy hIBK7GydPwA0WDy+1O6i9ylu/7aL6kDAiL0iLRKM1Ht1egyrR76TVCflAPbJlwULPpRtOpNbF3G FgWJkEbXtls2oWsyJrFDjdArdybVGWg= X-Proofpoint-GUID: 00DGpPPJRcBLLmZZ1Ndk2Bzw_zGD57qn X-Authority-Analysis: v=2.4 cv=UJ7t2ify c=1 sm=1 tr=0 ts=6a39be9c 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=_K5XuSEh1TEqbUxoQ0s3:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=M_0_kNSAHlZdZebFLzYA:9 a=QEXdDO2ut3YA:10 a=vBUdepa8ALXHeOFLBtFW:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjIyMDIyMSBTYWx0ZWRfX1D6+NRBfs3zk WxTa89aarXzoGXoZIcj1mIbL6IVIVHFfAQ9dfBX+tZtdAuyVPIvR1uZgowyLSL2KTHPCKjrO9ae wUHE0Ee5VX0mpc/fy3eRAt2/GPj/a6HUmdZljE13t68Ax7a8dDibwifKH9V6ocopqyYI+5DsT5t bfqd3SzH4ioDbqY8oA4OVigGZzx9PBTk+4dEcWie0BYgpt49azCw4sJapJDo0npzjyKs625uLRn Ux/JiPTIkF5w9J3tYUJ3ufiXG+o3yeDIw+kPuTzIi4OrxjNYZyEFAHMS64u+B4rc+qZEFJyzoBQ J0xFVEOaUmIysunm5zWC9Ll8B7N5VhrbbvHHDcoXT8HSK1TSQMf032N55uC9tn08Z7vPcax7nl8 zhM578TT8QIflvOvYJ3Y5nvt2ULxiqY2JBT/esDzOFH7gpvd84jd24nL6IQH3ylKG5TUCLI/whe 80TBL0UMHZs5Iw9Uyjg== X-Proofpoint-ORIG-GUID: 00DGpPPJRcBLLmZZ1Ndk2Bzw_zGD57qn 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-22_04,2026-06-22_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 suspectscore=0 clxscore=1015 bulkscore=0 lowpriorityscore=0 adultscore=0 spamscore=0 malwarescore=0 phishscore=0 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606220221 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H2=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782169446554158500 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 Tue Jun 23 20:53:54 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=1782169464; cv=none; d=zohomail.com; s=zohoarc; b=jqCbup/oMSx4rv8AKkJwTk8EhDSydfNxV1wbZkSyfSQ3IvmbrqwtF2vOfoerRUAqEGSGhoixoOKKc5Bvo+dQVoZZlZZY5+e4Gt+kgT5pSKbSNr0KOEaLCLOyk8pqgakBJ8zCkgt1er1qVNh6BPscPq0bh6doAS9u7hBDF8P0bQ4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782169464; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=N7l8Uh779ejqLATJcrcUigP9amkz3viUZJTlTiU9gRZsRFujP34TIZ1TGpR/CYIpdsQLECsycTvoIyvk/t0alRmLUnr/PtTtiCy/LwN0KxWwttzEpzIB2HK00pTGlTqk7oV2w6GtYj8a+yvkIDJYzfezA8GaxsfXXqe5p/gmFko= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782169464833930.9584784773876; Mon, 22 Jun 2026 16:04:24 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wbndN-00036M-4A; Mon, 22 Jun 2026 19:00: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 1wbndJ-000346-J9 for qemu-devel@nongnu.org; Mon, 22 Jun 2026 19:00: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 1wbndH-0002ZP-Rz for qemu-devel@nongnu.org; Mon, 22 Jun 2026 19:00:49 -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 65MJZdxq1629244 for ; Mon, 22 Jun 2026 23:00:46 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 4ey3cq2hah-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 22 Jun 2026 23:00:45 +0000 (GMT) Received: by mail-dl1-f69.google.com with SMTP id a92af1059eb24-139553dd8acso21359325c88.0 for ; Mon, 22 Jun 2026 16:00: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-139add73a44sm9128726c88.13.2026.06.22.16.00.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 22 Jun 2026 16:00:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= c10dnjx3jWBtOFG53LaPJvlCxFR1rsBjBNQjpvdRffY=; b=oUuVGNT6V5IBHc0t HH0Y4MCwcDlHv6Fd/YcZ+dCAR1/wheoKxCTTObIupYGMzcpYGlfpD4SQbSaujflf +wt6Ok30w4fGdx0ZB1tMYlGfCsVpPeO7+44v+DzbscAA2xYkxYx3w2DtZmHXLOuf AYqZh7/RuEUXGIAniFnKvkbWCmh6C8kSx4Dh7YHYSbxMEp1YiacswIMzWQPiSA08 NNz0Y1ALHnVEt+cqqWNAf3aEiRXVeB/ach1XbyF2X9nIEfuAvRk17/Fp5IpJhNuz ZhTDslf1eWQdFaH9FQK6w0YRAIUYJ+V1uuqZ9kQsEpQbDqIClYqJL6wcUqBKf8Nq 3fBy1Q== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782169245; x=1782774045; 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=OSB3nAoF46fDvo8ahcZfwjcrlF/JPCijnEE17LOwph+QPmCwS3gvnSzm7NEzodj9PQ 58daMr8uIeJ7EZxfdyAZ8oDb7q+euXv2GLgR1OQZXTpvPnJvt6oEKfDWxpDOvyUOoSUO Tc+PsQ9YL1JKzo8bBfMV86XP+Bf3sShf1P+txYKoqiuuGFFf9mNJw6jee4ejeDrVXnvJ BaSGQWBretfkb7GtJhbPp5dQFAhvaMfofhxGpvq6Li59jlo/y6jBLMQBPvhkXidmlxwN kNnpSuwXbyLFywy3vYDzESNYHoQYOckg6lvb/YNBkmHHT4zNSufhlsNJkvJe5gSAG/gh 0I3Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782169245; x=1782774045; 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=G1h41dtqHb2FDzDm7Dg0DDfQcKr0dBoUIQt9h+OF1vzP/2ob3r2SlnQkmka3F4vPYY 2P4h0gBXW7u7QEHwif5qJH3LIfEPRzpiCxpYS+TGU/xX/Zjn9jT5VJoxIaU+lL7iMtmM pJ50Dxmo3sQvKgNunltVmCZFnLc4JzGVfDAblQPodRe4ZMnUv+EEEJ9Db48W4tbhrLgm VbY6eQlCDRQHxCFbgHTRgzb2moLJ5HLFDyZGvPJ7D1558P/5Kh9htqmqlEaSJeg3fy7z +yb9FVQHMD6CfIezmuu7cdM21ht3xdkiJVDqhdGdVRsP+/ZvXdvm/FG3JK2bJDx+ocLK mj0Q== X-Gm-Message-State: AOJu0YyUHGG//dWwZQeDQux/5liQZi+XvWQRLin0I2HSbQA67YWKtc5+ VGhkTFT0bx556RAp4XKviljkNt+pT1oRJx6gs2iE1Xbpx44OdfoOL82HHpStJMiLXimrD8x98fF tzLl2/2jV3JaH3mPyktRVWH3fjGY7ckbPHjzhcf9atOillceOaJAkyBsTrmLehw/WHg== X-Gm-Gg: AfdE7clfHrbcDXRwm6crxzdhAtjamkah/rhFfv0Ad5czxYPY9kfrsZQg9R7ISL2VxLU jFHVwrUwSMtV387YO9LH4LecJ9Zyc5KfxqB1jC/6Rm4ilpz+oqVsCVkBBhhEt8h2RPpxj5AgDye hnPkbk54dx3UTpsT/kUWu0OkfSz0yAnLj5OUzFpOHc/FNxHpc3mfgDgsSg3D8ebrvqbeZXhJool Tgl+9OC7Moe5vcocenwOELTB2QxaOJF/ArHXvFtl9jEdxDzPczGBn0ZkGNlhS2bCRem0EAKeKpW 7ndwTfiGO9/pd9J8EgarcvJymoRoosGC1QXJuf8JXEx3XasBWsut8qu7duhyoQr5Leyp9kOWNOp bwK3jlZX+oPBImxKONcMkrA1wY+Uo8ZOGLFXKT2CbhtCTwQ3JWwEICMiOzsE= X-Received: by 2002:a05:7022:623:b0:138:364e:3213 with SMTP id a92af1059eb24-139a34f5263mr10257022c88.14.1782169245284; Mon, 22 Jun 2026 16:00:45 -0700 (PDT) X-Received: by 2002:a05:7022:623:b0:138:364e:3213 with SMTP id a92af1059eb24-139a34f5263mr10257000c88.14.1782169244637; Mon, 22 Jun 2026 16:00:44 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Matheus Tavares Bernardino , Taylor Simpson , Pierrick Bouvier Subject: [PULL v2 65/75] target/hexagon: Add guest reg reading functionality Date: Mon, 22 Jun 2026 15:28:54 -0700 Message-Id: <20260622222904.607771-66-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260622222904.607771-1-brian.cain@oss.qualcomm.com> References: <20260622222904.607771-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: LL7YSUzAbEnXbgkU104Jqr2V2QJ8GJiZ X-Authority-Analysis: v=2.4 cv=VKXtWdPX c=1 sm=1 tr=0 ts=6a39be9d 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=IJQQmebJWjVxhimlKuwA:9 a=QEXdDO2ut3YA:10 a=vr4QvYf-bLy2KjpDp97w:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: LL7YSUzAbEnXbgkU104Jqr2V2QJ8GJiZ X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjIyMDIyMSBTYWx0ZWRfXyeF/2J8yBqYu w/uESA0G+bvm0X/lCFEZFdNBrH/szd2vrO36aCGKvq/t0A97sdZ0utpRZv/69lj6O+6feLVZEzq c7Ua7rxwYBulOe0+WPxBaoQ+oqe7qlwUL1Jz+PmF0jHeyfx9TvMj9pmlskok9+i9znWBOXPFVWJ BES4svPYdRf1m8nQiF8nqZAiflgnuOGTcuT8QxB3lZ7476LIHb8UGT8I5Exh6WMn+DfkeEyoICu s8SQIYrRYjZcIztflvmB7FeZPyyxSGNIukmF7XdWMwPe7nAWYehbvd5MIzO4MqRTUhbt/y1a0ef iGWnOGdkZltJBzU4Hy2LiAIc/95L6gTUUgz01Q51hZENdN9SFNTiWQk8RTM2Dxq+Qze1MfqVlVM iElVNmAJfu0C6J3v7Ycbg8vxkuaRpZj+DtGwGtFrWCb9Y66nlfC+vmPmT0J9gufq/jUM2suopQe xa2dRFO7uMcqRZIvMLw== X-Proofpoint-Spam-Info: AW1haW4tMjYwNjIyMDIyMSBTYWx0ZWRfX1vOMUpjIPfYW l7azNpLK2xcJCAKallljV329dS2JbKtZD8cWXKMwx2QPRflnnuW3kPkBRedMsvHCJgIndY+txue ZimwKMSge417CN1B56uBkhw2P9uPqGU= 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-22_04,2026-06-22_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 spamscore=0 phishscore=0 priorityscore=1501 adultscore=0 suspectscore=0 clxscore=1015 lowpriorityscore=0 malwarescore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606220221 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H2=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782169466622158500 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 Tue Jun 23 20:53:54 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=1782169445; cv=none; d=zohomail.com; s=zohoarc; b=RCd4I3QEs5X3vvUB9YZnOpfcwlc7IJc+MbQWXKQJntZl0d1NL8eMS9CwPsZxzB3pKhf5+yh/hMXSG5a4d5fN0tBQYSiDsd4PnpAODOfBUxIrNIN1pIZUSpFRVp1DPq4tmJh7gP0PD9tcPpYc7/DK2nbVK8EMfUnNRMkyk8QfS2o= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782169445; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=jcUyF1QpxynC+KI51dyIg2dUBKWzUbrktqc4KLjDytjD7HvmRUK6Cn/KvN0wmurngva7tJEcehPSjKBI3kMpdnLDQ3Og+56LvIYfWNb+XCXpKA1CQVFn4y8F75CDz9rHFlg58FXUJJSplXH0NhZ5JJZcVkp4TvpDHj25KQaZhpE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782169445784692.3128021209465; Mon, 22 Jun 2026 16:04:05 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wbndc-0003Cg-Qt; Mon, 22 Jun 2026 19:01: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 1wbndV-0003BB-D7 for qemu-devel@nongnu.org; Mon, 22 Jun 2026 19:01:02 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wbndT-0002a4-BV for qemu-devel@nongnu.org; Mon, 22 Jun 2026 19:01:01 -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 65MJbNQ32122914 for ; Mon, 22 Jun 2026 23:00:48 GMT Received: from mail-dy1-f199.google.com (mail-dy1-f199.google.com [74.125.82.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ey5n421g4-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 22 Jun 2026 23:00:48 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-30c0d568830so6780395eec.1 for ; Mon, 22 Jun 2026 16:00: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-139add73a44sm9128726c88.13.2026.06.22.16.00.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 22 Jun 2026 16:00:45 -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=Hz PQcqfAqWVmVGMLnRekk+1a7+oBL6aU4x0tVs6irVB3u2s8J9+AtCZszYJ19dptcI APFq4VipRYtkUj97EUQzVjfI6/g37eGZl0nb+eNnJUiLKPnreGW3GO7G9qbI2tmY 2fO3+QCjuQcQX8jJJd9JLwCWkOwkXwTH7V+cYL82w2uhbfj/A5CYH8TgTxbNzbev d3fqpKGfThHdK4UM1pe4YUNHl70SyUIy8MJwE9wUU7lpF5k5GIy23IEjOoL5ujA3 5BFSRFIOnVfZs0WpvneeUrxB9rg6u3v4g54hVyTAjQgtP831ndEnaeX4q2frWhGj +FbPCiACXnYy4Va4+K9w== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782169247; x=1782774047; 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=UPUVx4QLpBm2jbeaMkJ2NylSbClr3+3wGqJvg6yKh3oeoX/tFLmh1T62MGEEVFXhOj QHnibTim1Y+r1EdxFvqxsEY+KR8p21MIuvrJOgu4mrHrXmPqtIE/hCA9o4eiyIqvRtqA 6Sz98k8+sjqo9BYsTfbyAFdHq79pxN4tIjctW4XqhcHqDGErtQ5zXzPoQ8CNZoJ//mSd bpWKgF1bePPgNDNhwBPEzH/eKG4n/Adn+7YUo3uRlG1iUek6H8P2AS3FYY91HUNLTcMC ObJubArXqeK1mu5KOFUx44veP+B9KVbiSGwpIuYmZta+2bFnFLqVK2Vnzvorc2KR39TA O7xw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782169247; x=1782774047; 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=cfmjlOxBnnTWaeWa2jcQdatmkRRPlAGbjrGU7Q0a8nTnzEIlk8uYz2IBs3c+Yuo4o+ 75JczAwGJFal//Y1tcBgggz2T8IOzIcBbJ8BzUkYz3S4clChU9EiFTeYZ4NfSRQbSV0c ov06OC75Zlzz0j4PoAvuosTLe59Gb8RBOKJkq24XOCOkctzsmPkPeDP0cnjwn9TVtbt6 AF6c0r0f/W4p2i+Fhf3NctbxPVqZ5Tj6e0HyMe1/dFOK+675EXotGFd/BT6vQWmpzHVg FvOwkc02oET1rA33eAQ243tpH8Cxs7pLoBCjL97WdYRoTxMNcDFULdj6ebDAydkZUY+L SiVg== X-Gm-Message-State: AOJu0Yz7ygHtdkoR4bEHqME4GmTTJW3LCXFHVeU5BTB7Hx5NNMZ+c7+X RqooCNlIIXlIoJkkyTcDDiEBdGF13hsUNS5MlRcvUymWmKZKz9MnZSKpHkvvK800XHznZehr5Rf 47zCkzgtpZIBzpywUGhz9KkFwZ/Eu8IgJfudqbxXtLgqZV2deo0VvS0G34S0DxkTcog== X-Gm-Gg: AfdE7cn1sAys32htGXzjBay8B0j3sec3rHWOVaNy+bjOSLM/A0WBuZdtg+NEMcAmtGb XK6kBUTMwIApqcW393wJIEluuEm1q4VLF8z/n8VUkpzW1J7D5a6CtertgrLGcJ2Ffu6VMATZfWl bcSpfY+iyIBBjPjt2/pqHOVhRsD7181Xor7s8ncp/UKZPbolLY7sUG43iZ/39PFT945xLK9OXoa HkoYkQdPBenX3REL3kNeSgXgnA2x03yNxQxbyX18zT6lKWWEb/SB8dQsar0GTfBKax6tfP0l4Ao ASrcXr5kCSmvLUPxu7T61MRDiN5tlZFWelOZd9vUvaU6QpOCAx6HsINexF/dJ0t9cvhSXS5+7XF te5/eUMyyjAW+ujEHZr/a4ytAlwLN2w3oA9RoUAH9j3I5YgKMcouQZUYOLyE= X-Received: by 2002:a05:7022:419c:b0:138:507b:30fd with SMTP id a92af1059eb24-139c5cdadfbmr354228c88.6.1782169246913; Mon, 22 Jun 2026 16:00:46 -0700 (PDT) X-Received: by 2002:a05:7022:419c:b0:138:507b:30fd with SMTP id a92af1059eb24-139c5cdadfbmr354203c88.6.1782169246306; Mon, 22 Jun 2026 16:00:46 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Sid Manning , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Pierrick Bouvier Subject: [PULL v2 66/75] hw/hexagon: Add globalreg model Date: Mon, 22 Jun 2026 15:28:55 -0700 Message-Id: <20260622222904.607771-67-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260622222904.607771-1-brian.cain@oss.qualcomm.com> References: <20260622222904.607771-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-Spam-Info: AW1haW4tMjYwNjIyMDIyMSBTYWx0ZWRfX3nCghOqkUdIk cY8S4Hijg/7gw1WWHF9PRgXACNhB3iX64qqrTZlwioHFcGmusTwAV2/LKE7Xg0tyt31MWFCTehx VeW+GKDNGeR82fy4wtBb3ztVXUTfg7A= X-Authority-Analysis: v=2.4 cv=R8Uz39RX c=1 sm=1 tr=0 ts=6a39bea0 cx=c_pps a=cFYjgdjTJScbgFmBucgdfQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=3WHJM1ZQz_JShphwDgj5:22 a=EUspDBNiAAAA:8 a=KKAkSRfTAAAA:8 a=ykHTVMA0J60qDn7DFlgA:9 a=QEXdDO2ut3YA:10 a=scEy_gLbYbu1JhEsrz4S:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-ORIG-GUID: uLnY831WGgYbCjwryQeiILdPQpkgUZon X-Proofpoint-GUID: uLnY831WGgYbCjwryQeiILdPQpkgUZon X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjIyMDIyMSBTYWx0ZWRfX6WPpErLv6lhC F5VauW7ZUc0wMnKci8RoLK5+HjNJ7LzAQKQEYZRLIfrQNn+AanRrAz0cRzRvd32RKuvc8I45O/p DknqGaEJzvz6zU5DZbkqqnq9zWFtRuV1gwGooJ9z0usNEe4qYRsssT0BB1VqpFHgA4EIOlbsvAb t0VVoGygWXw6PfrUpbh4VpDXUPB2kJO07j+Ukg1arttyz9U+/t2H++1aEDO5KXfPKX8648hfbaJ hN+ti/OxujzGF8cpPQKrrZJTwYDQX5398shtgaVsLlDuLZ41jGsYDgf7O7hnDAn2asLbXt/NKqE 3BOMczAsdpON+Ub4UeWn/1ze5hbmcTsl+vNBd/mDZ4FIiD9fWQ8U51lExwsC9u063BAlw5O2CpD Cz3lMAY8PmOAUD6tpxWYekssUPFiN9n16NBqemoZieNrQB+DObW3KotiqdkVUrmjhyYOISCGZ5Y w4oMAUMeSpp8BatgvtA== 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-22_04,2026-06-22_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 clxscore=1015 impostorscore=0 priorityscore=1501 lowpriorityscore=0 bulkscore=0 suspectscore=0 adultscore=0 malwarescore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606220221 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782169446515158500 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 Tue Jun 23 20:53:54 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=1782169461; cv=none; d=zohomail.com; s=zohoarc; b=Tjs00mlU+qqD3liWUFWZ5IqdpJnuOd3qKW9zGyByr265ZWqpmTicMRdzbvDzHkHseQgHBLn752yUZZznhtBy+y1IxSc3EYfWVTtUtOfKmUNFYlY7USKt90Se2Nev/ze50NqwviKGXJZDvuLVFs3G2Fws57+s0dd0osgvdc9T3y8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782169461; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=WuFcXxSP9Fzp6C31qhgOnqeUQp9/ystWflMVHLK8WCY=; b=RviUBzsWMgay3SIxOb940mIpxUG6+DINF7Li41n3Ic6MOnGE5TsgrOV5hePa+7CadNrHjOkdpZu6awjypOIT5eM7p18r7TB0EP66v/9q7iSs+BQRJM9I+Y9Rqw1eK+yB2pm7FCYFzQxfAhEOWP3z0G+QvQBmJiVLT45go6KO18I= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782169461258248.71133822358013; Mon, 22 Jun 2026 16:04:21 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wbndO-00037M-HC; Mon, 22 Jun 2026 19:00: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 1wbndM-00035q-Az for qemu-devel@nongnu.org; Mon, 22 Jun 2026 19:00:52 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wbndK-0002aG-9d for qemu-devel@nongnu.org; Mon, 22 Jun 2026 19:00:51 -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 65MJa3mC1612871 for ; Mon, 22 Jun 2026 23:00:49 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 4ey2yjant5-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 22 Jun 2026 23:00:48 +0000 (GMT) Received: by mail-dl1-f72.google.com with SMTP id a92af1059eb24-139af2bd2c8so2433530c88.0 for ; Mon, 22 Jun 2026 16:00: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-139add73a44sm9128726c88.13.2026.06.22.16.00.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 22 Jun 2026 16:00: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=WuFcXxSP9Fzp6C31qhgOnqeUQp9/ystWflMVHLK8WCY=; b=oq XkZerJ4KrGJG4LU5LsYtrxfVfI8feZ8yvlzcMJZ+efdKdnpUth6BYHZiGexmtnzB bMxvFrxBarSAiaEH1RBqycnwGKSWzE9O6eoXfth6Cj3QKbjIBRDe8Wc7GLrWxOOo 3wW/VLHmLOsV06x3k3jOBKP56bg3chSWw0KAucIn/wBrguvxsZjlNdxvzp+2uo/g vcO98+REVqIqLh0skzlguvVo7J4BWzZ3nDAdtYplWDQ6Slb3bQVTBNR88d/bYMtq xxFtxgBDFJXOst19K+fSL/SakhiazjJE2MBQqMRH4XU1bhSc71+F7FfYoR8e1Y/9 qIFp2sv0bMQKf4gsGbyg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782169248; x=1782774048; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=WuFcXxSP9Fzp6C31qhgOnqeUQp9/ystWflMVHLK8WCY=; b=VZKuHjxHhxQ6pElMkB1YqEZIt0gHVewQtjss1n7A0MAxwnKOdtgW+UPRLZ/OFHwOzd wk7H4OQPblTys0pZqG5q6evj2b1929eZ2RArqhxDXG+Q0cSzxXfw0mnaD57TdrP1FQZP fTtAiHo+7KO6kXMd+QOGgEnnr1W7jZQPbdhEyW3qWv6QV4HJ2dzuNLWg39Es5xFYQW3e NIib6B1clwvwUXboowafOk6Fv/3TojvkCYTXyCRL/LJBeX5ynsfpS9SvffrszTchKGqF eof19MRZNA/oDg1heMPw2L9RNhh7OcUHjrcsFYt9tzV0HyB//QlaCLAPoDc2r6Oo9PhQ SLvw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782169248; x=1782774048; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=WuFcXxSP9Fzp6C31qhgOnqeUQp9/ystWflMVHLK8WCY=; b=cl4PQM1AFHcm1AzFNr0qVapEx52qMT0YiBcoa2+0nAFFL93Zxuc4lIzExEFUtbRK6e 2mvLZIVOfN2cycEX+UPtQAHtguXz685NeaLxAwROA74jCiqYbCN3VNHBTT/k0TNSAI89 /iWM55/urR3qfYaPJwLlWiEaXu64HzbjleCWOxMy5/MnH7lhZvQQu8arvI5ICm75/EBg RsS4EklVTPvYZVr4LuHNHFSx0Xkw28YEhRzjc3YZ41Fk7JgVvxWU1FHWfGXzE7shxcXL XFut0uFnFN7Mz39x1r3Rt7Y179ozE3a+fvaUF1fqcewSVFWPOAMTBIkRKVrino4KCaZF 7Viw== X-Gm-Message-State: AOJu0Ywa/Di7VVKwkhi7+LbCnjQwQtz2D7W5L9lOq6dIbE5XNGsIjfG3 ZQVOvJk8SnIWqwMf61eqkoQ1ACKquNJySCaPWGTH5EyAl4XGaC3LnQLsCOETZOgOUC9eLxyAFBC oZOe1B6hv0IDM30gqs6pBbbT3tbiKtV3Nj0Bra+5d6du944AgBfUNEBddbYPyGE7DrA== X-Gm-Gg: AfdE7cnd6M2tRvJRiwL2HhdQcYlHIE8J1XyUDSX+rnZx0d+xNgbIjTBF4pxbugPhT+F 11FpdNKR6Pc2FJ68eL8xzqQXTwdFDbJasXw2rjr5hVJ3sCxX8//ik3c/tzDhNrqGOjUzY/IfuKI EgN11lpboMbui+PFMfIThC+GcjNkeuga9GL07GH8gLvwdYhi9Ggdn4dT9BZiTbp2cIdj7277Dgi fUVjlQx8zKmmou9ObKCwI3pqp7DDNv7kHA26WFTRq5N5gddLX7LbBov3yi0W/inz/yJSbM+IOx2 L1jWyo1rgatxV1XTZVMLtOqsnHm/mOfFtB1ZUNdKSHXCPUoxFiG9550P0qdJlmWABqxvZscWa2u 7Gn0e1HyJERNFfRww8FHmbkwqmho3J5wb0uc2fEcMPW4nMVFeum3i+i2r/eA= X-Received: by 2002:a05:7022:ec0e:b0:137:eb26:10d with SMTP id a92af1059eb24-139c5b99857mr300120c88.0.1782169248197; Mon, 22 Jun 2026 16:00:48 -0700 (PDT) X-Received: by 2002:a05:7022:ec0e:b0:137:eb26:10d with SMTP id a92af1059eb24-139c5b99857mr300099c88.0.1782169247627; Mon, 22 Jun 2026 16:00:47 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Pierrick Bouvier , Paolo Bonzini , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL v2 67/75] hw/hexagon: Add global register tracing Date: Mon, 22 Jun 2026 15:28:56 -0700 Message-Id: <20260622222904.607771-68-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260622222904.607771-1-brian.cain@oss.qualcomm.com> References: <20260622222904.607771-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-ORIG-GUID: F0raVxEjObV43-8mqDcbSDbGWwhq_u9A X-Proofpoint-GUID: F0raVxEjObV43-8mqDcbSDbGWwhq_u9A X-Proofpoint-Spam-Info: AW1haW4tMjYwNjIyMDIyMSBTYWx0ZWRfX4NKhoGK2Tb++ ch/El/5LgcnI1o35Jjhwim07ceAsi0y6k045d9Rj4jwy28w10zSN2v5geKxlaI4Fx4HdytBbrnN 1ErEhMctSG9C0aFqiOYrsUZV+eZUkCU= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjIyMDIyMSBTYWx0ZWRfXyFZIO+syVt31 FK1htitCn4Ww3Nj67/UEkI6kuUNZ9UKeZ734ZHUczRjCgheLUgQ7jRSd54jXSFdbEX/1WMToCwk agd9p8ntth/L4aZsiEfpsxTneLSd3ZbA86qpQVnW4fwBSV4nS/3xPEDsuD3moQm/gI1IFVn5cx/ QG2lIG2xdY8KWZKUlnB1PQ7Zq+xJRWIj72pQGSpNVUo97buVQgCiDiNewqjnp41bqSVISMTcsIn 2GhiVqh4dFQK+82XVKcEyS7Nh2+grRLSbsd8taJ3dUa29xAain1CCfnJDFgD6LgG1lecVey0tkv 3eyGq+F3Mhl0AoxIuN+4U1tiIiWx7Ab0YlVGo+nGmB/wDVHoxr4Ad+NodGVNO8Ysscm3S3SQSDh ZvS78K/QjWiUuTFJftBhsv/KGantfh9CG213UCaPl5ICSQOK3fvyYTIm7J5HNbd96pRSwDREcP2 ED83Uh43cW3Se8QKMRw== X-Authority-Analysis: v=2.4 cv=YLSvDxGx c=1 sm=1 tr=0 ts=6a39bea0 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=YMgV9FUhrdKAYTUUvYB2:22 a=KKAkSRfTAAAA:8 a=EUspDBNiAAAA:8 a=8QmChvNvioVktlEtA_0A:9 a=QEXdDO2ut3YA:10 a=vBUdepa8ALXHeOFLBtFW: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-22_04,2026-06-22_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 malwarescore=0 bulkscore=0 clxscore=1015 phishscore=0 adultscore=0 spamscore=0 suspectscore=0 lowpriorityscore=0 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606220221 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H2=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782169463055158500 Content-Type: text/plain; charset="utf-8" Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Brian Cain --- meson.build | 1 + hw/hexagon/trace.h | 2 + hw/hexagon/hexagon_globalreg.c | 73 ++++++++++++++++++++++++++++++++++ hw/hexagon/trace-events | 3 ++ 4 files changed, 79 insertions(+) create mode 100644 hw/hexagon/trace.h create mode 100644 hw/hexagon/trace-events diff --git a/meson.build b/meson.build index e026851309e..d4206a5d3f8 100644 --- a/meson.build +++ b/meson.build @@ -3599,6 +3599,7 @@ if have_system 'hw/display', 'hw/dma', 'hw/fsi', + 'hw/hexagon', 'hw/hyperv', 'hw/i2c', 'hw/i3c', diff --git a/hw/hexagon/trace.h b/hw/hexagon/trace.h new file mode 100644 index 00000000000..9e0b39f3c66 --- /dev/null +++ b/hw/hexagon/trace.h @@ -0,0 +1,2 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ +#include "trace/trace-hw_hexagon.h" diff --git a/hw/hexagon/hexagon_globalreg.c b/hw/hexagon/hexagon_globalreg.c index 28cb5a4158d..b5e5913507e 100644 --- a/hw/hexagon/hexagon_globalreg.c +++ b/hw/hexagon/hexagon_globalreg.c @@ -16,11 +16,82 @@ #include "target/hexagon/cpu.h" #include "target/hexagon/hex_regs.h" #include "qemu/log.h" +#include "trace.h" #include "qapi/error.h" =20 #define IMMUTABLE (~0) #define INVALID_REG_VAL 0xdeadbeef =20 +static const char *hex_sreg_names[] =3D { + [HEX_SREG_SGP0] =3D "sgp0", + [HEX_SREG_SGP1] =3D "sgp1", + [HEX_SREG_STID] =3D "stid", + [HEX_SREG_ELR] =3D "elr", + [HEX_SREG_BADVA0] =3D "badva0", + [HEX_SREG_BADVA1] =3D "badva1", + [HEX_SREG_SSR] =3D "ssr", + [HEX_SREG_CCR] =3D "ccr", + [HEX_SREG_HTID] =3D "htid", + [HEX_SREG_BADVA] =3D "badva", + [HEX_SREG_IMASK] =3D "imask", + [HEX_SREG_GEVB] =3D "gevb", + [HEX_SREG_EVB] =3D "evb", + [HEX_SREG_MODECTL] =3D "modectl", + [HEX_SREG_SYSCFG] =3D "syscfg", + [HEX_SREG_IPENDAD] =3D "ipendad", + [HEX_SREG_VID] =3D "vid", + [HEX_SREG_VID1] =3D "vid1", + [HEX_SREG_BESTWAIT] =3D "bestwait", + [HEX_SREG_IEL] =3D "iel", + [HEX_SREG_SCHEDCFG] =3D "schedcfg", + [HEX_SREG_IAHL] =3D "iahl", + [HEX_SREG_CFGBASE] =3D "cfgbase", + [HEX_SREG_DIAG] =3D "diag", + [HEX_SREG_REV] =3D "rev", + [HEX_SREG_PCYCLELO] =3D "pcyclelo", + [HEX_SREG_PCYCLEHI] =3D "pcyclehi", + [HEX_SREG_ISDBST] =3D "isdbst", + [HEX_SREG_ISDBCFG0] =3D "isdbcfg0", + [HEX_SREG_ISDBCFG1] =3D "isdbcfg1", + [HEX_SREG_LIVELOCK] =3D "livelock", + [HEX_SREG_BRKPTPC0] =3D "brkptpc0", + [HEX_SREG_BRKPTCFG0] =3D "brkptcfg0", + [HEX_SREG_BRKPTPC1] =3D "brkptpc1", + [HEX_SREG_BRKPTCFG1] =3D "brkptcfg1", + [HEX_SREG_ISDBMBXIN] =3D "isdbmbxin", + [HEX_SREG_ISDBMBXOUT] =3D "isdbmbxout", + [HEX_SREG_ISDBEN] =3D "isdben", + [HEX_SREG_ISDBGPR] =3D "isdbgpr", + [HEX_SREG_PMUCNT4] =3D "pmucnt4", + [HEX_SREG_PMUCNT5] =3D "pmucnt5", + [HEX_SREG_PMUCNT6] =3D "pmucnt6", + [HEX_SREG_PMUCNT7] =3D "pmucnt7", + [HEX_SREG_PMUCNT0] =3D "pmucnt0", + [HEX_SREG_PMUCNT1] =3D "pmucnt1", + [HEX_SREG_PMUCNT2] =3D "pmucnt2", + [HEX_SREG_PMUCNT3] =3D "pmucnt3", + [HEX_SREG_PMUEVTCFG] =3D "pmuevtcfg", + [HEX_SREG_PMUSTID0] =3D "pmustid0", + [HEX_SREG_PMUEVTCFG1] =3D "pmuevtcfg1", + [HEX_SREG_PMUSTID1] =3D "pmustid1", + [HEX_SREG_TIMERLO] =3D "timerlo", + [HEX_SREG_TIMERHI] =3D "timerhi", + [HEX_SREG_PMUCFG] =3D "pmucfg", + [HEX_SREG_S59] =3D "s59", + [HEX_SREG_S60] =3D "s60", + [HEX_SREG_S61] =3D "s61", + [HEX_SREG_S62] =3D "s62", + [HEX_SREG_S63] =3D "s63", +}; + +static const char *get_sreg_name(uint32_t reg) +{ + if (reg < ARRAY_SIZE(hex_sreg_names) && hex_sreg_names[reg]) { + return hex_sreg_names[reg]; + } + return "UNKNOWN"; +} + /* Global system register mutability masks */ static const uint32_t global_sreg_immut_masks[NUM_SREGS] =3D { [HEX_SREG_EVB] =3D 0x000000ff, @@ -77,6 +148,7 @@ uint32_t hexagon_globalreg_read(HexagonGlobalRegState *s= , uint32_t reg, =20 value =3D s->regs[reg]; =20 + trace_hexagon_globalreg_read(htid, get_sreg_name(reg), value); return value; } =20 @@ -89,6 +161,7 @@ void hexagon_globalreg_write(HexagonGlobalRegState *s, u= int32_t reg, g_assert(reg < NUM_SREGS); g_assert(reg >=3D HEX_SREG_GLB_START); s->regs[reg] =3D value; + trace_hexagon_globalreg_write(htid, get_sreg_name(reg), value); } =20 uint32_t hexagon_globalreg_masked_value(HexagonGlobalRegState *s, uint32_t= reg, diff --git a/hw/hexagon/trace-events b/hw/hexagon/trace-events new file mode 100644 index 00000000000..5d623ed2516 --- /dev/null +++ b/hw/hexagon/trace-events @@ -0,0 +1,3 @@ +# Hexagon global register access +hexagon_globalreg_read(uint32_t htid, const char *reg_name, uint32_t value= ) "htid=3D%u reg=3D%s value=3D0x%x" +hexagon_globalreg_write(uint32_t htid, const char *reg_name, uint32_t valu= e) "htid=3D%u reg=3D%s value=3D0x%x" --=20 2.34.1 From nobody Tue Jun 23 20:53:54 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=1782169314; cv=none; d=zohomail.com; s=zohoarc; b=W11lY7P4/ruK8B2BcStCN+heDpVXi2Mynf5o0CgMn1F03qIHiTW5vRXW3zIZCOj4L39Q5FPiMu62V28miJiixIYxWxiyiVDLeWEoyNpuP1dpCY8c81Ter3k2WqWyCf3c2Xz4DlxVqPGV2oWgmCpoc/0BgTI+gp4xqjQtLmcX83o= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782169314; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=ZnP1K0yS/durbSfVWd0fiPHNbwG7XqrqetYZmHeI5K3ULCdR6P/37WwbCxO4/ABPF/EkB9qJEgVwhUIbfi4SNxctDkcJurRG0Y+HgUnZJwjYOGjdoYXr+SL9AqezFtnWPnxP8Tltz8xHeTh1NgeImmuAqmkTk0KWlhRLwR0CoYY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782169314167630.5930439643317; Mon, 22 Jun 2026 16:01:54 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wbndQ-00038G-Cz; Mon, 22 Jun 2026 19:00: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 1wbndO-00037i-TM for qemu-devel@nongnu.org; Mon, 22 Jun 2026 19:00:54 -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 1wbndM-0002ao-BB for qemu-devel@nongnu.org; Mon, 22 Jun 2026 19:00:54 -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 65MJZd5b1629238 for ; Mon, 22 Jun 2026 23:00:51 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 4ey3cq2hat-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 22 Jun 2026 23:00:50 +0000 (GMT) Received: by mail-dl1-f71.google.com with SMTP id a92af1059eb24-139af2bd2c8so2433581c88.0 for ; Mon, 22 Jun 2026 16:00: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-139add73a44sm9128726c88.13.2026.06.22.16.00.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 22 Jun 2026 16:00: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= EzOvoGhvtPKig+yChPX1XxYwqHpTeQ/TAqtl6EODqY0=; b=nZTyLUsdyf72upA6 uwWoR96uyjNdaoEAhSieNz+J98nO9HOGdSesVDxWsnXgKIDIlcYFKHrC23hRFbvS cIDR7zW/SG/fqiUaYJLftEV+hPIYHFMdFhVSGhOGSvwSYbtdm+mtbXy75oxSns8+ /XPryBEbxxmcgdBd25/3d1PD4e0mQgSCSNGIdn6bO9a+gzFl/qk5xGTz68S8UO/H UGkPc314/50DsGMMhRRq41iGAYWYo2rByfiYcMJqYbhJPMYhX9zahOLRJqHim9h+ opzm+hkMTkKQbyBkQlrUzb3PP+0UWOb10i4Sq9W3KFwK3Iv0dhwfxki99shJs4Lz +eohfQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782169250; x=1782774050; 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=RgbDJe8cPmDMitaojMe+DntusyGEiRpALU0gonpMo3rCAXjNI06awac8QykcvqsSOZ 1ati0VuE6Us4WiBzWNDVox5MBQTJ2p1K9kk18zWkzOULQ1jxjfx9ornAEKeg+NCf0RNK wMQS7WVjuInkMAaxg4csnJqjF4Qw/2jFsVVOL3LQq/Pbo9xxFSWGtNz6WwaOY9KAKA2N VPYm9qnkySxWEFZDYL+AuX9wxkFNZrK9ZYUA1P3D7JVBMxjonSmYC/hpXlTKqFBcWJFG d4g4h0vAfR28Fl/PSLg+qHT2l3mhoSNGZ/uBkRmfveN23PjDjiTsMhpnNdcJAV+mjOYl HuOw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782169250; x=1782774050; 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=aPB5Y2Pa82iWVpG8WfZXVFrkDqd8sQZTJ8J+NXMALyffZBIfTLGzbDd3DljuuqzjAe vkR453uarC9B+0OU6Ni9qP9dCNLuIUkmOyXj7/COYw7aLj4mwwZC9oIhBEeETzT99fWT ODmvoP67gWUTFshzohrmngS8Q95OihRKRPD4vXNe7HQEJaxZGvxi1LsJWHC+nYMf9IRU djbksPVrIdB96zClg7+3kHorP/TD54VQkIDdaRf5TRD4W5oeCh2y0y41GqKFRobOHLRK sCxQRQdz9YdtFnflVthg1Sl5mx/dxwaEkASyyUn4lKlfE9eBqmjlCIoxSG0RB2wTrwLl RSaQ== X-Gm-Message-State: AOJu0YwPzjwA98aAeUDFDe5Ag/J7KtvzyJ6bhFoq+HoICqq/4xXIX4jm WwDF6jHb28tHXoLcKMoBjx5aTMphSe3++jufpL5xfY2EkDTOovpUZtEOv3Sfo6CLfRW+PnSzoq6 CSKwlo0g63SeIRTa1nsPeI1M5W86OP+kjzkzqRZbJGw7AzOt+upp60qLMcY6pzQg5hQ== X-Gm-Gg: AfdE7ckqyiF9kOSYVMznsMpLFEpSmcEuuDHpdcSg+c75pPyKJjr1RGeG/OUtjW1i+Tz IxQtOLb/bv33+APBRoSdcsTAVxwc0tBcI+JwZfXIWJv7c81+BhjjZ3fhnpQzLgv3fD4lkP7fQhg skbjmAdwH+uEyJY1AsEQfVKpdXCcGOGAk9MlJpNFYgCX9QicpxbAoa+gofMWJ5LftFqQVwhaVR7 U+ELERJ+jyTO+KRY1kEaeSpWLQ0j4IHcz9zMZHvJ1TZTrfa7EI4yO/dnA5eN9oars6pWsd8xfmt n+xa9SO9lPMbsjDeIrJChwhC2kpLxd+L+O51Av2UmdboVNT1HPmE8hKMAWjdOoK5b0eNAhApLqZ ZouCLgHzyegEHJKtOioUauwdZFg9hhOgQ9f6bCIiY+ML7W5ZxIGyxoZ9GSrc= X-Received: by 2002:a05:7022:90d:b0:139:8561:9935 with SMTP id a92af1059eb24-139c5dc488dmr275803c88.17.1782169249984; Mon, 22 Jun 2026 16:00:49 -0700 (PDT) X-Received: by 2002:a05:7022:90d:b0:139:8561:9935 with SMTP id a92af1059eb24-139c5dc488dmr275773c88.17.1782169249356; Mon, 22 Jun 2026 16:00:49 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Pierrick Bouvier Subject: [PULL v2 68/75] hw/hexagon: Add hexagon TLB device implementation Date: Mon, 22 Jun 2026 15:28:57 -0700 Message-Id: <20260622222904.607771-69-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260622222904.607771-1-brian.cain@oss.qualcomm.com> References: <20260622222904.607771-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: DPdBg9CTZhGS88v8dodAaOPshl5K93Nb X-Authority-Analysis: v=2.4 cv=VKXtWdPX c=1 sm=1 tr=0 ts=6a39bea2 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=eoimf2acIAo5FJnRuUoq:22 a=EUspDBNiAAAA:8 a=PVkRrmxsJ_TG981LwpgA:9 a=QEXdDO2ut3YA:10 a=Fk4IpSoW4aLDllm1B1p-:22 X-Proofpoint-ORIG-GUID: DPdBg9CTZhGS88v8dodAaOPshl5K93Nb X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjIyMDIyMSBTYWx0ZWRfX/oIKZ+ZTVf7r pnoUSNnGpX9qaST73t2dO0Ia12YOGcCj2yOcv/hsuj7TL9d+iiPM2gfDTPu+Qi/GKoLZ5ZGQOtE 05sozqDmRIotLlLWg0bcqeZOv/XvQEsqi+XhY/vkCwl8riC2wA7+7mDwWtrgdxVnxim5UJuYuWb u9MxBUNqudhUo+rkrtN+ufAJqXkP0/ynf5dgrirdlTWvfobt67Wn4KFaokSvv4t0B37cnfyChgq +Ce5P3k8n5A8TIa52I7iyzoXnGHdHiPqB/rWSKhXkz8ZKywGAO5y809ucCGEE62qeOOc4upEnWh eajHQgH35LO3GxkG0aLDBX3V7ENI8ALwuqJs4cJh/8LPk33CEU/zOb0kNaGQXkuTsmkxoGGGjny zhJ0TjRlhtWaD34SFD0g6M7idfMBvAdcFQoy5Bs3EaE69pRdepy6O4joZI3G71+pS82cJmfT5hy XPm3TGNGl/nibR+GWCA== X-Proofpoint-Spam-Info: AW1haW4tMjYwNjIyMDIyMSBTYWx0ZWRfX8Wdwd/sdZdrK 5fOU4uYjO99o02WbDOjVZpOmzemh1Yn9WINIi/Joz8tu3PVgGIshSI7xoDYgt7f1SOZae8Lss5b TM7Gcqy57mQeQuUbJevItRNDL5uaaxU= 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-22_04,2026-06-22_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 spamscore=0 phishscore=0 priorityscore=1501 adultscore=0 suspectscore=0 clxscore=1015 lowpriorityscore=0 malwarescore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606220221 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H2=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782169315929158500 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 Tue Jun 23 20:53:54 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=1782169427; cv=none; d=zohomail.com; s=zohoarc; b=DBVMLnqo/MPktFnNXnFcSv+n/Flt9adPLkRuwlhWB/wEIBmIhCdCmFQbI6mNuzV5AtBsfqsAQPtaw1qRg0OA+zwCwWhrLQ20TsWHAQVOn273VwENTNSW1Lz4BOeVk7Nz/JHobEeVNi+E2cl4AePubA2RYF5CpMsRQh3sMEMxlok= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782169427; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=l0ub0LQTusEky/jbhnJx1qS1ayN/zdRG9RpvcebfSnY=; b=R0xvA371hgwMn9UF1gskUzc1p11y20B8Xn545cHUKrrEwsUVZBqUyWLOCQsalZVPS0L+h1YxY9ZYIAlw8xLWjWMxs639obb9n9BddnNPabp19ObSN+bB965W5lR9/dgujzml3HOvz/D0l2dBLsfD764eid/w2bVEF4XO0LdJH8M= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782169427475381.7762333198889; Mon, 22 Jun 2026 16:03:47 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wbndV-0003Ae-2o; Mon, 22 Jun 2026 19:01: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 1wbndQ-00038L-Ve for qemu-devel@nongnu.org; Mon, 22 Jun 2026 19:00: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 1wbndO-0002bJ-0B for qemu-devel@nongnu.org; Mon, 22 Jun 2026 19:00:56 -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 65MJZicx1629262 for ; Mon, 22 Jun 2026 23:00:52 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 4ey3cq2hav-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 22 Jun 2026 23:00:52 +0000 (GMT) Received: by mail-dy1-f198.google.com with SMTP id 5a478bee46e88-30bcb065bfdso9029539eec.0 for ; Mon, 22 Jun 2026 16:00: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-139add73a44sm9128726c88.13.2026.06.22.16.00.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 22 Jun 2026 16:00: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= l0ub0LQTusEky/jbhnJx1qS1ayN/zdRG9RpvcebfSnY=; b=ZMymGl4HZ4gdJSLf B7TaNeive1m7cpl2lxQIGtWhlnMz55yuIWKFTIknoJWKscjK8ttvp8AZd9yjw9sD k8zkKyRA92xROxI+AzQSLIQStezi34P7RX5RF5fdDjl6lPyw9bQW/6QUqzfc43Ey DSdXc71I8M46lr4RrU6lx0X6MTm8e/QH132hnRo9HAm6UdbbCNmDj2ggXK1e6iOn n1MyGQPLsyr4q6sqv1eoJLPjC3M+xQxWmlvn8OZsFtUL/QEmuo/LQpJWAXggUy5U dxyRXGcFDqtrHMTVzfNgv6ZOwmYgw6KOMjfYdczb0fxUTfnabtWNk+eLA0Eq6zxs IT6thA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782169252; x=1782774052; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=l0ub0LQTusEky/jbhnJx1qS1ayN/zdRG9RpvcebfSnY=; b=MJ+K8ReV1u7NDEngRGKDaANpNimq+pFLuUzrvsHA+2PiXe9G25XxhtF57pkT9F5M4P ossmxIFqbbnQ34TnQy8Y/ovPC8AAf0njjua4egoCbztlOqEBTioVtyK3mSqsnirk5oCU ctsGQCaFQWicOVIOG+/beAc/QzXK7COucQRtVN9qSIrSYDGPTbnMCyRV/2CuGE2v6KRE xgVY0f5zo8BNuFQWfco8vUVdHW+JO3lq0dz4cjY9jWljPdDYQOiy5up7cFM/krO8iLtL x/jyZv6FzFdNalUlojXtpmaEV9dc3K639p+6xh1R/BkGjLgT6boWjqna5ljGSh4Uotzm 2vlA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782169252; x=1782774052; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=l0ub0LQTusEky/jbhnJx1qS1ayN/zdRG9RpvcebfSnY=; b=L6/uQj+0duWsruNFIMUSojuCRicuIx3KEPjdOpMUn+NGStjgFEXCo+6wdr7lhJFEX2 lvrmV2BIx2IqjsDBh/cK1zYWZ7tjoDhuc0SMcLAlqu9drDXKQseFNB+L/1CxVYPiqsVr 5A5mZWJLm1xyk9bSsCZpiafJsaeLXbVLNFK0uog/HwdqYIf+qZQ64QXfDXy3+lwQOvJB LC2kbKdtOJ4bCljz0SvriZdbF2h59/V78PNaUNohlhfXJqe6g3sfva0rVwgOlrtSb5vy 1DKP2wbBQz9iIOzUB0ZxxpkZDlVDbWzqxCXzCO5iwhVdRZzYa35etVMLfcCoXzyUjAZ/ LL3Q== X-Gm-Message-State: AOJu0YxFaLIuVSpKb3oK8Y2VoGz5rGcIb2dybs+zca5gHRFF/A7kJP4j ucbDVd3qGGEsRXao+aKGRdurWNmNA6vAAkSYKETyCy9pUb9D+XFMrAlN+92a3OB/eY2MRvM1YO/ YLaqsdqPRkxTnknbKy00JEqkaVRHMTY1gkUirD7LWf01us9bpZyt0OH9jA4H41ebAow== X-Gm-Gg: AfdE7cn73gbRJua9PO9gRwqX+CWb3ddZOBw2P2IkLnx1Ui0o5Tsf8VkODkCU8vE7J7K EEyOW72e9bkb16q8rRiaBZ1Zl7QPTFhmEN2RZzpfO2TJ2Vifl0bnowCn9STvwvojYU/tSOVnSoc Y3MIxFNFs9NmOGV1zhJkpaXlkVoTVHHpLHL+FUjPsIkqbdljvm7LhzYwRHTG/bPfsxmE+5bPFMK vcpBMpF/MtTEQ0Szk9B6IppRiFJMWP+siWjwZbyDjZSVQhUJeXpphu3l7xJ5qG90PRxlakKpl+P TxrlNWJW8au9kP3LIA9osgiB/C9QBhq7gpjK0mUwc9UBg+NASVKoX8oEGFSL7tDUdWzbohEb85a S47W5Y3chZ6Q14NGqyQ66AA0c55sQYTz0PcMQat/x8ZCPKzZyePwFLVvGrYI= X-Received: by 2002:a05:7022:239f:b0:135:5d4b:2096 with SMTP id a92af1059eb24-139c5e23e9bmr265811c88.36.1782169251594; Mon, 22 Jun 2026 16:00:51 -0700 (PDT) X-Received: by 2002:a05:7022:239f:b0:135:5d4b:2096 with SMTP id a92af1059eb24-139c5e23e9bmr265774c88.36.1782169250922; Mon, 22 Jun 2026 16:00:50 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Markus Armbruster , Mike Lambert , Sid Manning , Pierrick Bouvier , Paolo Bonzini , =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= Subject: [PULL v2 69/75] hw/hexagon: Add machine configs for sysemu Date: Mon, 22 Jun 2026 15:28:58 -0700 Message-Id: <20260622222904.607771-70-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260622222904.607771-1-brian.cain@oss.qualcomm.com> References: <20260622222904.607771-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: z-MnHGApl1gZOYUeNR7TzE0pBaYZ2mC1 X-Authority-Analysis: v=2.4 cv=VKXtWdPX c=1 sm=1 tr=0 ts=6a39bea4 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=20KFwNOVAAAA:8 a=EUspDBNiAAAA:8 a=eE4CN_At-pr7qPS3jZsA:9 a=hiJlUhq8NronkB9Q:21 a=QEXdDO2ut3YA:10 a=bBxd6f-gb0O0v-kibOvt:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: z-MnHGApl1gZOYUeNR7TzE0pBaYZ2mC1 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjIyMDIyMSBTYWx0ZWRfXzfb7btq1U+ip vqbDN8mdewroTDsqnlLOId//KbtvQOdrgtFuEL13bib9H9ibs/HVnmLAcDtKDwao/zayC/Xgx36 m5Fpp2PGAbgHwUNoWMXHpWTiQGfyxMEffyZzCml1quAztuKtN6ijYuAQZkvzhBJf4KxAhvOkRMM dv9t1RNZvh/eCvLSLouGbATsCVw2RdwfEzYlyQJ3HA0aPf3gTjAAYY7nj18rQEyaVi+mtzr9X9E XnjlYGOiErlSvBTKIvO1iSSgSyQVlcqcwA32ccaJTQ27M/5ON0EILnkQ4so5dMxx+MmIdd7nSgH VrSjXX41TKWUIQF6OkjqZfpfFGQYOb+Y5IHWG0evZTgAGTn7/q9ZwCUR3W+ZCTh7FxV1+0dpIVN oXfe5CqobOlpqqpvjSAQFyNsjVF3Ll3ymCLr1GOjYuFqKQmoFTUl/9npqKjx0erxIoMcWTm1goY WdLrduDeHMDuuNMjFaA== X-Proofpoint-Spam-Info: AW1haW4tMjYwNjIyMDIyMSBTYWx0ZWRfX5KXKNQF8scgH yIQJzAYBieTHu+ecE+7Wz+SIqdiam/WoVggGMm4FmCPndGMYZhN9fOVmCkunnALnA7OXjt2vaK7 3z13eXg2daeaUwsl48nZ59NSeWyX/8E= 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-22_04,2026-06-22_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 spamscore=0 phishscore=0 priorityscore=1501 adultscore=0 suspectscore=0 clxscore=1015 lowpriorityscore=0 malwarescore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606220221 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H2=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782169428528158500 From: Brian Cain Some header includes are modified here: these are uniquely required for basic system emulation functionality and had not been required for linux-us= er. Acked-by: Markus Armbruster Co-authored-by: Mike Lambert Co-authored-by: Sid Manning Reviewed-by: Pierrick Bouvier Signed-off-by: Brian Cain --- MAINTAINERS | 12 ++ include/hw/hexagon/hexagon.h | 161 ++++++++++++++++++ hw/hexagon/machine_cfg_v66g_1024.h.inc | 64 +++++++ hw/hexagon/hexagon_dsp.c | 221 +++++++++++++++++++++++++ system/qdev-monitor.c | 2 +- target/hexagon/translate.c | 1 + hw/Kconfig | 1 + hw/hexagon/Kconfig | 4 + hw/hexagon/meson.build | 6 + hw/meson.build | 1 + 10 files changed, 472 insertions(+), 1 deletion(-) create mode 100644 include/hw/hexagon/hexagon.h create mode 100644 hw/hexagon/machine_cfg_v66g_1024.h.inc create mode 100644 hw/hexagon/hexagon_dsp.c create mode 100644 hw/hexagon/Kconfig create mode 100644 hw/hexagon/meson.build diff --git a/MAINTAINERS b/MAINTAINERS index 9d195e56ce9..44063d6e13b 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -1344,6 +1344,18 @@ F: pc-bios/hppa-firmware.img F: roms/seabios-hppa/ F: tests/functional/hppa/ =20 +Hexagon Machines +---------------- +V66G_1024, V68N_1024, sa8775-cdsp0 +M: Brian Cain +R: Pierrick Bouvier +S: Supported +F: hw/hexagon/ +F: include/hw/hexagon/ +F: configs/devices/hexagon-softmmu/default.mak +F: docs/system/hexagon/ +F: docs/devel/hexagon-sys.rst + LoongArch Machines ------------------ Virt diff --git a/include/hw/hexagon/hexagon.h b/include/hw/hexagon/hexagon.h new file mode 100644 index 00000000000..1034b09c2ac --- /dev/null +++ b/include/hw/hexagon/hexagon.h @@ -0,0 +1,161 @@ +/* + * Hexagon Baseboard System emulation. + * + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. + * SPDX-License-Identifier: GPL-2.0-or-later + */ + + +#ifndef HW_HEXAGON_H +#define HW_HEXAGON_H + +#include "system/memory.h" +#include "hw/core/boards.h" + +struct hexagon_board_boot_info { + uint64_t ram_size; + const char *kernel_filename; + uint32_t kernel_elf_flags; +}; + +typedef enum { + unknown_rev =3D 0, + v66_rev =3D 0xa666, + v67_rev =3D 0x2667, + v68_rev =3D 0x8d68, + v69_rev =3D 0x8c69, + v71_rev =3D 0x8c71, + v73_rev =3D 0x8c73, + v73m_rev =3D 0xcc73, +} Rev_t; +#define HEXAGON_LATEST_REV v73 +#define HEXAGON_LATEST_REV_UPPER V73 + +/* + * Config table address bases represent bits [35:16]. + */ +#define HEXAGON_CFG_ADDR_BASE(addr) (((addr) >> 16) & 0x0fffff) + +#define HEXAGON_CFGSPACE_ENTRIES (128) + +union hexagon_config_table { + struct { + /* Base address of L2TCM space */ + uint32_t l2tcm_base; + uint32_t reserved0; + /* Base address of subsystem space */ + uint32_t subsystem_base; + /* Base address of ETM space */ + uint32_t etm_base; + /* Base address of L2 configuration space */ + uint32_t l2cfg_base; + uint32_t reserved1; + /* Base address of L1S */ + uint32_t l1s0_base; + /* Base address of AXI2 */ + uint32_t axi2_lowaddr; + /* Base address of streamer base */ + uint32_t streamer_base; + uint32_t reserved2; + /* Base address of fast L2VIC */ + uint32_t fastl2vic_base; + /* Number of entries in JTLB */ + uint32_t jtlb_size_entries; + /* Coprocessor type */ + uint32_t coproc_present; + /* Number of extension execution contexts available */ + uint32_t ext_contexts; + /* Base address of Hexagon Vector Tightly Coupled Memory (VTCM) */ + uint32_t vtcm_base; + /* Size of VTCM (in KB) */ + uint32_t vtcm_size_kb; + /* L2 tag size */ + uint32_t l2tag_size; + /* Amount of physical L2 memory in released version */ + uint32_t l2ecomem_size; + /* Hardware threads available on the core */ + uint32_t thread_enable_mask; + /* Base address of the ECC registers */ + uint32_t eccreg_base; + /* L2 line size */ + uint32_t l2line_size; + /* Small Core processor (also implies audio extension) */ + uint32_t tiny_core; + /* Size of L2TCM */ + uint32_t l2itcm_size; + /* Base address of L2-ITCM */ + uint32_t l2itcm_base; + uint32_t reserved3; + /* DTM is present */ + uint32_t dtm_present; + /* Version of the DMA */ + uint32_t dma_version; + /* Native HVX vector length in log of bytes */ + uint32_t hvx_vec_log_length; + /* Core ID of the multi-core */ + uint32_t core_id; + /* Number of multi-core cores */ + uint32_t core_count; + uint32_t coproc2_reg0; + uint32_t coproc2_reg1; + /* Supported HVX vector length */ + uint32_t v2x_mode; + uint32_t coproc2_reg2; + uint32_t coproc2_reg3; + uint32_t coproc2_reg4; + uint32_t coproc2_reg5; + uint32_t coproc2_reg6; + uint32_t coproc2_reg7; + /* Voltage droop mitigation technique parameter */ + uint32_t acd_preset; + /* Voltage droop mitigation technique parameter */ + uint32_t mnd_preset; + /* L1 data cache size (in KB) */ + uint32_t l1d_size_kb; + /* L1 instruction cache size in (KB) */ + uint32_t l1i_size_kb; + /* L1 data cache write policy: see HexagonL1WritePolicy */ + uint32_t l1d_write_policy; + /* VTCM bank width */ + uint32_t vtcm_bank_width; + uint32_t reserved4; + uint32_t reserved5; + uint32_t reserved6; + uint32_t coproc2_cvt_mpy_size; + uint32_t consistency_domain; + uint32_t capacity_domain; + uint32_t axi3_lowaddr; + uint32_t coproc2_int8_subcolumns; + uint32_t corecfg_present; + uint32_t coproc2_fp16_acc_exp; + uint32_t AXIM2_secondary_base; + }; + uint32_t raw[HEXAGON_CFGSPACE_ENTRIES]; +}; + +struct hexagon_machine_config { + /* Base address of config table */ + uint32_t cfgbase; + /* Size of L2 TCM */ + uint32_t l2tcm_size; + /* Base address of L2VIC */ + uint32_t l2vic_base; + /* Size of L2VIC region */ + uint32_t l2vic_size; + /* QTimer csr base */ + uint32_t csr_base; + uint32_t qtmr_region; + union hexagon_config_table cfgtable; +}; + +#define TYPE_HEXAGON_COMMON_MACHINE "hexagon-common-machine" +OBJECT_DECLARE_SIMPLE_TYPE(HexagonCommonMachineState, HEXAGON_COMMON_MACHI= NE) + +struct HexagonCommonMachineState { + MachineState parent_obj; + + MemoryRegion ram; + MemoryRegion cfgtable_rom; +}; + +#endif diff --git a/hw/hexagon/machine_cfg_v66g_1024.h.inc b/hw/hexagon/machine_cf= g_v66g_1024.h.inc new file mode 100644 index 00000000000..cc4d89b89c9 --- /dev/null +++ b/hw/hexagon/machine_cfg_v66g_1024.h.inc @@ -0,0 +1,64 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +static const struct hexagon_machine_config v66g_1024 =3D { + .cfgbase =3D 0xd8180000, + .l2tcm_size =3D 0x00000000, + .l2vic_base =3D 0xfc910000, + .l2vic_size =3D 0x00001000, + .csr_base =3D 0xfc900000, + .qtmr_region =3D 0xfc921000, + .cfgtable =3D { + .l2tcm_base =3D 0x0000d800, + .reserved0 =3D 0x0000d400, + .subsystem_base =3D 0x0000fc90, + .etm_base =3D 0x0000d805, + .l2cfg_base =3D 0x0000d81a, + .reserved1 =3D 0x00000000, + .l1s0_base =3D 0x0000d820, + .axi2_lowaddr =3D 0x00003000, + .streamer_base =3D 0x00000000, + .reserved2 =3D 0x0000d819, + .fastl2vic_base =3D 0x0000d81e, + .jtlb_size_entries =3D 0x00000080, + .coproc_present =3D 0x00000001, + .ext_contexts =3D 0x00000004, + .vtcm_base =3D 0x0000d820, + .vtcm_size_kb =3D 0x00000100, + .l2tag_size =3D 0x00000400, + .l2ecomem_size =3D 0x00000400, + .thread_enable_mask =3D 0x0000000f, + .eccreg_base =3D 0x0000d81f, + .l2line_size =3D 0x00000080, + .tiny_core =3D 0x00000000, + .l2itcm_size =3D 0x00000000, + .l2itcm_base =3D 0x0000d820, + .reserved3 =3D 0x00000000, + .dtm_present =3D 0x00000000, + .dma_version =3D 0x00000000, + .hvx_vec_log_length =3D 0x00000080, + .core_id =3D 0x00000000, + .core_count =3D 0x00000000, + .coproc2_reg0 =3D 0x00000000, + .coproc2_reg1 =3D 0x00000000, + .v2x_mode =3D 0x00000000, + .coproc2_reg2 =3D 0x00000000, + .coproc2_reg3 =3D 0x00000000, + .coproc2_reg4 =3D 0x00000000, + .coproc2_reg5 =3D 0x00000000, + .coproc2_reg6 =3D 0x00000000, + .coproc2_reg7 =3D 0x00000000, + .acd_preset =3D 0x00000000, + .mnd_preset =3D 0x00000000, + .l1d_size_kb =3D 0x00000000, + .l1i_size_kb =3D 0x00000000, + .l1d_write_policy =3D 0x00000000, + .vtcm_bank_width =3D 0x00000000, + .reserved4 =3D 0x00000000, + .reserved5 =3D 0x00000000, + .reserved6 =3D 0x00000000, + .coproc2_cvt_mpy_size =3D 0x00000000, + .consistency_domain =3D 0x00000000, + .capacity_domain =3D 0x00000000, + .axi3_lowaddr =3D 0x00000000, + }, +}; diff --git a/hw/hexagon/hexagon_dsp.c b/hw/hexagon/hexagon_dsp.c new file mode 100644 index 00000000000..ac01d359928 --- /dev/null +++ b/hw/hexagon/hexagon_dsp.c @@ -0,0 +1,221 @@ +/* + * Hexagon DSP Subsystem emulation. This represents a generic DSP + * subsystem with few peripherals, like the Compute DSP. + * + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + + +#include "qemu/osdep.h" +#include "qemu/units.h" +#include "system/address-spaces.h" +#include "hw/core/boards.h" +#include "hw/core/qdev-properties.h" +#include "hw/hexagon/hexagon.h" +#include "hw/hexagon/hexagon_globalreg.h" +#include "hw/hexagon/hexagon_tlb.h" +#include "hw/core/loader.h" +#include "qapi/error.h" +#include "qemu/error-report.h" +#include "qemu/log.h" +#include "elf.h" +#include "cpu.h" +#include "migration/cpu.h" +#include "system/system.h" +#include "target/hexagon/internal.h" +#include "system/physmem.h" +#include "system/reset.h" + +#include "machine_cfg_v66g_1024.h.inc" + +#define TYPE_HEXAGON_DSP_MACHINE "hexagon-dsp-machine" +OBJECT_DECLARE_SIMPLE_TYPE(HexagonDspMachineState, HEXAGON_DSP_MACHINE) + +struct HexagonDspMachineState { + HexagonCommonMachineState parent_obj; + + hwaddr isdb_secure_flag; + hwaddr isdb_trusted_flag; +}; + +static HexagonDspMachineState *current_dms; + +static void hex_symbol_callback(const char *st_name, int st_info, + uint64_t st_value, uint64_t st_size) +{ + if (!g_strcmp0("isdb_secure_flag", st_name)) { + current_dms->isdb_secure_flag =3D st_value; + } + if (!g_strcmp0("isdb_trusted_flag", st_name)) { + current_dms->isdb_trusted_flag =3D st_value; + } +} + +/* Board init. */ +static struct hexagon_board_boot_info hexagon_binfo; + +static void hexagon_load_kernel(HexagonDspMachineState *dms, HexagonCPU *c= pu) +{ + uint64_t pentry; + long kernel_size; + + current_dms =3D dms; + kernel_size =3D load_elf_ram_sym(hexagon_binfo.kernel_filename, NULL, = NULL, + NULL, &pentry, NULL, NULL, + &hexagon_binfo.kernel_elf_flags, 0, EM_HEXAGON, 0, 0, + &address_space_memory, false, hex_symbol_callback); + current_dms =3D NULL; + + if (kernel_size <=3D 0) { + error_report("no kernel file '%s'", + hexagon_binfo.kernel_filename); + exit(1); + } + + qdev_prop_set_uint32(DEVICE(cpu), "exec-start-addr", pentry); +} + +static void hexagon_init_bootstrap(HexagonDspMachineState *dms, HexagonCPU= *cpu) +{ + MachineState *machine =3D MACHINE(dms); + + if (machine->kernel_filename) { + uint32_t mem =3D 1; + + hexagon_load_kernel(dms, cpu); + if (dms->isdb_secure_flag) { + physical_memory_write(dms->isdb_secure_flag, + &mem, sizeof(mem)); + } + if (dms->isdb_trusted_flag) { + physical_memory_write(dms->isdb_trusted_flag, + &mem, sizeof(mem)); + } + } +} + +static void do_cpu_reset(void *opaque) +{ + HexagonCPU *cpu =3D opaque; + CPUState *cs =3D CPU(cpu); + cpu_reset(cs); +} + +static void hexagon_common_init(MachineState *machine, Rev_t rev, + const struct hexagon_machine_config *m_cfg) +{ + HexagonCommonMachineState *hms =3D HEXAGON_COMMON_MACHINE(machine); + HexagonDspMachineState *dms =3D HEXAGON_DSP_MACHINE(machine); + MemoryRegion *address_space; + DeviceState *glob_regs_dev; + DeviceState *tlb_dev; + + memset(&hexagon_binfo, 0, sizeof(hexagon_binfo)); + if (machine->kernel_filename) { + hexagon_binfo.ram_size =3D machine->ram_size; + hexagon_binfo.kernel_filename =3D machine->kernel_filename; + } + + machine->enable_graphics =3D 0; + + address_space =3D get_system_memory(); + + memory_region_init_rom(&hms->cfgtable_rom, NULL, "config_table.rom", + sizeof(m_cfg->cfgtable), &error_fatal); + memory_region_add_subregion(address_space, m_cfg->cfgbase, + &hms->cfgtable_rom); + + memory_region_init_ram(&hms->ram, NULL, "ddr.ram", + machine->ram_size, &error_fatal); + memory_region_add_subregion(address_space, 0x0, &hms->ram); + + glob_regs_dev =3D qdev_new(TYPE_HEXAGON_GLOBALREG); + object_property_add_child(OBJECT(machine), "global-regs", + OBJECT(glob_regs_dev)); + qdev_prop_set_uint64(glob_regs_dev, "config-table-addr", m_cfg->cfgbas= e); + qdev_prop_set_uint32(glob_regs_dev, "dsp-rev", rev); + sysbus_realize_and_unref(SYS_BUS_DEVICE(glob_regs_dev), &error_fatal); + + tlb_dev =3D qdev_new(TYPE_HEXAGON_TLB); + object_property_add_child(OBJECT(machine), "tlb", OBJECT(tlb_dev)); + qdev_prop_set_uint32(tlb_dev, "num-entries", + m_cfg->cfgtable.jtlb_size_entries); + sysbus_realize_and_unref(SYS_BUS_DEVICE(tlb_dev), &error_fatal); + + for (int i =3D 0; i < machine->smp.cpus; i++) { + HexagonCPU *cpu =3D HEXAGON_CPU(object_new(machine->cpu_type)); + qemu_register_reset(do_cpu_reset, cpu); + + /* + * CPU #0 is the only CPU running at boot, others must be + * explicitly enabled via start instruction. + */ + qdev_prop_set_bit(DEVICE(cpu), "start-powered-off", (i !=3D 0)); + if (i =3D=3D 0) { + hexagon_init_bootstrap(dms, cpu); + } + object_property_set_link(OBJECT(cpu), "global-regs", + OBJECT(glob_regs_dev), &error_fatal); + object_property_set_link(OBJECT(cpu), "tlb", + OBJECT(tlb_dev), &error_fatal); + qdev_realize_and_unref(DEVICE(cpu), NULL, &error_fatal); + } +} + +static void init_mc(MachineClass *mc) +{ + mc->block_default_type =3D IF_SD; + mc->default_ram_size =3D 4 * GiB; + mc->no_parallel =3D 1; + mc->no_floppy =3D 1; + mc->no_cdrom =3D 1; + mc->no_serial =3D 1; + mc->is_default =3D false; + mc->max_cpus =3D 8; +} + +/* ----------------------------------------------------------------- */ +/* Core-specific configuration settings are defined below this line. */ +/* Config table values defined in machine_configs.h.inc */ +/* ----------------------------------------------------------------- */ + +static void v66g_1024_config_init(MachineState *machine) +{ + hexagon_common_init(machine, v66_rev, &v66g_1024); +} + +static void v66g_1024_init(ObjectClass *oc, const void *data) +{ + MachineClass *mc =3D MACHINE_CLASS(oc); + + mc->desc =3D "Hexagon V66G_1024"; + mc->init =3D v66g_1024_config_init; + init_mc(mc); + mc->is_default =3D true; + mc->default_cpu_type =3D TYPE_HEXAGON_CPU_V66; + mc->default_cpus =3D 4; +} + +static const TypeInfo hexagon_machine_types[] =3D { + { + .name =3D TYPE_HEXAGON_COMMON_MACHINE, + .parent =3D TYPE_MACHINE, + .instance_size =3D sizeof(HexagonCommonMachineState), + .abstract =3D true, + }, + { + .name =3D TYPE_HEXAGON_DSP_MACHINE, + .parent =3D TYPE_HEXAGON_COMMON_MACHINE, + .instance_size =3D sizeof(HexagonDspMachineState), + .abstract =3D true, + }, + { + .name =3D MACHINE_TYPE_NAME("V66G_1024"), + .parent =3D TYPE_HEXAGON_DSP_MACHINE, + .class_init =3D v66g_1024_init, + }, +}; + +DEFINE_TYPES(hexagon_machine_types) diff --git a/system/qdev-monitor.c b/system/qdev-monitor.c index dfc95a08c10..00fed791cce 100644 --- a/system/qdev-monitor.c +++ b/system/qdev-monitor.c @@ -71,7 +71,7 @@ typedef struct QDevAlias QEMU_ARCH_SPARC | \ QEMU_ARCH_XTENSA) #define QEMU_ARCH_VIRTIO_CCW (QEMU_ARCH_S390X) -#define QEMU_ARCH_VIRTIO_MMIO (QEMU_ARCH_M68K) +#define QEMU_ARCH_VIRTIO_MMIO (QEMU_ARCH_M68K | QEMU_ARCH_HEXAGON) =20 /* Please keep this table sorted by typename. */ static const QDevAlias qdev_alias_table[] =3D { diff --git a/target/hexagon/translate.c b/target/hexagon/translate.c index e0418ee990d..77235916f4b 100644 --- a/target/hexagon/translate.c +++ b/target/hexagon/translate.c @@ -32,6 +32,7 @@ #include "translate.h" #include "genptr.h" #include "printinsn.h" +#include "exec/target_page.h" =20 #define HELPER_H "helper.h" #include "exec/helper-info.c.inc" diff --git a/hw/Kconfig b/hw/Kconfig index c109f5537b2..c92ca2b13a3 100644 --- a/hw/Kconfig +++ b/hw/Kconfig @@ -53,6 +53,7 @@ source arm/Kconfig source cpu/Kconfig source alpha/Kconfig source avr/Kconfig +source hexagon/Kconfig source hppa/Kconfig source i386/Kconfig source loongarch/Kconfig diff --git a/hw/hexagon/Kconfig b/hw/hexagon/Kconfig new file mode 100644 index 00000000000..cdf7770a305 --- /dev/null +++ b/hw/hexagon/Kconfig @@ -0,0 +1,4 @@ +config HEX_DSP + bool + default y + depends on HEXAGON diff --git a/hw/hexagon/meson.build b/hw/hexagon/meson.build new file mode 100644 index 00000000000..f528d2bc4ab --- /dev/null +++ b/hw/hexagon/meson.build @@ -0,0 +1,6 @@ +hexagon_ss =3D ss.source_set() +hexagon_ss.add(files('hexagon_tlb.c')) +hexagon_ss.add(files('hexagon_globalreg.c')) +hexagon_ss.add(when: 'CONFIG_HEX_DSP', if_true: files('hexagon_dsp.c')) + +hw_arch +=3D {'hexagon': hexagon_ss} diff --git a/hw/meson.build b/hw/meson.build index ef65ba51950..7fa81db453e 100644 --- a/hw/meson.build +++ b/hw/meson.build @@ -3,6 +3,7 @@ subdir('alpha') subdir('arm') subdir('avr') subdir('hppa') +subdir('hexagon') subdir('xenpv') # i386 uses it subdir('i386') subdir('loongarch') --=20 2.34.1 From nobody Tue Jun 23 20:53:54 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=1782169327; cv=none; d=zohomail.com; s=zohoarc; b=SZWcp4iNaALAOIhrj+xEzBfYo7396IG+lxU9qqGZkdoKX48qIwtxC7EzOUBraldFquSYQNv8ZBy1vMWQNIuFjBzNRrGerwlXeB3IkZktFy/S6avsJSpnOQZCioSa/LUS4dSVhkgTAA7bxpGjXcMGEL08tazHWfQZ51DMXsmL3Qw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782169327; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=H59yHYX/QB4nYfdzTuOV85Wghdkfd+Q1FyRwAv3AWf4=; b=YgGk9wAS6PYXSPdjXJPdyJKRbHq5E3YozvsHTo8QzNl9XO1/HCPpn0h1md0TVj19FgrUNJY7ncpaFZN+7/d6w0WThAO99E6yb2MjxjniqVV2wEeO6kSu89iL/oY2EgYLgp0ffN7GdFjiLWUwMts9WNx0aMRUYOzZ1Ek02ieuzT8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 178216932756261.71664690411296; Mon, 22 Jun 2026 16:02:07 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wbndX-0003Bm-3N; Mon, 22 Jun 2026 19:01: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 1wbndR-00038V-Il for qemu-devel@nongnu.org; Mon, 22 Jun 2026 19:00:58 -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 1wbndP-0002bj-Lm for qemu-devel@nongnu.org; Mon, 22 Jun 2026 19:00:57 -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 65MJZcbD178952 for ; Mon, 22 Jun 2026 23:00:54 GMT Received: from mail-dy1-f199.google.com (mail-dy1-f199.google.com [74.125.82.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ey2yhtmpt-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 22 Jun 2026 23:00:54 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-30c5319332eso1116999eec.1 for ; Mon, 22 Jun 2026 16:00:54 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-139add73a44sm9128726c88.13.2026.06.22.16.00.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 22 Jun 2026 16:00:51 -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=H59yHYX/QB4nYfdzTuOV85Wghdkfd+Q1FyRwAv3AWf4=; b=lZ 4FknOHznsOIzR8xmZL4O1yy71h9lPw3Nr2KOoE6f0GCR//opTBLcS+3yKDQB9c3y vZklzCVGe9MXIQukwX8KYJWrKDyJMJWU68/hEKo8YZf8w1EMXKyxiLyzx7xaO0MF VI8iz0co+8fgkClFL5kJfAKlKAsMi6hJY3fS0axXLKA3xngVRg2UVNZn7R1evOy0 IR47lnUvtaDQjdNkjbDTKBVopUY6/u7n36YL2pUSh0SuiRmKlR/M1zU8mwNxRYPA wD4UVgfcjyKyMZ60nG4ODqvAiowtfHu9dR531s/+fG0B93vGHR/zleJxgQ+GirzE Ca4SzAEDLPCWFuqSliyA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782169254; x=1782774054; 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=H59yHYX/QB4nYfdzTuOV85Wghdkfd+Q1FyRwAv3AWf4=; b=EA8BWENTebiA8hNAyshUJTrDA5YG6pcC1F1bp0zCZGs8Y5KIS0ZJsH3ZszilNbZc/R TifOWlglYHq7t08HZkDHSTRJHy9eliNugxWn3ICNmZ2UMm0O3igjHn6SK02rXjk7c4mP 7P9Xz3ai2GRyILO9cEmnEU/AGk1zZXNwBQnm5Mj4IV/kgOeKHV4yILFaIBf+grjsRXMB XN3E0nzPHP+EgOG4ELFCfcSmpVqML00Qm21qxAEY978F/PD1ekb3b38ZBGBufV3T4xJ6 BsFALuqUEc4YJFequgI7Prv8BQVjzH28m2/Iuw+V0jVZa5OUgjTgpvfWUytkC222MVZk 7bmg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782169254; x=1782774054; 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=H59yHYX/QB4nYfdzTuOV85Wghdkfd+Q1FyRwAv3AWf4=; b=ZIg+K8CfFZh92tZz+Qr++kTZP3tYqx/PmpdV6w7dAfDJPdNwP8STHUN1rYlR7IFjlf SB75l5ZZ94X8K5l23/J4isYOvLLICmrD79rKL7lMqfe9Yi41yvR4sILc6iZn+61aWISd aUfRBWLcQJPx1/gYmdBIWYwHv1KOuKQ9IboNNmL0TzBHWv+VEOgBN1vV6Au4dFG+G4vX osKEr/UP4iVqrI8ygPTD07mnIlU6c32Ds8xpChpNBPvmXZHRCjQRP3q9mFiuw8Q+Wz/D cvr9enR72HZ80D4Y/xDLsRstVq11ckwr4EFQCQ+NDg+g5oqfNhJtkX0hWkhm6bpdF/OF k+PQ== X-Gm-Message-State: AOJu0YwVPjsgV/BQ6UPzXMlJw4InLGbn9e3Dqt5uLXT0MCHLhKNpK7yy hdCbTHRPaw55h87KTnUlKmqTcSyOFUhBSmrOjqnuktOIjabLN7l8IN/iQhltEVcI1gxQTU/5/Up KY2HY3DhvMjmwLhZbXynMaF007PqtxZlqlqJ9sl+L/HzeGfMKk6MhUMNXCQ38UXID9w== X-Gm-Gg: AfdE7cm5ao8OG+UnecGIhM1jEgWeQbhK/1++Gb45wRMkvjdJMmqbrlK0prmYCCjrmY4 bcKnoWyQ1J5z2SDUVH2xCWkyNpS6TAQ2E3SQCJXq6gdy+NBTJjud0OlVNEa/qROgibR4ObIQnVw JqHMstGZGxQJ5ui+e4cpnlBE76GwfbMOl15mWqlAzh1wWzoFHZPxZd4KgaRNRRKfjMHuMcxiaJk gyD97BorDpXyTWJzy2qJ5IgX+qx45sem72T/Gd3kZVo3RKFs/HuAQect+M1G3JvQ0YW0efaZd9z ortfyLm28VC0fImOtjrY9nds/B3JA1drKvmwun9GzYLPrBJexoWJKMl8vOigHqxmhI8AsU6+Hot zpd22Ai/PPZ3B7Au5bnSCLWpGbxKbLZuVChLBxIjOZM0CScQkyz0MN+5ahsU= X-Received: by 2002:a05:7022:490:b0:137:567:14c4 with SMTP id a92af1059eb24-139a21526c7mr9086246c88.29.1782169253334; Mon, 22 Jun 2026 16:00:53 -0700 (PDT) X-Received: by 2002:a05:7022:490:b0:137:567:14c4 with SMTP id a92af1059eb24-139a21526c7mr9086218c88.29.1782169252680; Mon, 22 Jun 2026 16:00:52 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Pierrick Bouvier Subject: [PULL v2 70/75] hw/hexagon: Add v68, sa8775-cdsp0 defs Date: Mon, 22 Jun 2026 15:28:59 -0700 Message-Id: <20260622222904.607771-71-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260622222904.607771-1-brian.cain@oss.qualcomm.com> References: <20260622222904.607771-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-Spam-Info: AW1haW4tMjYwNjIyMDIyMSBTYWx0ZWRfX4AplawrFg+qG ZI4hms6lZcAKnJkt6mCgsfFSG7cmyVq0VWhqN/wOJOsviOicrWeSTRVZkTwg/fyErP1hqwqZZwG cVwpVTyhUQJnMpkbKiqGbK3C2h7YSDE= X-Proofpoint-ORIG-GUID: yRHiSLoPlE5Xg9J1POdEE7DtBMEFdYaD X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjIyMDIyMSBTYWx0ZWRfX3BWruv4l3IHb Y/hZ9BjJd/kzONf9R4G4hwBFQJi8LHX+baS2fdT4CpTWUY1uL/n4Y+jk8LnKwe2w9y40h63Ixe4 76JQqB64L3t6J+3TFBuNHouQK8fgI7P2d8AsPs9aiM/+4Bj6P4OHoOBBqES5JPBWQ6Wn36+v7QU WT8OKfqPt7vXrn1Qx2DbxO5w2e6t8PSq2/IjwPpeadV31XapR9cYHULgjBlBzqE/N65oL+YKZ7j 1Ywqgx5nZOe19/jXOky1Vc4WiecxKqEaieDB7yoIPXd3/xeAY6yRAjQepzHHLMd+HK8BPhhQKBU ZH5P7n9ZcjryXi9zyskC0bfFr91qc9dJaDUhls6C8hRh8FCmSkaTYIBlE48Cbg4ow3aatEDD5zg 2g47bkZxejvB6/Fw9EKDpj+dNDJAlZ1B/ZiaHautsrlX/5pu/NYjBeF0mR0g1DnR4QcKNbGQ++e dEhpYE/UM6uRsHBr2bw== X-Proofpoint-GUID: yRHiSLoPlE5Xg9J1POdEE7DtBMEFdYaD X-Authority-Analysis: v=2.4 cv=cKbQdFeN c=1 sm=1 tr=0 ts=6a39bea6 cx=c_pps a=cFYjgdjTJScbgFmBucgdfQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=Um2Pa8k9VHT-vaBCBUpS:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=KKAkSRfTAAAA:8 a=EUspDBNiAAAA:8 a=G5se95cPlkO2hgD9IGUA:9 a=QEXdDO2ut3YA:10 a=scEy_gLbYbu1JhEsrz4S:22 a=TjNXssC_j7lpFel5tvFf:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-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-22_04,2026-06-22_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 bulkscore=0 adultscore=0 phishscore=0 spamscore=0 lowpriorityscore=0 malwarescore=0 impostorscore=0 suspectscore=0 clxscore=1015 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606220221 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H2=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782169329934158500 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 | 65 +++++++++++++++++++++++ 2 files changed, 129 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..82619c42ac1 --- /dev/null +++ b/hw/hexagon/machine_cfg_v68n_1024.h.inc @@ -0,0 +1,65 @@ +/* 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 Tue Jun 23 20:53:54 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=1782169362; cv=none; d=zohomail.com; s=zohoarc; b=eyE/sZ0kpRO4vifSu6RT5j1QK1zQZPzByaAtTR/7wFIGqL6zaeeituualqLL0yXD9CpaBxm7HwdbxmzkpJwZ/4aVSA4zdRLa8f5ELBAapAplzXZjas3SOoXyd7qbo+BlHu4ZSU6WikaKaLx/Rvmf9DdFoNkKwdlF6W/nsKLbuQE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782169362; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=fIRG+wFOqiO1cSvx68OXmTtQ9+1ODHSjuV4piCw2/Jtik8Gjt72+vwebI09uT/dJZFMUfTFf00+H5sZjyWswkqZo9GgTXZ2tDBkf2Lj+ex5CPC+1egpbP9e9adsd0CD2rXN6nVh14izefFvrsbSz5AW/QwGPGDwuASnroiR8y1I= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782169362363876.0048620726478; Mon, 22 Jun 2026 16:02:42 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wbndW-0003BC-PM; Mon, 22 Jun 2026 19:01: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 1wbndS-00038Z-HZ for qemu-devel@nongnu.org; Mon, 22 Jun 2026 19:00:58 -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 1wbndR-0002bz-0l for qemu-devel@nongnu.org; Mon, 22 Jun 2026 19:00: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 65MJa1X91542081 for ; Mon, 22 Jun 2026 23:00:55 GMT Received: from mail-dy1-f197.google.com (mail-dy1-f197.google.com [74.125.82.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ey3a0tjha-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 22 Jun 2026 23:00:55 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-30c5319332eso1117030eec.1 for ; Mon, 22 Jun 2026 16:00: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-139add73a44sm9128726c88.13.2026.06.22.16.00.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 22 Jun 2026 16:00: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= rn3nrXF+9M3gB0m5jL2ztn1CUMGQuvNbgLv/5EwohVs=; b=YzOM4F1sWz57U4MG ljiaULtwZJnXGliG0h6cRvpivjU5N/1QR7KGcyt+AKKm9nE182xi5UozUnUrykKL 2HAW1sh2mFFxtpmjjbrTu5f30gcPgipojAYfloOeajfdsXGKiJHHvjlJVCZI1QEm sP8pTPhDr/BAFSbrXu9L/HP/P4eda1UJYJBa3WEuF1k8tMNTyQlsQCPBoGg97JP0 PRJTOC7dkAH6jJYVRDCp8JVopiYnItwN6R+r3pTvL4gb9t3EGDbsizyIRJx1dGWc H+HPWn1mTq1XAHsp2W6U5idtkIPZKw5OrZp4z3AVVR6Q1IUVZJCew9hdM6s3kTSh mMEKpg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782169255; x=1782774055; 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=flniaPjswQ0LxTekHxMalMyXu2KMJEm6ARmjcSdhrlKmTnfU4dwVycNGmjCBIawuCX oVh0AgoxEkxYc3Q5ygzpn1p3oN2VATkT9RlPvaPJz/D8BYVzTH8BTuEbsVt4NW+LH47T 887V2PVzGw7OouTRBDqkwQb0IN1uHpo1+JXCFvyEbPKvFIBIB1E/V4APR2s7pASqf7gn yMdNlNW5D1k5arptfm8vDZYUDKwP+ZfJW+04wZoVzIC+BAsrbFpvh8gdQM7zm2AaiC+/ qY/FlHmafxjTFdp1z7kJiQHd/pZNeMg6DNGBmkwjlPNfckG/iA80J5K1g1zSh4Yn73v9 A6xg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782169255; x=1782774055; 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=XrjWS1tSuwuEfXF6FYb7Djw4YLo169AV4xGME1tXtWwpWGWUwduTXO5DngvGd+fcTh I2JDUOLtxADoMHSlJXvsH6BAd95ZPhs3YSoT5GiGJZA7f3ZoVcxSFNwg4swg2HvLCIAS fYNyXVc1eBcezVzYGtj1+NPNTg5C3NpHwtMhqgBEieVAzaz/rgfaXQwCiHhp0IeRyeW9 np+b12nHm+NnNQ7zBCT6rWSORCCiA/nWeY/InHmxm4GMpULQkOsW/IXI5WJD8LSpojdB YrTaUHQQixutkKeeFfgYJNmlBkb0ac58Gad1NLfDtwwC106pIGuKDznhbz3bjKBJdtTU y5vg== X-Gm-Message-State: AOJu0Yx8xTV/W5STVyiOjNGGi8uBF/ixGvnuH1slso20F+q9WMAjmHcR 1ryTeFaQp0iM5jQP2ne8x0pY1BRm0TBwSA+1P+alT6g+xSn99F7oA4krWe/4r1iq1laemAduQrg 7mH39pCpyahuHR6pKuwvhUPTCMm/csVpND7ICufk3ScTIV1S/te4HFAR/QAXxsQOX2g== X-Gm-Gg: AfdE7cnk0NiowDjYKcSU0R/30dOE7yH/h7lblE8nxh89zczHETeRP44W4MJ6U1rkun7 U3n3Ve/W0eLPbR7n4L+nkZF6itt0bcnA3uJ6z+AVHsMyaq6dKPGcek6piaM/vQmU3TA2BARqXN7 uCLja8zpyg9+8XsQJYOtT/pr+I4l1SvUg/+SFSKRVKRXXfJAExiNczdx1+rrqVvjVpiYOgk+6hz vohgymwV6ZwKG8S/Jm4NQ0ZuQquLxC9OyKK3qSUmbIyeOKQJRC1WRRHbSTNUC8/LAbefG2lw06R A6Lwo8lc/dUzGcAYb7AhBf/AWYJ++W5VuMga6arxskUKneXCsEnW5bl90rYX056URpDQAuE36hG OMmdonB+9jIMEzdRlv10EGdpQL+YEzPvoRnkethZXvx4+JoikOSAp04qXQXk= X-Received: by 2002:a05:7022:e995:b0:137:fe07:8a2d with SMTP id a92af1059eb24-139a2035cf9mr10308002c88.6.1782169254839; Mon, 22 Jun 2026 16:00:54 -0700 (PDT) X-Received: by 2002:a05:7022:e995:b0:137:fe07:8a2d with SMTP id a92af1059eb24-139a2035cf9mr10307962c88.6.1782169254162; Mon, 22 Jun 2026 16:00:54 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Sid Manning , Taylor Simpson , Pierrick Bouvier Subject: [PULL v2 71/75] hw/hexagon: Add support for cfgbase Date: Mon, 22 Jun 2026 15:29:00 -0700 Message-Id: <20260622222904.607771-72-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260622222904.607771-1-brian.cain@oss.qualcomm.com> References: <20260622222904.607771-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: AW1haW4tMjYwNjIyMDIyMSBTYWx0ZWRfX35udEXzKReum TBfQU8BOJNOBNk64U0fxAzW/45zL/zQSNVylNhzCVYL4Jr01VkvCb4VWvabFg7K2++6PthGbW/E GjjsSppVbC1tTDKc3BiI5OGONXpMeZQ= X-Proofpoint-GUID: z0fgKZYyfGrZJgoHHxbp96vtnbQ_6cEJ X-Authority-Analysis: v=2.4 cv=UJ7t2ify c=1 sm=1 tr=0 ts=6a39bea7 cx=c_pps a=Uww141gWH0fZj/3QKPojxA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_K5XuSEh1TEqbUxoQ0s3:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=7umkzkyUMl8fFcUskJ4A:9 a=QEXdDO2ut3YA:10 a=PxkB5W3o20Ba91AHUih5:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjIyMDIyMSBTYWx0ZWRfX3srmF1b69qb8 a2DcgK72a1CMNHLg0WnFlhI80/RD02F5MWHcU0LdNzhDD02UllAMkrF+WgZBbsdLJqGcOhTitdO 2UtUJd8xuJExqw4qG0fwNDijwf+o4SpaXEBP0BzzIPysWXS8uiuUJqNFPzbJ2P2yb6GkVi/AioZ +8CnaF18jjWWS2Spyy9VGDmrFpLn4n4hhN/HSishGb2oov5P4n/9jYCXIIxJ/yaexBDiyojGiph MRL7/PE8Z3kSEbgRtjd4qaJ+q827uTUAAXCQodMIXyH65nTBpUpqq+BUJ20KTCyj4nwzenx5VYd zIK9b1hvZUnjUeVAo/egdVpm4lJ9stZMgBN4TXQk5pm4DTsc5ZFPCTaTs4vyOnW1kmp4YIk83ot lZ8AkmgOvHF84CytDwVdmDcRkqy+2wpH/ymf7pdQJaODKYDAcanuzS6sTrgviuAIueydcjODkWC 5RI2Dhl222qJ/utJU3g== X-Proofpoint-ORIG-GUID: z0fgKZYyfGrZJgoHHxbp96vtnbQ_6cEJ 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-22_04,2026-06-22_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 suspectscore=0 clxscore=1015 bulkscore=0 lowpriorityscore=0 adultscore=0 spamscore=0 malwarescore=0 phishscore=0 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606220221 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H2=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782169364079158500 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 Tue Jun 23 20:53:54 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=1782169358; cv=none; d=zohomail.com; s=zohoarc; b=jMQCHteO1w//NSXIM2GMDMwhdeL0PPizKKT8bmuBhvOgNKSH0SBacynCCIvDjEeFkkMprM5cDTAYmqmMciSzVr8RFnDLdJ/QZV7xomoqdfMhwHXncnwFOSFzBrBN/qmmYp5PjRuwv4HKWtPEVNtwGZYC0EE2ht3rqm1V1WFhyF8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782169358; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=wjuhDqFA99bfqKwa5FJeRGdXAp8yPWnYoBMxxqb/9H4=; b=eM4ciSJcp3a0vX7kMj3jNN2GCgl0p5JkEpbTVkgF6MeMeMAko2uTdxOIQvuCcrdAk/EGVfYLxRTSZqyH5e4XF4lPr1AHZkSaPc/BHwxrBip6rCx56eaFJZaI8GG9Bgqz2KilgF/Xc5x/yiWnHJT4bhJXBG4sKTdgi+FVTq9O/BI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782169358538682.0002392401624; Mon, 22 Jun 2026 16:02:38 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wbneF-0003vP-2i; Mon, 22 Jun 2026 19:01: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 1wbnde-0003Dn-GU for qemu-devel@nongnu.org; Mon, 22 Jun 2026 19:01:10 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wbndc-0002cY-T8 for qemu-devel@nongnu.org; Mon, 22 Jun 2026 19:01:10 -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 65MJafgC2176425 for ; Mon, 22 Jun 2026 23:00:58 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 4ey37haknu-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 22 Jun 2026 23:00:57 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-30c1f6c5559so5884043eec.0 for ; Mon, 22 Jun 2026 16:00: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-139add73a44sm9128726c88.13.2026.06.22.16.00.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 22 Jun 2026 16:00:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:content-type:date:from :in-reply-to:message-id:mime-version:references:subject:to; s= qcppdkim1; bh=wjuhDqFA99bfqKwa5FJeRGdXAp8yPWnYoBMxxqb/9H4=; b=Iw 85mvyeeukE9SlUrtn5K81A/hYM2UYfrxuYbm8px2Ae+oYdGJSG+yvTJYL7DOWo+S T4BsOPFqwdso3+dKrE8iuY3OXJLo9ObopSbncFYe4dxOL0mmzBD+qvBFgwPFsb8l /I6P8xv1bQ2F70XGXVySUzCp7T2dKE8UB9X/7V80JRfgfmQ0nfOJNXjawqlbSO9z xTij3wEnWOpgWeAoODTVwGwb9A4HQti9DBaRz1BSSK4bITI45pMtWZsryNFTrAOJ jPpQ09s7Yex/IPxvQhBFJW87C06sC8Gm+EEodoowU22w3BJ1/Pkt/DEaa7AEnX4G 4zvDPMuB2iHXMVcCvn7Q== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782169257; x=1782774057; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=wjuhDqFA99bfqKwa5FJeRGdXAp8yPWnYoBMxxqb/9H4=; b=am2ezs055zTQuTr/xKHAkx6p7gW9biSljCffOqY2nt0qugWxYHRmkNsg58Cm/e6lh3 IsyLqWBJrY02FReBwTZo8kgqGd+AO5PcXpO5/kG7gpWbG4KgMiU/ebN+l3W/ZF4LE1xy 1AdpufNcGU7soPeFq9NMiEWlJNhPQRzs0O6LJ2s+GcNWr5pTD1CqQK8P6PVvy69He3j+ 5j09d4BosEmBKI4MmQRaBFGq0w1HEIu5GBaPHRyqhxrqGCsMGiX0g+VJHp6lH4HNAsM9 ZRXkOLED2X/uAw5uzUzMNtI0HncMfnTP1IZMam1grBbBhLn3yMVMhmpAvdk6qHW+lQFC n7eA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782169257; x=1782774057; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=wjuhDqFA99bfqKwa5FJeRGdXAp8yPWnYoBMxxqb/9H4=; b=qDDWysIzD4iMeyndBca6z9AxkxR6fMYDALLX6cnQB78HAFWfRNIZ555tZ/VZlliL3m WYzjV4dvp91eMM/9aa85x7BHtgzzfLXwYZQj6X63pbCEnBfBwUTJ6oJgfahpwlgdWuNs JaXphNjkOXQC29M6GUqgzsdYAsTCxEdV2VqOftZUCRLbiU4K527A1+7jPXqrnfE/RCds UjURLtYkOI9w9PSTzbDnmVJ+Gu/h7+c2yBRjFMVra/i00OEGXJcQ8RjPWF/nwJPonYxL 1pYiidzTbYsoLrHYseKguGO1/zszJJnntcww0gQUyWZvePorjKiB1Lmr7h+aVkQE5AiY taNA== X-Gm-Message-State: AOJu0YyfHJVyxrUaZds129GCe9e1KMcc6jwrvmz7Q8ns/kLQc5QmWCCx 0SyVKkNEvmo+aXHQNMyotLY7X9q6DQJTPKRU6Q9ia76fAFkH44tWUWz9hR1hAI1ndrNa+gVb5CD CoiKn0UpGnf3AmpuxeSxK0IB+MWf0A3EIQ8oDqL5CGTy/8Qjr/nrTbibTjVj84mMLbQ== X-Gm-Gg: AfdE7ckenVWAvcee4rZSjHtQutqoqSJk8/S6AO3HnrBt88XdLsDIDlWdViiGdQkb//U mtwvBj+cCv4vfGMfBPV3euz5f049FW2t8GEcNOtctmNu7Jw3LowiMIzUR7q8cEZIkvS9exJvumm TYffmPBMEEQx3QITKlL08H3e2uV63EX/qi0coVJP7B5N3PWj3/upaH9HJ09+bmN6YL6tP4oVCLX N7QMTIHE/tXbiacYqPRcVYA6MMyofJZQHctgbgr2Hgsgqw+oEpsthoaNIX6kEFrR6CHm3uIIQ+j jZ5cCfVYg/WvS5dlPM19dzCHh0Tu+CrcK7LXHxR/2zijqV3B2nIsnyCUeH5im/yEIaRbJbUMrpj 310oRb2nk4HJCeFPO37zxI46CTdrSbfjVc1JvE0F8Ss5ZMkgPS5CecY5vpuE= X-Received: by 2002:a05:7022:11c:b0:139:819b:ec4f with SMTP id a92af1059eb24-139a205289amr10256314c88.14.1782169256797; Mon, 22 Jun 2026 16:00:56 -0700 (PDT) X-Received: by 2002:a05:7022:11c:b0:139:819b:ec4f with SMTP id a92af1059eb24-139a205289amr10256268c88.14.1782169255999; Mon, 22 Jun 2026 16:00:55 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Taylor Simpson , Pierrick Bouvier , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Paolo Bonzini Subject: [PULL v2 72/75] target/hexagon: add build config for softmmu Date: Mon, 22 Jun 2026 15:29:01 -0700 Message-Id: <20260622222904.607771-73-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260622222904.607771-1-brian.cain@oss.qualcomm.com> References: <20260622222904.607771-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-ORIG-GUID: rmrbl7mZFboScHZkG1cRv6_vrGmygFYc X-Authority-Analysis: v=2.4 cv=ecANubEH c=1 sm=1 tr=0 ts=6a39beaa cx=c_pps a=Uww141gWH0fZj/3QKPojxA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=gowsoOTTUOVcmtlkKump:22 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=S56xvJB5AAAA:8 a=nnu-IgKveahPCV3q3nEA:9 a=QEXdDO2ut3YA:10 a=PxkB5W3o20Ba91AHUih5:22 a=MH9Ivq0PDQRhlrFuIVvX:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwNjIyMDIyMSBTYWx0ZWRfXxyoewYcnHCRv DEJtTgDSUqVoI61Ersxu5+h1NGCPX0soxLHTVPL6iV5CFekrkRXjkX026mGyQ0UAta5VvbhSiS1 XWRfhC7vJpjQQlk1iK/9883E/AB5wCA= X-Proofpoint-GUID: rmrbl7mZFboScHZkG1cRv6_vrGmygFYc X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjIyMDIyMSBTYWx0ZWRfX9m2MGKXx7xvv SvHUqN79nA1J/5D8ywG1k8G3Cnto6HuJdEKOFAq8GWsNZ3K261W+rFDDBQUzOWf8SUeVyu5nEv8 V4rh+hr4tl13kdiRVfWTTRIoHPvzKz1/wVc26hY7XyOY6+3AKz1dg/xgOuj2+y6K8CTPYQ093x1 bwhWDcUgqNfQihU7/RtsJ/wOzqgWhxFWGqepkiEPgZgLtEYWpKZy1YwX9j16SaFzhbYXRK8soxR dOQ9475bV/b7EBsyeMK3J83MoG23AVW3KG5B2cSzVp18lOWCkCGE4pXj1w6pzffxxDH/4dJURFb PAunnxZ6byvX5TSZng1Z/9eyAHEBZpoWiM9iq7EUfTiuljkNS5cmILDPW6nwCPf/TCzRewaYJWb RUKk+nW2jNZPKvcbL0DVrRRT6l0NosYFrQ++orFNAEc9MpWF8/LR1lnn6ZN90qVh6PUY7o+bYyj 3I9/ug58m049YnPJsVA== 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-22_04,2026-06-22_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 lowpriorityscore=0 priorityscore=1501 clxscore=1015 spamscore=0 suspectscore=0 impostorscore=0 adultscore=0 malwarescore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606220221 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782169360256158500 Content-Type: text/plain; charset="utf-8" Reviewed-by: Taylor Simpson Reviewed-by: Pierrick Bouvier Acked-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Brian Cain --- MAINTAINERS | 1 + configs/devices/hexagon-softmmu/default.mak | 6 ++++++ configs/targets/hexagon-softmmu.mak | 7 +++++++ target/hexagon/cpu.h | 5 +---- target/Kconfig | 1 + target/hexagon/Kconfig | 2 ++ target/hexagon/meson.build | 13 ++++++++++++- 7 files changed, 30 insertions(+), 5 deletions(-) create mode 100644 configs/devices/hexagon-softmmu/default.mak create mode 100644 configs/targets/hexagon-softmmu.mak create mode 100644 target/hexagon/Kconfig diff --git a/MAINTAINERS b/MAINTAINERS index 44063d6e13b..cda4d57b495 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -256,6 +256,7 @@ F: linux-user/hexagon/ F: tests/tcg/hexagon/ F: disas/hexagon.c F: configs/targets/hexagon-linux-user.mak +F: configs/targets/hexagon-softmmu.mak F: tests/docker/dockerfiles/debian-hexagon-cross.docker F: gdbstub/gdb-xml/hexagon*.xml F: docs/system/target-hexagon.rst diff --git a/configs/devices/hexagon-softmmu/default.mak b/configs/devices/= hexagon-softmmu/default.mak new file mode 100644 index 00000000000..f7fc874eb0c --- /dev/null +++ b/configs/devices/hexagon-softmmu/default.mak @@ -0,0 +1,6 @@ +# Default configuration for hexagon-softmmu + +# Uncomment the following lines to disable these optional devices: + +# Boards are selected by default, uncomment to keep out of the build. +# CONFIG_HEX_DSP=3Dy diff --git a/configs/targets/hexagon-softmmu.mak b/configs/targets/hexagon-= softmmu.mak new file mode 100644 index 00000000000..fdfa29b4f39 --- /dev/null +++ b/configs/targets/hexagon-softmmu.mak @@ -0,0 +1,7 @@ +# Default configuration for hexagon-softmmu + +TARGET_ARCH=3Dhexagon +TARGET_XML_FILES=3Dhexagon-core.xml hexagon-hvx.xml +TARGET_LONG_BITS=3D32 +TARGET_NOT_USING_LEGACY_LDST_PHYS_API=3Dy +TARGET_NOT_USING_LEGACY_NATIVE_ENDIAN_API=3Dy diff --git a/target/hexagon/cpu.h b/target/hexagon/cpu.h index 4a12dc04727..7694fd91fa8 100644 --- a/target/hexagon/cpu.h +++ b/target/hexagon/cpu.h @@ -38,10 +38,7 @@ typedef struct HexagonGlobalRegState HexagonGlobalRegSta= te; #include "hw/core/registerfields.h" #include "qemu/bitmap.h" =20 -#ifndef CONFIG_USER_ONLY -#error "Hexagon does not support system emulation" -#endif - +#include "target/hexagon/reg_fields.h" =20 #define NUM_PREGS 4 #define TOTAL_PER_THREAD_REGS 64 diff --git a/target/Kconfig b/target/Kconfig index 3c73e3bae01..0288a3f4164 100644 --- a/target/Kconfig +++ b/target/Kconfig @@ -16,6 +16,7 @@ source sh4/Kconfig source sparc/Kconfig source tricore/Kconfig source xtensa/Kconfig +source hexagon/Kconfig =20 config TARGET_BIG_ENDIAN bool diff --git a/target/hexagon/Kconfig b/target/hexagon/Kconfig new file mode 100644 index 00000000000..7e556f35063 --- /dev/null +++ b/target/hexagon/Kconfig @@ -0,0 +1,2 @@ +config HEXAGON + bool diff --git a/target/hexagon/meson.build b/target/hexagon/meson.build index fd3d69feffd..59cb09c1070 100644 --- a/target/hexagon/meson.build +++ b/target/hexagon/meson.build @@ -235,6 +235,7 @@ decodetree_trans_funcs_generated =3D custom_target( command: [python, files('gen_trans_funcs.py'), semantics_generated, '@= OUTPUT@'], ) hexagon_ss.add(decodetree_trans_funcs_generated) +hexagon_softmmu_ss =3D ss.source_set() =20 hexagon_ss.add(files( 'cpu.c', @@ -253,6 +254,14 @@ hexagon_ss.add(files( 'mmvec/system_ext_mmvec.c', )) =20 +hexagon_softmmu_ss.add(files( + 'cpu_helper.c', + 'hex_mmu.c', + 'hex_interrupts.c', + 'hexswi.c', + 'machine.c', +)) + # # Step 4.5 # We use flex/bison based idef-parser to generate TCG code for a lot @@ -262,7 +271,8 @@ hexagon_ss.add(files( # idef-generated-enabled-instructions # idef_parser_enabled =3D get_option('hexagon_idef_parser') -if idef_parser_enabled and 'hexagon-linux-user' in target_dirs +if idef_parser_enabled and ('hexagon-linux-user' in target_dirs or + 'hexagon-softmmu' in target_dirs) idef_parser_input_generated =3D custom_target( 'idef_parser_input.h.inc', output: 'idef_parser_input.h.inc', @@ -390,3 +400,4 @@ analyze_funcs_generated =3D custom_target( hexagon_ss.add(analyze_funcs_generated) =20 target_arch +=3D {'hexagon': hexagon_ss} +target_system_arch +=3D {'hexagon': hexagon_softmmu_ss} --=20 2.34.1 From nobody Tue Jun 23 20:53:54 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=1782169387; cv=none; d=zohomail.com; s=zohoarc; b=GEZb+BD9E22Zg417D35tXfo98i0TqP7Y5at5tJ1+U8t+ya+PW9q0LxOL73zUXbCNT82pNu1Uy4glyD0lpHMtiz5i+SNCwOq/aXsUx+nwav7lF0uN92ME4uCLXNvJrsuVqcYl25eZpbImXvoh7cU5ZhKzoQbtUS8+/c7rpArUazA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782169387; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=nBw2IZ1csmA+VHymwGseo3ZjGAp+qjyusTMewPMieTc67qCX7bjpWbQ4HkbMC6NtHMLunMuAOh+K+pHyo/F1tyxoUmExZVgWnZI18bz+S4LuodiRCPoi2ZLOkeVu1JC3Ro2vWi0xdIFqFYzAcI9dkqXp3KCOmr2/jM1WNd79wFE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782169387834666.2839529271381; Mon, 22 Jun 2026 16:03:07 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wbndi-0003Dt-4q; Mon, 22 Jun 2026 19:01: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 1wbnda-0003CY-EF for qemu-devel@nongnu.org; Mon, 22 Jun 2026 19:01: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 1wbndV-0002cz-2f for qemu-devel@nongnu.org; Mon, 22 Jun 2026 19:01:04 -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 65MJZj3c3222591 for ; Mon, 22 Jun 2026 23:00:59 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 4ey5sn20he-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 22 Jun 2026 23:00:59 +0000 (GMT) Received: by mail-dl1-f71.google.com with SMTP id a92af1059eb24-139b7044addso126928c88.1 for ; Mon, 22 Jun 2026 16:00: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 a92af1059eb24-139add73a44sm9128726c88.13.2026.06.22.16.00.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 22 Jun 2026 16:00: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= yceAhRCtNZOpbaG7j5M0kMisT3HAlYGvNKxciZB2G+k=; b=GS67Ntv8M6luqtsu Kf5QIQcL4tm4pggU2Fh3xkGDTb5jHnXF+xCkfvYGhEN75C0Vq48QLQMPaIfLzwix djm5rsEEBk0NODFwMJ3cOBJWQDp1IjOxlJq4BSm5/fE/B4pU0IRUyngp0O5AwLy3 o1ak1roRQAhfF+9bB8lFVrrIBEraTtWxTbkuenJH28akDSelOuZl47gvWuFZnJCj PxictrO++5TlCdXh14COD/avuUDoyaMNOhPwsA8H4tB21m9YGvZWDhMSB/8XX5od 79+D5BHs+d97wlSp37VFZBhYmWZiFvoxPyPcNVeXfl9JwSFdU4enZXHGP9ggoAWI QUyDCQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782169259; x=1782774059; 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=gLWdPk/qGjlM7K+K2ip7RT/baGfkSqikPECsKOADVxZjHS4CzdiEVerV0e7511wpjg RTghH9gYdOKrpPPRpwxkfjHKB0CFjZqlXdAH70Ho/QUR9Sd0S2SDg8XpgiR7vyXepm6T ij6QAVEj+4OIOBA8mmo1NX0HHVKwz0V/themn2JEERap45yls6wKv7Fvhn8VvGw7HdPs uvvWojGjkNpxZnhYN+nPfx3t+t0aOhou1q6GJCNmgREJQwufcX/S+E9vA01xEs86xT5M dCItBWSADBs8q0sVaBGPFrkH3sTPG/Yc4wrvpgswM3lK6f5/ZwkE9uIuIi8Enyz7xhiD PVew== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782169259; x=1782774059; 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=o3FvV3RqV78KxK/EOwB6wJJDbDU6eJ34WnHfpaHkqJzoJFq6fXE/WU4z7m8SjCEcAy XagL7HM/E7QCGj4V1FV/xsLmd6+iT67LQlywwiTGO4VpMReVmPeWIZA6kKyMYwnaRvk6 l+TuAVcoa9HjyM3/jytpc0O96TJdLAyJ13o6Ttzp6yayUvYZtQhLHT1l8RF94JxeJ0+S fpvVNAD7wn02riEJBXf/8mj4KLLowcBLYhEtb2XHUIqr4i05vs8ZFtuMgTyqKG8vnzbl EqewI3766WJiLe4c7ejesYovdvWgwxAG8Xsyi9U4u0uWbjiV9afyeZF4ztj0S6CNRlyM AdcQ== X-Gm-Message-State: AOJu0YzRMTViZ02QsEAvreuqq1aEHyz4qlnvE2C/8FuX/wNApJQf83mS RYtVUcj9QUSUt61ZNCVZT54e3KD9n4THNohlbQl/iOkf7bK0l5zaVLmTaeoyuJnerYFDozQRxkT GpGBlLffvqV7I7l3MopyA03qBSmJxCzmtsZYpZ+De9+E8t/Ba0ZYARfpXb5dzGr7DLw== X-Gm-Gg: AfdE7cloVoisI79f3HjJNjegM+LK/s09ytqVSweDUjuwLHhano5i42veltg8jXbvA9/ GYycM0zvGjEpgBKrCgaOC0rdAIPdRqKwgpxaFIs8I9dNjtRJBVm492Jndt21XjVM+CpPRZooiFO 4TLi7GsQ2sfWqU6v0Cu2a3URdPyrtz+cpto6NPOvDSpp6esMWSLkT5tHD7hUmpdZIQsMKcLNHtv qbqWi/AeBeyvKY/voKemqpkWinEhioz44VK/Dd944ZR7IGTEf/SAq5LXtWnzO2c+VY+4KWGmP8d 7umyWjVb4RkSry34MfZoeXBHczaqXxMqgR107Uf9eWeV6L9HuOkOmLlNh12cumWth97C0hkqnR4 QmWw7IgdOjQczEV8OC9E2O0Kv1SARICQb4YuDqU2SMbugzqIazxHZPxM1An4= X-Received: by 2002:a05:7022:121a:b0:137:f876:a055 with SMTP id a92af1059eb24-139c3cbdd6dmr668469c88.15.1782169258593; Mon, 22 Jun 2026 16:00:58 -0700 (PDT) X-Received: by 2002:a05:7022:121a:b0:137:f876:a055 with SMTP id a92af1059eb24-139c3cbdd6dmr668424c88.15.1782169257701; Mon, 22 Jun 2026 16:00:57 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Pierrick Bouvier , Paolo Bonzini , Kevin Wolf , Hanna Reitz , qemu-block@nongnu.org (open list:Block layer core) Subject: [PULL v2 73/75] hw/hexagon: Define hexagon "virt" machine Date: Mon, 22 Jun 2026 15:29:02 -0700 Message-Id: <20260622222904.607771-74-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260622222904.607771-1-brian.cain@oss.qualcomm.com> References: <20260622222904.607771-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: 507bNdpl7ndx-6iqtP9iNH8fE4u4n-IO X-Proofpoint-ORIG-GUID: 507bNdpl7ndx-6iqtP9iNH8fE4u4n-IO X-Authority-Analysis: v=2.4 cv=PuKjqQM3 c=1 sm=1 tr=0 ts=6a39beab 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=yOCtJkima9RkubShWh1s:22 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=CPh6EXbgsUTdwlFVG8oA:9 a=QEXdDO2ut3YA:10 a=Fk4IpSoW4aLDllm1B1p-:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwNjIyMDIyMSBTYWx0ZWRfXz45fR/aHoCDI Xy1+xxdiHnQu4TH44ork/LkEBcDXCNaLhqfIThoEPTG5D/uqjJDcrz2miDZfJm15QzxGQACycxC jr/QNC8QKzoSsiqfiwdBGhfEUfQnKFM= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjIyMDIyMSBTYWx0ZWRfX9sXODOOkAngI JMnYEdi0WjWR4j+mPiiOO6V1e+h1lG0d+G8dvsmjDbcIKOsOTgDS34nVBp80ySA9Ml35ffv/okj 7PbQYSGsZ7tmw1PwVxdyA0MoRXwaxN+JQvWCjhpItY8WBDI9EuVRho3GxIfhvOvYgWR1r+s7Nhc gPBAudqhCQmuNyME2DPwN60q/NI/t+Vto9DAQjtO0GzfESOZEpf3qmQYfqXjQndxxbtkdvLhX71 NfU6eXIxebT0RBaLjLaU89Jm6eF8Uge96nXYU8jiXAyt53RYMQX02rtPVc4LRKHeS5mvr0A2qlM OEYe0i3zQFJD1Ww5uBps67vZuUcFkewrn0avV7geSaL+QLsOY0sYwCLZ/bNaMgiRXGSl/D2IxgY PHIeS45x6ToaIgn5wUPHc4U0aV+959S6uYEXh/jmCn8hCe83gLaZVV/lsJFCi/+I9n+u7fHC+e/ tNW7MMoLboBNfBy2XCw== 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-22_04,2026-06-22_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 suspectscore=0 priorityscore=1501 phishscore=0 impostorscore=0 adultscore=0 clxscore=1015 bulkscore=0 spamscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606220221 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H2=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782169388358158500 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 Tue Jun 23 20:53:54 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=1782169353; cv=none; d=zohomail.com; s=zohoarc; b=SQSijW6RFOKnGU0t8U04T1Xe9eGWuTNi2IDBiHmFjbW4LYgEFR5cGmtkcK1mqpmJPpBQa4wcIRJHHYoc9Et45XayLb+q3HBj/8sAZZAOmbvd0l1IwT237FxLKw8vylkceCpV/aX9Hv3thA+937eFatwd+dzSe7js6CxkdhgeaqM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782169353; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=gn83dxXALMHX9hShj5DO/MP/66YGPFEzq+6xQ++j3U4=; b=CYs24zGPe7T/1gwRN8NSluJe7N2srJiZUPK6ZhJ2fTWOEHnbJWwjWe3tCtPvjTfX0Qf/y3vkr9noMyE71ssrGHlQGhPp2o7yBsbAZP3IDP0XA0HdYi8rrrRoVF8tdqqEwL3c09PJGzpGy0o6uWo+zCVvEBSg4KTjT7V9NQn781A= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 178216935356174.4069361819129; Mon, 22 Jun 2026 16:02:33 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wbneJ-0004HN-DE; Mon, 22 Jun 2026 19:01: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 1wbndi-0003KY-GJ for qemu-devel@nongnu.org; Mon, 22 Jun 2026 19:01:18 -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 1wbndg-0002dN-Lh for qemu-devel@nongnu.org; Mon, 22 Jun 2026 19:01:14 -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 65MJZjww3222613 for ; Mon, 22 Jun 2026 23:01:01 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 4ey5sn20hg-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 22 Jun 2026 23:01:01 +0000 (GMT) Received: by mail-dl1-f72.google.com with SMTP id a92af1059eb24-139553dd8acso21360280c88.0 for ; Mon, 22 Jun 2026 16:01: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-139add73a44sm9128726c88.13.2026.06.22.16.00.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 22 Jun 2026 16:00:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:content-type:date:from :in-reply-to:message-id:mime-version:references:subject:to; s= qcppdkim1; bh=gn83dxXALMHX9hShj5DO/MP/66YGPFEzq+6xQ++j3U4=; b=bY /MUOHEs1tFk+QrKfoLfWkZQQ/tbn6zoyPDjd4/SGp+/7NC/hU6LKvsigwpKH2L/Q 2t9mFG/5hE1VlqhNkNyv2j7Jr7Asf3OEprSIVZ63tZVx+qEm9c6k+AIpDJnFyDpm A60Bjj7/qBlnDcFK1np4fM+KYs2lzbcAu3zf93LouR+LVPZSX2Pep4tEExdXL6uZ 0WHgujskuk0+nrfhDNzEj8HFeSF960YVdTuaUe3eAJOtR20anJhnsGTNbQQx0+ef DIPL9VL3DS5MHHnMxCUH7gCsAUMyaU8R9H5WUW8RFaxRZNuWHxRvz5W6cvLsnceV IC/jdnmtHB4954mXlDQQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782169260; x=1782774060; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=gn83dxXALMHX9hShj5DO/MP/66YGPFEzq+6xQ++j3U4=; b=CM+0a23rA2e+pnmWr/VciatTNh0S//e5yVn+2qi6nllwxAZHXQRY7Ldnc5KzL7DQey s/xtoCKy/ed7c3Q+Xj0m1E+IZsWv2MwSlR0y7s++JC3lYKE7B6G+33rNuQhXR45nRxXV H0U+5WkGa478RMZmWoEwAlFo5Z68OFwrbvXlKgPmqyL8oyqs6T9vZxpjgR4t7zcPYNhg YZwX3QPDTsC3MGs5J5CZz17Ls3UUloTnc4BzgT7meD68hs/VAnweYExq/icMXmQVy+lr jiXnXs4Bdy2iTBypvjrIGh+fwBCCHLqLpBckFP+KlhBV+G1Ioq6cqPfNYcd6bc+MFmoR o8FQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782169260; x=1782774060; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=gn83dxXALMHX9hShj5DO/MP/66YGPFEzq+6xQ++j3U4=; b=ioAGanWBfQJVar7raoxboqC4/rCyd/+ZvbUrziiyfSqj6vDRkWpvRZONKo/KuXnIOh P/FipzGuTst242coj9tmbH6ifuK0ZPmgd8IM2KY1jS5tQdxh1tihgcyNiOKdwRJidM08 c+9L14GqdAjntiu8I4wEUqCOtANwz+nyZpKTd9J6nbwkaFNRGX6HrGRR4w7H/cLLEAXa Qup/C93FRBtA/YHRrtpSoxyGBie7I3yepolPhhBe475p0H7alSTI8Ryspfqc9Wp1xCUP a0GM7Rqy8yYOxS2bfMWtIe+QoP2Mcwcd9tQ8m+BnvuFDjjQB+G/aUBvAz6Iq8gYgh2eq Subw== X-Gm-Message-State: AOJu0YzIUbBLSZHeb6vLgt+9NG+yYCYU3JCXBay48z9hsuNjHFWZr/4O mSX2MJGVqX1/9WgNaob0/1CvDc29HxQFmcx5W90EABKRUM9sDeh2L44da6Lmb8kfYI7McligIWc xvigAxhDzo4r3B5SKrCvrMO0dH/EKuKEoDXsjxvnnzcfbXuxec2c7FOqObnkQXnl9Hg== X-Gm-Gg: AfdE7cke93DW+3x3CidsFZLKg91l0D2ONcLEto+LItnHCqfZXuKHzBqvG8NmbE1ifEn nUpF76KYwwyPEp8OiE6hzIHTwH9TwfvN7H6rQ6beLFIjpVnLg4kvwN47cXIFP0v/OE4bPktLDzO /qAGnNn1rNmmWJwWj19dZ9GCXIKLeBmN2KwJH2g+Z7b+1QVUMLScawYiFtEdktDR1Fuuhcm0oS7 kKFpj0l/LFP3frhBlhCB/ZNbhzpr+HkWerrVQPIc3XO+/BCMrogXIvNRy3T22jM1z3SbFG7pGkU C7/CZI82W5VXn99PAfuJhItneuQ+YFIvqQG2TztuPxacKbPAIvCxVjppTQ4Mhaw1SpxUtvIgTER YbNAesoY//xZzayN/i5KxRjPFG9FqOdbah1Mvp53bOaGKqBO4F6Qz0PRxVM0= X-Received: by 2002:a05:7023:a4d:20b0:138:4023:8b6 with SMTP id a92af1059eb24-139a34f527cmr6789685c88.10.1782169260144; Mon, 22 Jun 2026 16:01:00 -0700 (PDT) X-Received: by 2002:a05:7023:a4d:20b0:138:4023:8b6 with SMTP id a92af1059eb24-139a34f527cmr6789656c88.10.1782169259400; Mon, 22 Jun 2026 16:00:59 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Fabiano Rosas , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Pierrick Bouvier , Laurent Vivier , Paolo Bonzini Subject: [PULL v2 74/75] tests/qtest: Add hexagon boot-serial-test Date: Mon, 22 Jun 2026 15:29:03 -0700 Message-Id: <20260622222904.607771-75-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260622222904.607771-1-brian.cain@oss.qualcomm.com> References: <20260622222904.607771-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-GUID: N1HgHNq_WKIYrRQZXNw98t8vUsdepFBW X-Proofpoint-ORIG-GUID: N1HgHNq_WKIYrRQZXNw98t8vUsdepFBW X-Authority-Analysis: v=2.4 cv=PuKjqQM3 c=1 sm=1 tr=0 ts=6a39bead cx=c_pps a=bS7HVuBVfinNPG3f6cIo3Q==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yOCtJkima9RkubShWh1s:22 a=KKAkSRfTAAAA:8 a=EUspDBNiAAAA:8 a=_K2MQWaM9sUw3x3I4k0A:9 a=QEXdDO2ut3YA:10 a=vBUdepa8ALXHeOFLBtFW:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwNjIyMDIyMSBTYWx0ZWRfXwhe5YxD356E/ uXuD8KyXzmeTUYrnjJltAqYggJPMyKy8pdfGQm2EUWGZ6fG0NEllx+Q1QcyeCcV2iYMubgngOxV az2nslxQnb3re407WgFm0iT/6kbcng4= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjIyMDIyMSBTYWx0ZWRfXx5zQUdhVqM/M rrgfDyUV+pznZoD/ipDsJE0Dw9oKo3aWLVz1kd99X5LrUzEKpoIEt3JamvszEmcW4V2m/+aiMMp sPrFHLD1SSq1W6y/TTaEKkLEBnURUsvcTh/b1eExGPh8+8hK1NgZ0bSpBiX215ioc9azNgQkC5r KM4nQf+zRcUcSjXSErO5qpV1sVGBWv4YfAuT71XPjoITvLqItoKORgGqJBwu7XBTi5E8nwoM104 KDb2OoKpL7GXTBKISsS6aDuoopcnclQ0fEUtgCxwZC7r1muTIGVikEf/wt782W8kj8vHuzgcB45 ZiXChtOfj/gEqfOIw11qvptnl4IbT/oNLzS1Lni4xnE27D4au0N8VSHd+0b9ap6wy80gboSsJTx BhnZZymiSdarchzNZkeDL/bwkeZN3bJkAtDKoJTHsIlSXxtu/z1s4FHMDra+NApA9LvgvSUAQrf uYliV4QwsD147vyQJDA== 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-22_04,2026-06-22_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 suspectscore=0 priorityscore=1501 phishscore=0 impostorscore=0 adultscore=0 clxscore=1015 bulkscore=0 spamscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606220221 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H2=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782169354037158500 Content-Type: text/plain; charset="utf-8" Add boot-serial-test support for Hexagon architecture using the virt machine. Reviewed-by: Fabiano Rosas Acked-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Pierrick Bouvier Signed-off-by: Brian Cain --- tests/qtest/boot-serial-test.c | 8 ++++++++ tests/qtest/meson.build | 2 ++ 2 files changed, 10 insertions(+) diff --git a/tests/qtest/boot-serial-test.c b/tests/qtest/boot-serial-test.c index bcd0a9c50e7..37fee7a91c4 100644 --- a/tests/qtest/boot-serial-test.c +++ b/tests/qtest/boot-serial-test.c @@ -142,6 +142,13 @@ static const uint8_t kernel_stm32vldiscovery[] =3D { 0x04, 0x38, 0x01, 0x40 /* 0x40013804 =3D USART1 TXD */ }; =20 +static const uint8_t bios_hexagon[] =3D { + 0x00, 0x40, 0x00, 0x01, /* immext(#0x10000000) */ + 0x00, 0xc0, 0x00, 0x78, /* r0 =3D ##0x10000000 */ + 0x54, 0xc0, 0x00, 0x3c, /* memb(r0+#0) =3D #0x54 Write= 'T' */ + 0xf8, 0xff, 0xff, 0x59 /* jump 0x0 ; Loop back to sta= rt */ +}; + typedef struct testdef { const char *arch; /* Target architecture */ const char *machine; /* Name of the machine */ @@ -194,6 +201,7 @@ static const testdef_t tests[] =3D { { "arm", "microbit", "", "T", sizeof(kernel_nrf51), kernel_nrf51 }, { "arm", "stm32vldiscovery", "", "T", sizeof(kernel_stm32vldiscovery), kernel_stm32vldiscovery }, + { "hexagon", "virt", "", "TT", sizeof(bios_hexagon), NULL, bios_hexago= n }, =20 { NULL } }; diff --git a/tests/qtest/meson.build b/tests/qtest/meson.build index 4897325d84a..b2d36499d27 100644 --- a/tests/qtest/meson.build +++ b/tests/qtest/meson.build @@ -295,6 +295,8 @@ qtests_riscv64 =3D ['riscv-csr-test'] + \ ['iommu-riscv-test'] : []) + \ (config_all_devices.has_key('CONFIG_K230') ? ['k230-wdt-test'] : []) =20 +qtests_hexagon =3D ['boot-serial-test'] + qos_test_ss =3D ss.source_set() qos_test_ss.add( 'ac97-test.c', --=20 2.34.1 From nobody Tue Jun 23 20:53:54 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=1782169387; cv=none; d=zohomail.com; s=zohoarc; b=WOdJHdsHcDlWGbox//ZnuUF3m8031GL07ho819azycDX3NbgtTFFviZENrEHRDUyFMTxeSV/VxjrOt6OJoHA9hATfUQBm3jCmDWfYrSOqVKgpsH2LGjh4tNozYJPE98Xktz2T8579LIMouZXJK64sJUp4xoc2i4V/iQyI1fPDaI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782169387; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=2D1KK2ftdD1qqMY51HqNdBRbUzmKNkoIdyCDzlZ8KkY=; b=dLqm1XLPB6wgMwBM+Kc/EVc3K0bv5jvJCIgYqMWmuWjnBnqDelYpHaI9FDkDWgHgUWY8MAKyLo8VO/tQqoa+Wg9zixJOPLegY5uvb2B+6FRoQyjPUAHJKmutgyxLd4SUW+q+lstQx65hCIPLGl+0nkFgGfZuuR66InH2DYG7a+E= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782169387101514.2095286572995; Mon, 22 Jun 2026 16:03:07 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wbneG-00047X-4n; Mon, 22 Jun 2026 19:01: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 1wbndk-0003Kk-0U for qemu-devel@nongnu.org; Mon, 22 Jun 2026 19:01:18 -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 1wbndi-0002dg-Ec for qemu-devel@nongnu.org; Mon, 22 Jun 2026 19:01:15 -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 65MJZwmb1612689 for ; Mon, 22 Jun 2026 23:01:03 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 4ey2yjanu2-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 22 Jun 2026 23:01:02 +0000 (GMT) Received: by mail-dl1-f72.google.com with SMTP id a92af1059eb24-139553dd8acso21360371c88.0 for ; Mon, 22 Jun 2026 16:01: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-139add73a44sm9128726c88.13.2026.06.22.16.00.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 22 Jun 2026 16:00:59 -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=2D1KK2ftdD1qqMY51HqNdBRbUzmKNkoIdyCDzlZ8KkY=; b=ku V8xok8P/4KGzclWhg04NvYE0hF7SjAb3hQFWj+c4jv0bVUv+t+/3/qvv9zcN5WnD P8TgsoW8jDPbOEDzYcX6kN5a9R4zAyJLymc6Hgk7iPM8hQzx0B0iGSTHBCBym49a FfzukNeQvgv1Q93JmKFEJh71I2Nzjwigrro2ord/kmMqEuF+w+HXZ0O5eHdjPfrd T+r/RqXLvyzbsgh7EhhaKhJ4h2rg4D55WNeDZGcIo33fPoV/Xzc5DUlPoXJw5EZx lIMesmgFRULW2FRRt5/OVaZ+ztEfcZu+M+nCLy0Bb9jocPCA9DRu4Zqswbuwu8Bs 6rRzFxTEX5We/G655BIQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782169262; x=1782774062; 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=2D1KK2ftdD1qqMY51HqNdBRbUzmKNkoIdyCDzlZ8KkY=; b=OdEnm2XFxGm1YhsyNP5A1aUa+c7Sy7B1twnB17u88W+5olqE9jvoboMxJeqCKy54bH tUrKwV/4yIN/aDLvIOD5+FmpvijujI0JCMVRj9Qdl1WpNmYgZ9w+Ogj++9xWgdEefgvK fDEQRbETZ47XcyunT195Z2jGkIZjgzdhwBmqAySIqId7K04YJY3WyMHfblHrQT9gCSyh nm4EXPotOKKN/ihS3DdJqqthNQWJ1AVO4lB4Hd8VDRD168Ucr5p+1Ymn7DSpB9jb44gJ DHPspq4y+6cBKU1HEegmR8mPMO1q6SyPeZvNbVA5ikrmVjRqNFsoKLZaQ+U640cFLyzt 97gQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782169262; x=1782774062; 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=2D1KK2ftdD1qqMY51HqNdBRbUzmKNkoIdyCDzlZ8KkY=; b=peup6R6JBCOgMB/hZbNl5hJWJClbRzcCrj3yLlD2SbGaWb2kBuVYdUdur/slO/yIcG Qb5QuejV6AGWuoQm2EGPJ4HcQaS//8D5KDNM5MD3ZcFKrroviL6SmQVBjwFAK8fCZqKQ q4p0YFlZqtGada+ikcQD6tiRVap6ZJ1mrtvsp+jtJQk+X665F3xoXgozVqKrQDFbBLD9 feCJoCUuwqFWET1ISpPzv2EvE40qpsFrOxGsYuD+si635CY7EcOStdhlZhWyS3W6rvlm 5hAgTJnz/wCieTdCVlIOGiuQUzUOhGfVw6CWLMY38nVTZ68d61Rcs/GcHu95hm0rwheA PVOw== X-Gm-Message-State: AOJu0YyNMkXolMigoMLlr+0hy1R4IXCLwR42RAszf3Z3CDhghh1KBjQD tyHmffbn3d8GU8jJg240K9w87n9yejtzKmR5ZmdaLQ9ZLx5GUOAzz5PSMBa/JCqxN0+de0jU4Tu X50b+VbRkXv64B12caaiVBBVeyf05VTvtxxbfOsIbC1IZtiK4/QJOGqKkQPgmcSn/Wg== X-Gm-Gg: AfdE7cmPRkKxqZaKCpnyf7ccdMG9KMi6seHXmlcd/1vXGor66MuXMdLNvb6CxbfZY62 bBcFFclaClZXdBRYc8osOpWuaH+PAJxqCaBzcRyeAsBQ20IYphb1qVHmov4DSyhOtTlr5i/v38d Kf6SHWHG2+IxTs6VCw4LwYCqr5opecm+5MOM6f6JzYy70eguVbeYrA9jL8fwVtnqkagi/lOPw45 0ospQkuz5YQWshXvpMlORL8KuLkTi+s/1JYe/DdT9DTsdvlRbH8OsxTRY5kMrVmgaHnMNZVVIW9 KWPKZcdrUn2BftYnDSLm5/8VCvpxO/NhENTCFYxLl7OrLXgukZ+Jdu5A+/Mi2tHd1OEey1EQMAw bMFDqGET7ctCXJ/qlKDkUK4FMeXfwpNXTAIlLSl24oRgfl+w8o8MzLQZ1o6w= X-Received: by 2002:a05:701b:4354:b0:139:c4e3:9499 with SMTP id a92af1059eb24-139c4e39832mr504358c88.2.1782169261904; Mon, 22 Jun 2026 16:01:01 -0700 (PDT) X-Received: by 2002:a05:701b:4354:b0:139:c4e3:9499 with SMTP id a92af1059eb24-139c4e39832mr504320c88.2.1782169261218; Mon, 22 Jun 2026 16:01:01 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Pierrick Bouvier , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Alessandro Di Federico , Anton Johansson Subject: [PULL v2 75/75] target/hexagon/idef-parser: open input file in binary mode Date: Mon, 22 Jun 2026 15:29:04 -0700 Message-Id: <20260622222904.607771-76-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260622222904.607771-1-brian.cain@oss.qualcomm.com> References: <20260622222904.607771-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-ORIG-GUID: hTHQHpE2Th17P9aBOxFhZvTs1OBlfB2T X-Proofpoint-GUID: hTHQHpE2Th17P9aBOxFhZvTs1OBlfB2T X-Proofpoint-Spam-Info: AW1haW4tMjYwNjIyMDIyMSBTYWx0ZWRfX6Nh+54oTqqhY jdW3lC4F6Nwh1domxErLiflKmHpqTn26q9KrwClVEozv1w/AV4dAi00KRsEJJWzxky5Mzrrhcy+ 1KkAXxBLHugFUt9eWsAaic3UloZ2AZI= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjIyMDIyMSBTYWx0ZWRfX+Snk/JsCaJ2K tyfwT+Soy5x9MMHOmcEWP7p+4/8qGT6VVqFmjC0oOp+byOltJ9leGc7FPFF0qCNz0ufv+9ttgd9 n3Uo0mkVGaYkJcgTWfUVRvOeDoe2YrmBELBFzUbsO6+rUIK1FIAJqTE0PTuiWyYFCGlYMWJm6mJ Gsqu+Bni2rmyEuyA5ObdHwUkPe1mxbgcge00om1YOyxV4LDI/COp3X2aHSa6dx1SIt61gFtTR0p zjlvPTeUP8CDPkwhqF7WpQ6eK5Bk6YFkyofWtu9e1xKrFj2/FnEYdebgb+MhwLZrsxhGYrmjRNE y7aA0BaT6FmxolviBFkX3qQdJ45V2Y2hr4JGo+nnaHfMhyMMWuuuyE/JXgVydTEC9M5U0Y81wPs s/lGjcNceZPCsLhXL6Yc+HnraYiYA4rW28oPEtu8l+8Jbv8cc9RQ+7UpPdzpN0KF5tl+0nZZNpa ST03BWN1fC0v85TrvMA== X-Authority-Analysis: v=2.4 cv=YLSvDxGx c=1 sm=1 tr=0 ts=6a39beae 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=YMgV9FUhrdKAYTUUvYB2:22 a=EUspDBNiAAAA:8 a=XwlTJ2-QRR3pk5tWCfYA:9 a=QEXdDO2ut3YA:10 a=vBUdepa8ALXHeOFLBtFW: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-22_04,2026-06-22_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 malwarescore=0 bulkscore=0 clxscore=1015 phishscore=0 adultscore=0 spamscore=0 suspectscore=0 lowpriorityscore=0 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606220221 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H2=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782169388267158500 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 22070d8c3fe..3cffafa5b76 100644 --- a/target/hexagon/idef-parser/idef-parser.y +++ b/target/hexagon/idef-parser/idef-parser.y @@ -872,7 +872,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