From nobody Mon Jun 29 06:52:22 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=1782705603; cv=none; d=zohomail.com; s=zohoarc; b=LtAF7UIjsRENeIcrGav6s7FbGlaJS08X0IQBxyTlBaS6bT4hoZyEYXEPmcDdTEzMIDgbe/TtdC62dlr8tai3aJqv7ZFP8RfiPak7CoBUF48OztqKc/0rs6dIS3ylRRJ7U8wX/19cOeAl/iTJausJtzyqvHRnTPPmSW3sax/4KCY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782705603; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=011SrS5GzZCft5XXyTaQlyV1WtjpEAOEvGsDEjZd6oU=; b=f2auqUXnY2VJeJ6too3rjUlkexIM5dPLLzNxXfL4/xSNzALRNzPAVH/zlA+x+YvJ+OanA5SSEc+iwtDksBZ9oZJa6NitF80Q3X1XbPG525beqTWuXn2jn1lH8S2JQ3DGEmTjQzyxMyUFH6sOork8V8b0WjGD5rnV0VRoytVAuYQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782705603904204.04978694727015; Sun, 28 Jun 2026 21:00:03 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1we399-0001Xz-Bd; Sun, 28 Jun 2026 23:58: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 1we393-0001Vf-0E for qemu-devel@nongnu.org; Sun, 28 Jun 2026 23:58: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 1we38x-0006Am-Iw for qemu-devel@nongnu.org; Sun, 28 Jun 2026 23:58:50 -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 65T2dKGC1555438 for ; Mon, 29 Jun 2026 03:58:44 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 4f26u74e6u-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 03:58:44 +0000 (GMT) Received: by mail-dl1-f71.google.com with SMTP id a92af1059eb24-1383723dfddso4473101c88.0 for ; Sun, 28 Jun 2026 20:58: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-139fc2ebcc0sm8367088c88.14.2026.06.28.20.58.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 28 Jun 2026 20:58: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=011SrS5GzZCft5XXyTaQlyV1WtjpEAOEvGsDEjZd6oU=; b=dH hyuMI1acKV+MhvOXJWmoC/w+UMBrpRpj1+ALSAC/kWVCwqbJ8uKJqiwTaElsLsIN QSqqwv1Yl75+xdQnlrW/JV3Bc+PwdBIoPtSTus48Xgpv/mq3ePpgERtc1b5Yvttv iZ9meIo/7nckWB8ULm/Ie/AswHMuDnZNrnSRjy8b7yptbZ+A67ZsO8wVhijIQAvB pYmowtYmEMFieSmSL5zuum+OfpyCqHG88TAvN8adXKDNQOQGffTkQK9UWK5EOU80 jg9/5Ozoxae6gWOjAu4hRWtnCquwey68VqFALvMGmDTlOQByrE3LIsEIvtilx7JR W9ADZzm7QBVv7qVVZIJw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782705523; x=1783310323; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=011SrS5GzZCft5XXyTaQlyV1WtjpEAOEvGsDEjZd6oU=; b=dd9xroe3Oe26XH4hwhPBHvvkErlFI1dbCcpoma+8e/Twv1OG2d589xZPYghEleeVQv DLUu/Hv6IHnENApc5cc3LloCjqt8oQOrqzfHTOlJjtsvUP4T8kKwOR4+ye8MxJM/4snB pOEjLNHk1m2cHIksJG0KXLMReGES8DjtSAygbqd1YmDrSBcak37lidRXd/qF5pnYcmet Pw2LBL6acEa8q4/BAv5nAHUD4vzWPIwlhT0F79tmCl2vkO2wVnymRNyrWotS/+7zwIhO zuw2zB327qCV4nqWXhzM9oD+ARRSn+SwpU2r4mH/Q4yZTt1f0lkm8cztF9U36uaxrOy9 eTpQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782705523; x=1783310323; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=011SrS5GzZCft5XXyTaQlyV1WtjpEAOEvGsDEjZd6oU=; b=sOFAuQd9Pmp6bmQwS7bloG9o0G7u1F14LRlYMj+GUNjZR9FJSug7frTdiw2+ywGzEp x1HrvRhxbHI1463WbUe6BTjLgY6c9VvkdBZ16QTgknVF+9/3RT44TnOiwXJzRZgomZ3H EOotSWgGUUYt2TK4KzQSbjbQt+QPwQ/X0XspwqR7NtCxXCnyC2yhDR6yiJ9uUOPkb/dH NTFijK8gIzsI2tf1DyPotKMGpo3ldcc8ZWO0SfSw23l9am8OHKRg3PXvDzjUm72epUQu tputEEMYNxvzw5b7W97fFEh1Y4QtnrAlh/a/LyN0MMu0kOJe+j0nDvQmXAkqHstNzLyN 5ndg== X-Gm-Message-State: AOJu0Yy7xGYD+Q7tYCEdCKJoq5WoWRmBa+0gaGCK3hql68Cq4umtipZs gd/jOn6k8abpMVP6KWZ5lrLxOic4MVcssoyR5zchFEfJ9OGUdqiD0umTUtVhceCMBIgIYLETEY4 61H4crELqLOTPJhQpWG4bLttgEi6KzS+UG7inK+Hxx2dKN3zys1W7wrKHLl4wQ6KDKA== X-Gm-Gg: AfdE7clS8+pnP3Hqb193Bee2ugxqCzKSBrHxwJVFcBfx2r2WnLF/UtCJIwZMfhFzyNq WG06aL2SkgJYttB/yWpbr79N85UqhyewqrTBS8VrWVDeIEizTE3oErl3QTpY/hWwPt+dj10e/C5 2ndiJjWACVfDgCq429Qwt1Wds+tyNt78XzBOYvTRmX+AVTpS8HkiU98byNW0SgUs9lAJA8R/pDg ocDeT8dK1JyCYTGUhIwWhpqrK2eoiFzGnCUNx2gNcGl0xDUuGA2PimoLzWTRbLWj7TFrf5U78+M fNZTTwRleHGfis7HdhstsH6N/soVI46CooanAVN9Z/EwYpVsFPFplhQEeTai7e9Z65dF2xm4jv8 Y2fbHVBBjQ2qEmZDDBqDMEVf8GVfJh3dprwF61sSEwttPn0xjWUcZG0NtrAM= X-Received: by 2002:a05:7022:2585:b0:137:9399:fc59 with SMTP id a92af1059eb24-139dbac8341mr11650787c88.21.1782705523140; Sun, 28 Jun 2026 20:58:43 -0700 (PDT) X-Received: by 2002:a05:7022:2585:b0:137:9399:fc59 with SMTP id a92af1059eb24-139dbac8341mr11650779c88.21.1782705522663; Sun, 28 Jun 2026 20:58:42 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Pierrick Bouvier , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Kohei Tokunaga , =?UTF-8?q?Alex=20Benn=C3=A9e?= Subject: [PULL v4 01/77] tests/docker: add flex and bison to emsdk-wasm64-cross Date: Sun, 28 Jun 2026 20:57:14 -0700 Message-Id: <20260629035830.1520296-2-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629035830.1520296-1-brian.cain@oss.qualcomm.com> References: <20260629035830.1520296-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI5MDAzMSBTYWx0ZWRfXxcIN38Hh0dCF ASBCkoyiB72QgbnXpxGIXnuAQxSiQMScEmeqfnwbaL/u03mpLDU7psk42iY3XwAJRfcPVvEpomA p+6m8343o/AjsuDBm3smDOEBu5TI06I= X-Authority-Analysis: v=2.4 cv=ftnsol4f c=1 sm=1 tr=0 ts=6a41ed74 cx=c_pps a=JYo30EpNSr/tUYqK9jHPoA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=VwQbUJbxAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=20KFwNOVAAAA:8 a=dTW7Cx3YwPv8u8hf8ikA:9 a=QEXdDO2ut3YA:10 a=Fk4IpSoW4aLDllm1B1p-:22 X-Proofpoint-GUID: yXycWgoca2XdVo-DDCwe-2ER3sLt8F9x X-Proofpoint-ORIG-GUID: yXycWgoca2XdVo-DDCwe-2ER3sLt8F9x X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDAzMSBTYWx0ZWRfX87Hg1jXBF26U 4GBKDqUwRBwcsbxqdPnDqDhtmUanZBqrxG3X55SCN1okRqMvirevwVclGV2MwStjHmS6dxnqOMt gXiOwFmq5kX1UqdI0ketKoLOGhEPsb5AzZgxSUF+n7ETNE/4U+UjB1NTTcOk4R1AqXFcTxsaOfX XZ0pc6TwqVSIJYHuev/BdOYocbtFeLgxiv1gdvkqXOgNptvFMe/z/4XwrqkQQ7jREMzG2Ks2cDU xVXwpAtY6diLCulE0NF7PvqhHYLGXuWdcjofGxd6kaCbSmtMsyH8nvXh19zSAYKS+zW57u3Io2c abdex0lKlrm4OWz6Q7YykKkvaBbmbOTITbRnfOogeswcj1TaAEnZZXleNNSfkbe6xf5uJdmbEeK 1zK/WrXfnmn+kd+3Q5y2kbOrI04/vYDRi5zEzAd+tc8o3P4WvutNuXVD/AGgHxFrXhWUl2Kz/kJ MNi35bByIqA0m159X4g== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-29_01,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 malwarescore=0 suspectscore=0 lowpriorityscore=0 impostorscore=0 priorityscore=1501 adultscore=0 bulkscore=0 clxscore=1015 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290031 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782705606721158500 Content-Type: text/plain; charset="utf-8" The hexagon idef-parser requires flex and bison as host build tools. Add them to the emsdk-wasm64-cross container image so that wasm64 builds including hexagon-softmmu can find them. Link: https://lore.kernel.org/qemu-devel/CAJSP0QVk6wsOnPAspC4YfXRp90saKibQf= D4Mk-44-RQo0k=3Dz3w@mail.gmail.com/ Reviewed-by: Pierrick Bouvier Reviewed-by: Stefan Hajnoczi Reviewed-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Kohei Tokunaga Signed-off-by: Brian Cain --- tests/docker/dockerfiles/emsdk-wasm64-cross.docker | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/docker/dockerfiles/emsdk-wasm64-cross.docker b/tests/doc= ker/dockerfiles/emsdk-wasm64-cross.docker index cbe20c7193e..c04a741b0e5 100644 --- a/tests/docker/dockerfiles/emsdk-wasm64-cross.docker +++ b/tests/docker/dockerfiles/emsdk-wasm64-cross.docker @@ -19,7 +19,9 @@ ENV CXXFLAGS=3D"$CFLAGS" ENV LDFLAGS=3D"-sWASM_BIGINT -sASYNCIFY=3D1 -L$TARGET/lib" RUN apt-get update && apt-get install -y \ autoconf \ + bison \ build-essential \ + flex \ libglib2.0-dev \ libtool \ pkgconf \ --=20 2.34.1 From nobody Mon Jun 29 06:52:22 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=1782705693; cv=none; d=zohomail.com; s=zohoarc; b=PsgBubwYYFNJYimyIvkBB+Mfircm3eNFtYXYirIBA0XBXTrK/HZQe0u1yoMA+6e1XdVL7qMOcf/zuhWqrL1CHk9A0wzz0Xt4Wd887L3hbL2mO47we6eC76Q4VolQnuZyBpdOkIRNeXn680CPF6v9L5/BXUxxo88lqgtGyx8egQc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782705693; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=5BKERPusdCznfStdSCYDfdVIL/vKWWKPSQ+gj4UQjS8=; b=SFUU63zoxcnGsUwXISGY17JCKo4EM1hZ6Ya5DVWZJHcNgX8p/TdEKewpMJYtk0P0WkfS+aWSwwWcshFSXXfJm/WiBwg6JIQYdj6yCmJaQ88ZZbeEEYHpGrOqRN8DTV0lK5b9JxtG1Rh+Orx75+eW6jEMgFXltVD4lw2Ta1qoSH0= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782705693077171.0524443167327; Sun, 28 Jun 2026 21:01:33 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1we399-0001Y2-Ol; Sun, 28 Jun 2026 23:58: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 1we393-0001Ve-07 for qemu-devel@nongnu.org; Sun, 28 Jun 2026 23:58: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 1we38x-0006B5-J5 for qemu-devel@nongnu.org; Sun, 28 Jun 2026 23:58:50 -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 65T2dCPc1550561 for ; Mon, 29 Jun 2026 03:58:45 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 4f26x8mdqc-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 03:58:45 +0000 (GMT) Received: by mail-dl1-f71.google.com with SMTP id a92af1059eb24-139f02b1fbeso7529547c88.0 for ; Sun, 28 Jun 2026 20:58: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-139fc2ebcc0sm8367088c88.14.2026.06.28.20.58.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 28 Jun 2026 20:58: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= 5BKERPusdCznfStdSCYDfdVIL/vKWWKPSQ+gj4UQjS8=; b=NxiRdc1KQmltgOLB zAcvLf0F715qqecpKyEP/y3woWGpIN6kXfVkGg/gJCUjfQKhxekYtv9Xj/+ddlu4 61PuJIwl4J4u/nm3c8nSArcBT71F8ToB0BM8+VvxK2r/6eUj8PJqrqJvf97o3U4J 60GZ8kiJe3l9EIsH7UNODlwwy154PZYfC8981i4DvJIxfL9iEYTdO1plYS7kSdzz RUuPBMvDCO8uik3GOhezt9XgaerENXbNaD+AFkGm6Mba273gOt1Dv/RP/nbAbVJa VvT6Vhzms8qUGrqa3cMGeQCMYKQUXsXVAhM0ye6wxWME6KJiWQDPSsezGr04eX03 WahvVw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782705524; x=1783310324; 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=5BKERPusdCznfStdSCYDfdVIL/vKWWKPSQ+gj4UQjS8=; b=CAN8jYIWpiIOBmpVHMyHV/PrRSFP6vk/h6wYnfoAXArZAwo9mIybyNzLaNLo6mA5Bb pwmoWv2ocJBP4N8wkVXeqaRK0ZVst6sdo0egQOy2FtT31URxQ7IKG/dfWS08EQYab76x P816NwCivYBXpDlOkizIOogyXkFmsreLXpxoZr80bbukaU1KNOYxK2tmXKlw/j1V/Ir/ aw4zdR1Zhn462NzNb3+YZAb84UYi/C8ATgI6uMlUmKG0nMBeWjAjpY1ObQb+S+rswh0X 6RV8XlSqg/Jo15gl/rTb0J8V+cTBJH2YhgeFzk4OIBjBvCQagYQCZUIrcRe9dI9In9WY RFgQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782705524; x=1783310324; 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=5BKERPusdCznfStdSCYDfdVIL/vKWWKPSQ+gj4UQjS8=; b=g7ioRNNYL1OohmjnGgEpZ+dBGI5LyAfZZe1lMiikPoRRCvKM62M12HOOYtCcAkGz70 2csVCicwUqceKm+8Y+CeryaxeWVCHvttiKpGHat/6CISkTB7XRG2A8VNNVk5cqadkxNY od299lwS02vcC72peNPyMJk1n5wE1pDqaFtjhPdQlpdp8d5FHgz7cPt63mc4irmVnbRp FL5xsxC2PoSgjAjsQZsNPMuSnnJuYTmRFKOM/ZfUQDN+9pBYpckCKqXm+P7yY51dC/Qd 47hiO7HukMqIbcGFIQc0ArNXQU4mJCiUgL4NrcfL1GcF/7sOFOh2f0Vzo3ERjhfs+wWS tzNA== X-Gm-Message-State: AOJu0YxTkO1/329udBJxpuZLKmbxiMfdolbO712x4wKOgRxXuY0Jx6Um oirGA/mgYllCjTiITlEg2hJDmX5ApWE+6rHIRfUgC5/qUZ8EI/WxtXwOi7eRWnzlfnyKf/hAUX0 IESuXTeeMBfMABSYq4ir3G/YQf65XLImkezMpNtr70ZnJ3EflMd8aI/N6Xg/xFD85mQ== X-Gm-Gg: AfdE7cl8y5/xzrHUVICcXKO5efaUTAfudlZZfqk57jSiimfOfxZm9Xuoj/98ry4DXlQ 4N9VWKTW9VXF5lxKF7sK+OAXZ2iCUenKBPB8O0q91ug7fsTqeO/c//C3Tkgoeu34yr97ZDXsUKI vv5uYlgO6xXWI/Iku3OKav2Rm3W7sAKhXwR5XYyentrqYojgZsU7GmRgJq+s5hqou50H6iZTM66 kuAag7tEWWReSRX0Wo/T+WV2dU81W4AqX+tiqoIWdXGvp2tF6WVDBwM1vWDNC/GA2MUhabKy5l9 9NTHt+Z+PZDjspoSwAqt2lWAM4s4hV/KDr0eYwlnOOAI654bSB1EQHH+nfJ0yC8CEMWAuH0oDhm Ta1J6E2xKrg72xydRNHNCTgVMOQm6rJ3TwbXH/E+s/i+XMJYRhdcTyik6c5c= X-Received: by 2002:a05:7022:2225:b0:139:ed5d:3a5 with SMTP id a92af1059eb24-139ed5d0608mr6475052c88.42.1782705524129; Sun, 28 Jun 2026 20:58:44 -0700 (PDT) X-Received: by 2002:a05:7022:2225:b0:139:ed5d:3a5 with SMTP id a92af1059eb24-139ed5d0608mr6475033c88.42.1782705523457; Sun, 28 Jun 2026 20:58:43 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Kohei Tokunaga Subject: [PULL v4 02/77] configs/meson: disable hexagon idef-parser for emscripten builds Date: Sun, 28 Jun 2026 20:57:15 -0700 Message-Id: <20260629035830.1520296-3-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629035830.1520296-1-brian.cain@oss.qualcomm.com> References: <20260629035830.1520296-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: AW1haW4tMjYwNjI5MDAzMSBTYWx0ZWRfX7Mg17qYoQU9N U4CWjATfzdCWJxagEuq4zwrDV517RUVgZEoxlXmx3ylAgEnpsMpRh9+WX4nm4ZhOT0VspQX8DHQ RBUqzBf9jhrZxRJ6N1bggXQC94y9AGQ= X-Authority-Analysis: v=2.4 cv=D+N37PRj c=1 sm=1 tr=0 ts=6a41ed75 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=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=MPO-fdqQ5Q6WhVTBZRsA:9 a=QEXdDO2ut3YA:10 a=Fk4IpSoW4aLDllm1B1p-:22 X-Proofpoint-GUID: sHmUK7gfVk8AKwNX7hFihQjLG_rB4WVB X-Proofpoint-ORIG-GUID: sHmUK7gfVk8AKwNX7hFihQjLG_rB4WVB X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDAzMSBTYWx0ZWRfXyu+HGs2rzHMh ry2KpBwFW1Lb72SFOvkJyUDSwsq1kottsunXJUgGdnFMOPw0u4ZTgLwMf2GE7N4tKipl9qi7kt4 xM17nH8/VYs0rcjrHmpO8rEyCzZMxEoT8OzA4Z4LwWp2o/ac+6drGpnzxYSSA9qhjDnR7bsgati +c99i+VVpVquFwGhe9D87xV/Eg71z7KWSHaezLQfUGp9BXv3rhv6hcIPMHPfUAql2MjFRmQj6TN cBF+AjkutJYaaqk7+1YHhJeuyXeVqt4Twk54yIzTGvz15X4csqkUaCUKHExar809YubXP2nk5B1 wM0PBdFNFUqUX/Ntwnwv0lf7vNsBvIXGlb+/5AMjv+GlBF0odlFv5z7npWeRz7lxA3iP23mh6Yc aTNC5rjUwL6sJNPu/Cwu013xuQJejj3ZO0Nt2nvdyjvNo82KHDjfqyn3897TLvmNr+rV/Ze/pkJ lbAnGTn04rEhlbThAwQ== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-29_01,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 clxscore=1015 suspectscore=0 bulkscore=0 impostorscore=0 malwarescore=0 lowpriorityscore=0 adultscore=0 spamscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290031 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782705695064158500 The idef-parser is a native build tool that requires glib-2.0 on the build machine. In emscripten cross builds, emconfigure sets PKG_CONFIG_LIBDIR to emscripten's sysroot which prevents native pkg-config from finding system-installed packages. Disable idef-parser by default for emscripten since the wasm target does not need it. Reviewed-by: Kohei Tokunaga Signed-off-by: Brian Cain --- configs/meson/emscripten.txt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/configs/meson/emscripten.txt b/configs/meson/emscripten.txt index 4230e88005f..c5c57e392a9 100644 --- a/configs/meson/emscripten.txt +++ b/configs/meson/emscripten.txt @@ -6,3 +6,6 @@ objc_args =3D ['-pthread'] # configuration so explicitly add the flag here. c_link_args =3D ['-pthread','-sASYNCIFY=3D1','-sPROXY_TO_PTHREAD=3D1','-sF= ORCE_FILESYSTEM','-sALLOW_TABLE_GROWTH','-sTOTAL_MEMORY=3D2GB','-sWASM_BIGI= NT','-sEXPORT_ES6=3D1','-sASYNCIFY_IMPORTS=3Dffi_call_js','-sEXPORTED_RUNTI= ME_METHODS=3DaddFunction,removeFunction,TTY,FS'] cpp_link_args =3D ['-pthread','-sASYNCIFY=3D1','-sPROXY_TO_PTHREAD=3D1','-= sFORCE_FILESYSTEM','-sALLOW_TABLE_GROWTH','-sTOTAL_MEMORY=3D2GB','-sWASM_BI= GINT','-sEXPORT_ES6=3D1','-sASYNCIFY_IMPORTS=3Dffi_call_js','-sEXPORTED_RUN= TIME_METHODS=3DaddFunction,removeFunction,TTY,FS'] + +[project options] +hexagon_idef_parser =3D false --=20 2.34.1 From nobody Mon Jun 29 06:52:22 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=1782705632; cv=none; d=zohomail.com; s=zohoarc; b=E7+rmrZ0RCDLk+fduOsRcv1A3pG+yIXtMb4upbFt9IykrUkbH3H62mMP6DOX1C2ZUZSIy0Z5XoWxU/CeKhPKcl3ZyK8Hh/qReH5kuVjGiefweEE4a4CzOx+Y8GlO20mnQQXRU6eYVtryN2N3giBFk3bbT4OH0lzlEjtK1v8MdU4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782705632; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=GLP31WMp9ya2aQSzhpJX7UU63XGBhoUjedxw7x1beJQ=; b=b4j41RC4AH84zwt+OxBQ89j+64TErPGZ531zA03ofRUR6LjfTabuGWjf9Y5KILehLrkBpD0Xq+ybG1bs3r4O84zT+vj6F0h/Dst8ocQh7smNHvXN0xjnZvRfE3ixTipwopGHT1Hm6ihIbryDJWnMONay8kkDOtlmrcOqHBpce2s= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782705632778933.0615839142534; Sun, 28 Jun 2026 21:00:32 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1we398-0001Xf-A5; Sun, 28 Jun 2026 23:58:58 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1we392-0001Vg-W6 for qemu-devel@nongnu.org; Sun, 28 Jun 2026 23:58: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 1we38z-0006BE-2v for qemu-devel@nongnu.org; Sun, 28 Jun 2026 23:58: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 65T2cvqF1549945 for ; Mon, 29 Jun 2026 03:58:47 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 4f26x8mdqe-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 03:58:47 +0000 (GMT) Received: by mail-dl1-f71.google.com with SMTP id a92af1059eb24-139b70ca7e5so5902853c88.1 for ; Sun, 28 Jun 2026 20:58: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 a92af1059eb24-139fc2ebcc0sm8367088c88.14.2026.06.28.20.58.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 28 Jun 2026 20:58:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:content-type:date:from :in-reply-to:message-id:mime-version:references:subject:to; s= qcppdkim1; bh=GLP31WMp9ya2aQSzhpJX7UU63XGBhoUjedxw7x1beJQ=; b=aA CSVTnI3LO3xdaAweRWZpSl7kV9+ZA8kq9RvKgKNA0ks8OoR/KXYLKn0D8gL6bxz0 MrrR8FxB+1fNqqORF/1KzKKQPoQRhmWswr9HXwuUTvqSQ7wAD9HdiWWCNkRakCAX 8cSEPocLTFSqcGnUiO9+3ImdfBckvBYNnEZ6TvrN20/0Jsx7ODuChENEELaad5Cp l8ak+K1UB5fCeV4ZwvZv6WBHd0lpsKEw2qAsKPOjO4zI4voSBvb/OhhO4wnD2Hpd YzEfT9tawfE69AxvDai/RfS+pxNkiWVpPPRhv1JhByJatPlp6HZ6+nlck9N3aQdi liwYzxO7HGh2nycEIxrw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782705526; x=1783310326; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=GLP31WMp9ya2aQSzhpJX7UU63XGBhoUjedxw7x1beJQ=; b=GbsJeBNSd58YUua9RIscJNyMDplhFKqySMsHLq1sQ1R3e1CXebjgVYONIrdcx8+96l ODGk3jN0GPQNX8/2c+5GqvgyOyC7E7mzQKoZwFbfUZNmLwcnkNILB6OfuWtVmviB4U6Z 5Lj8R4OD3YuoxqoV8AA36Agkc5kKjVfTWyVJ1wtGSJlvTJsoF57aOrA0s6+6vvRvpX9f rAMqLMdzSeSW/SPp7jstX7CY5i+QkwJPXfgF1X+R1sw04E3jrNIRzJWbWcI+x2bOiTUO v3Z+8iR2CnCGS81WawM2lU02Lgy8zShySrhRkfYztqTJIs+UlOQ+egCBys/INFRHowNh 8VRg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782705526; x=1783310326; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=GLP31WMp9ya2aQSzhpJX7UU63XGBhoUjedxw7x1beJQ=; b=GxXLPyX7HsYuJvXfB5KwkfYrZHVFLnwpNiE8EYMNX57xNKlRDt70pE3HvfFlhi+Xfj KYE800M+kDeQJEduaw2Yi8Nu0KYVUfJkRKY+TAS8sVcSRpAZssvCpH1NiHwcN60WQ++W rS582lj86hwEVmAusUE8eQKh3DKDKhvFj7pMU/einTKzhAIWqGHk9oPy/mf9zkVeRR5d HeXK00Jv9m6eWUcmNmgkVWWkUAsgb21fbiBqeSfHFwPSk3tDfOvA5jDFufjNEhquRR3/ VMsQWIjH0zAn+FvMvyZkfj2xbWKKdI0loh9/cvfYBI5hT4dUzhbATxbgqz6Fz2EdUhbr 9s+A== X-Gm-Message-State: AOJu0YxQHBksxzo3uCFlwT1UsI8uK9TBX48ndbyFFro3nELJCjdJTpc1 3mbphCIVEXjNYyunXwx83owXuux0bZ/WZqGu9kCQwmORQbMORx9EIeEts8gfduLtcYPXWlwB3Kx rJryozlyr8QdkP/zIqtRrqkUKP5FvF3C2WydAPG8CoVQnc7QVgaRWxZVBkLiORQghsg== X-Gm-Gg: AfdE7clGHEsXkbpt1WL8XoxdohyXFf4q+4JUXs7+lDK45XvN/fgjQ52cxAW+9fGCT6E f0m6n6VAw6zOdBSmDQUodyj+NWZwRZtzFBAwa+evItnAhHMRnHSUR+E3iGNMmFQbrzjPRfv4W4w 5L5UVKlSk2+mpTp9yYvDYrOO6bzIYWrzkWtSupVe/aJq+0jefVFZ+MZU2Evb38bHgipN1neMbGc I0FNfbibsUDIOvOByyNjeZ3rE6ig6TurGHaz4knwxLNvk2GdNtb1HYTf1E/nc0N3CIltjdIfH8+ djbOhO6x+NvLMRs6WARhQNhk4lZnBzdMRc5Gi8+A2SuqRdU8cziks+FiBTgVTAFXwCeBEuaNFgF bfDyGU8P5IIsrvH4EYTrMW6TyUx7riXdunqnndA4+s/1h1XzbgC7WIphJNIE= X-Received: by 2002:a05:7022:23a0:b0:136:d237:b42f with SMTP id a92af1059eb24-139dbaba184mr13286122c88.32.1782705526092; Sun, 28 Jun 2026 20:58:46 -0700 (PDT) X-Received: by 2002:a05:7022:23a0:b0:136:d237:b42f with SMTP id a92af1059eb24-139dbaba184mr13286108c88.32.1782705525639; Sun, 28 Jun 2026 20:58:45 -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 v4 03/77] target/hexagon: use cmd_array() instead of get_id() Date: Sun, 28 Jun 2026 20:57:16 -0700 Message-Id: <20260629035830.1520296-4-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629035830.1520296-1-brian.cain@oss.qualcomm.com> References: <20260629035830.1520296-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI5MDAzMSBTYWx0ZWRfX8Sx5aafhfdM1 AAxWz7GXAUbZml6SwtTymWB/KL213Zwp5XtzbOScfNUxkKwjqfJUqEFdGgJUUFLzVcJJL4lZNT0 JJtGDO1s8cfdn2Wvb9MKbFFNYM03di0= X-Authority-Analysis: v=2.4 cv=D+N37PRj c=1 sm=1 tr=0 ts=6a41ed77 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=VwQbUJbxAAAA:8 a=pGLkceISAAAA:8 a=20KFwNOVAAAA:8 a=EUspDBNiAAAA:8 a=SrZkeIdwbWuKvdoqoQQA:9 a=QEXdDO2ut3YA:10 a=Fk4IpSoW4aLDllm1B1p-:22 X-Proofpoint-GUID: wxw-wkM67ekyBv0AOAuqj3CfzoKKejFT X-Proofpoint-ORIG-GUID: wxw-wkM67ekyBv0AOAuqj3CfzoKKejFT X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDAzMSBTYWx0ZWRfX5jVGDg6H0pYH 8oV4yQ6qwyJq12CZcWZ6yDZWDBd8n5LWv6iobwzovuhEaR+/pAwerGxnutNpnXOq4hF9F7fRDC8 Hz+F2bqw2NWQ2DJaOMEutNDHmA8hh6lB5z6zXvKviDX52JnPIFSBtLjmkPESJf3sH2y0BAyRDL7 w6TtBtRBQheB0lNbxlDrjEYstp1HGoaZfIpjzMqi8GM+k1bh6ixvnrWzqpjKGzet61m8J/a0Kqi Ya5qGS6fwyLW9j5EGfYdswHp9+n8F8L/rL5zyZbtgjq9Y7IhVIJCqyM/RA6YIA1TgeMmQILANBU fJ+JD+rMzIm+LqgUfskUSrl2a5XgMS01jhlzZ68++Tj9+05NSB/oE1DCIMSU2cfY1ZveJ35qz+h 2aLubZCqLNWwZpWT52xfI4HR4B43xtE7HB9hzE1suowWfGUowmEUxM4yoc5RLgjHsfSWeYNJUOz /jIGN9FATQIeUVpW3kA== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-29_01,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 clxscore=1015 suspectscore=0 bulkscore=0 impostorscore=0 malwarescore=0 lowpriorityscore=0 adultscore=0 spamscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290031 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782705634894158500 Content-Type: text/plain; charset="utf-8" get_id() returns the compiler's short name not a program. Passing it directly as the command for the idef-parser preprocessing custom_target happened to work for native gcc/clang builds but breaks under cross compilers such as emcc or any ccache-wrapped compiler. Link: https://lore.kernel.org/qemu-devel/CAJSP0QWzQEgoYMCgZX+9jCvrV6O3RqnA+= df1DpT2R6MZvVXiNg@mail.gmail.com/ Reviewed-by: Stefan Hajnoczi Reviewed-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Pierrick Bouvier Signed-off-by: Brian Cain --- target/hexagon/meson.build | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/target/hexagon/meson.build b/target/hexagon/meson.build index d169cf71b2f..ff22b4e4706 100644 --- a/target/hexagon/meson.build +++ b/target/hexagon/meson.build @@ -270,13 +270,13 @@ if idef_parser_enabled and 'hexagon-linux-user' in ta= rget_dirs command: [python, files('gen_idef_parser_funcs.py'), semantics_gen= erated, '@OUTPUT@'], ) =20 - compiler =3D meson.get_compiler('c').get_id() + compiler =3D meson.get_compiler('c').cmd_array() preprocessed_idef_parser_input_generated =3D custom_target( 'idef_parser_input.preprocessed.h.inc', output: 'idef_parser_input.preprocessed.h.inc', input: idef_parser_input_generated, depend_files: [idef_parser_dir / 'macros.h.inc'], - command: [compiler, '-x', 'c', '-E', '-I', idef_parser_dir, '-o', = '@OUTPUT@', '@INPUT@'], + command: compiler + ['-x', 'c', '-E', '-I', idef_parser_dir, '-o',= '@OUTPUT@', '@INPUT@'], ) =20 flex =3D generator( --=20 2.34.1 From nobody Mon Jun 29 06:52:22 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=1782705705; cv=none; d=zohomail.com; s=zohoarc; b=TJqdJ+69FmZziHWOibhCxUZdxO+82Iqcy1f45glpunyIsQQRMcjENY5GMdNRbCqlySJLpDekObTthI/JaPjrU/lQifH+BDs73uhwbWRCguuZ+2qE0Yp3nvmSbeEGFG+lXLjeZXZQVl1a+C2OzVGqOnpTMCmsSwJWIZgoouLjeMY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782705705; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=OES4OwpY68ze2Hmn3HRKPHOte4o1zK6n49UyqbIUhyE=; b=Lzv4926rHR6i7fKtAiJbdxtN7ek6SnsYnoF0AdndDbUyV+lA9kGmBys+MY+MrxH4zsyiTqoV42lr+VUfZVAc6m3U24Bhq3KKm/Iz4NFR49AE0MMrn+MLYqLfFjNl1/X8xzl3roo8XsLkMIWv0PAtdziHA26U8nqVv4Rnj8X16Sw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782705705668374.26555502394615; Sun, 28 Jun 2026 21:01:45 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1we399-0001Y0-G5; Sun, 28 Jun 2026 23:58: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 1we393-0001Vh-0b for qemu-devel@nongnu.org; Sun, 28 Jun 2026 23:58: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 1we390-0006BO-0A for qemu-devel@nongnu.org; Sun, 28 Jun 2026 23:58:51 -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 65T2d0Ta1518986 for ; Mon, 29 Jun 2026 03:58:48 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 4f2734cdbx-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 03:58:48 +0000 (GMT) Received: by mail-dl1-f70.google.com with SMTP id a92af1059eb24-139ca26403fso793447c88.1 for ; Sun, 28 Jun 2026 20:58: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-139fc2ebcc0sm8367088c88.14.2026.06.28.20.58.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 28 Jun 2026 20:58: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=OES4OwpY68ze2Hmn3HRKPHOte4o1zK6n49UyqbIUhyE=; b=Zk SieSNGGu2kZroYq2Rdynr3KrHlIIxEQzgwDXNvy8FbTB3y85dAliNHpPTIRriMTQ XQLu+pzlbabIop8ERUq7DVQpEUst86ci3k/EYCPJCjIwX+aQwUjHKIP1WHos8qWm qgLI3PjF9noewtp/vQ1ATRw1gQoX7xGbXy4OLLjl32ozQVJrqTGXFgeR4FWIk0zm M7JtqjBcglQ6H4yV57DyjGHPMqeadiSCf3ZbK/IGIfEZoLGD2FNc1Eou8cO9RLAf dGnRrr0sq0L52XeNhIeW0hfJDESs5sjXmowWeyZ9zprMAg8zu4nxgkbgoHPskkdX EYDj8R5k9aYtSsbqV6lw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782705527; x=1783310327; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=OES4OwpY68ze2Hmn3HRKPHOte4o1zK6n49UyqbIUhyE=; b=KPG8sX3OgoKkIjipi9S2Pw3Mz5+Q9/Mc83yxaP0Rp134e9Ev638vehz+WH2I6pWmyL +SJJoqagELc00XZwOFkS4XAyWN/vhJcT4jepGZFhg6vHh2gPl/pTvrz8KA/vHaXeGQhV 6gwqMg4kPjiKny+t98MAU7vy+nY4iuAfpoHfD6SGr4ztG7S7Hg/yGMleR6Kuc2NpRwPv KAag66LdhkGVtKUjCA7Py1FAd2W9k7WQCBLgeNBCfD8M7byO7ubanJDfmsb55SeiHMy5 9kCnqTSuhW5Lkh8xEZkbBvwk6s3ranyyaUOo3w0sV3NNDmQBIeOKbMsUyfuX+tWeqsTv 6qtw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782705527; x=1783310327; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=OES4OwpY68ze2Hmn3HRKPHOte4o1zK6n49UyqbIUhyE=; b=cVNHe5MSj8aLF/YtODTtL3xxIxAFfMV1zQ7+A/nbn2FpIbUswNHlz+KlSQ1mElcsL3 jfw71Ags1PbvqZ4WtLCq5LQpllUkRAe1EcHa2YN8fDVk/dLD91k1fcViNtCuL/lUHQUg lYPScNzpruoDyek9WzO2vOt2mAAbgkVMmfWCQ6T3ArTZTsZo5zAb3iFEq88fan5LZvxw SphExV5GsqqJX2igLxOOhaWL/xUmXLayEciRXO6HV+zNX4W2TSgprmQfcbERuiYe6ktw yt7aNfndmsNCUaHu4e4T4KVgXMnR5CYCBAqMENW47FHqNg1Zt0z1q589MILV8k7hiPm4 0kkA== X-Gm-Message-State: AOJu0Yz+oVrVQ6SWaTS2KbQV3WoXaZCc0NTaVaQaRO74O+L44EsvJL2H 7TBn7pL1Hcj0wVXnvzSNcVdUSZ6+aMcjEwiClFxjsRzev2wjTSpq/SZ62JIj22IttruqpOmYMaP C99s3wF3yGtjZuzeaxJrgaHpUrmiMioOzWV9LfrNbKmch8vF2Hj5mlco+XMJ6POijOw== X-Gm-Gg: AfdE7cmfHbV7m9r5m7/Y7M2HE/YPEuRFErleefHQno9YWrJyvVsZUB+oI4dHuTUDISl fAoPzT8NniUktYIE0ULqQd6f6ZepMqJmOQgzW8xKLqAizs0BvyLEbSwFGJ7Mwm9iSlrMeZrMHoY zg6HfZAPtj4NzroUSEomU+bids7PfX+EpR+Ne+OEtxL2jHDOywZN+gIUY+Nd8dQTkdI7sWgLK+4 hWKlfAam5ST4A099T3VzjpqEAFR52K4Y0aIASQLj3g5dg+qoDooDLHgU398wjz4sriBjt6PDdVG GmSes67O8j40yUcrnmgCwp6sMKeNI9eh7Jm6/aHzK9naAtPU88Xub9I0VU6+42dIux+JSxq736I Q2RFc11gb9F6J4Af/IIAVhOBrX6h8xLPxaTEaUCPTSx8XPIGdI9RiqArNz/o= X-Received: by 2002:a05:7022:69a0:b0:139:7375:c435 with SMTP id a92af1059eb24-139dbac30afmr11128317c88.20.1782705527194; Sun, 28 Jun 2026 20:58:47 -0700 (PDT) X-Received: by 2002:a05:7022:69a0:b0:139:7375:c435 with SMTP id a92af1059eb24-139dbac30afmr11128301c88.20.1782705526654; Sun, 28 Jun 2026 20:58:46 -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 v4 04/77] target/hexagon/idef-parser: open input file in binary mode Date: Sun, 28 Jun 2026 20:57:17 -0700 Message-Id: <20260629035830.1520296-5-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629035830.1520296-1-brian.cain@oss.qualcomm.com> References: <20260629035830.1520296-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-GUID: lt25NEkhALmmG6RHwpw-7sZRQbBZoIwU X-Proofpoint-ORIG-GUID: lt25NEkhALmmG6RHwpw-7sZRQbBZoIwU X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI5MDAzMSBTYWx0ZWRfXwGEAMAygP9s/ UOujSmwIZpwLsGoum1miBOYxIR+Yrj0mJF169pjI3kM/zkdpwn4EUkp1Dzoz58TPCkiftiq7ZVS rH5fKQFILyEU5wkD606Hv23JxQ7Lly4= X-Authority-Analysis: v=2.4 cv=HYokiCE8 c=1 sm=1 tr=0 ts=6a41ed78 cx=c_pps a=SvEPeNj+VMjHSW//kvnxuw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=rJkE3RaqiGZ5pbrm-msn:22 a=EUspDBNiAAAA:8 a=XwlTJ2-QRR3pk5tWCfYA:9 a=QEXdDO2ut3YA:10 a=Kq8ClHjjuc5pcCNDwlU0:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDAzMSBTYWx0ZWRfX/dDgImaW+aTO HhHHDQpdkiwkyaT/I2BNdiE3YdFGHfRINty4+Nnf6mA6bUxsc0GwAhPwY9EHa6fxGO61nuVhlr/ WK+ACXTEK29wM3UjrjViZwbQycsVr7NpEe9rHjfcYsQTlZHdCi9vwimK9C7kUEFMW79fEbgo6r5 GzYc5bG45nmRtkRedh1ziMEothAoqti8U8RlwiD+w0YgKJ9pFUCWCGdCypbSyEH8ualLGAqL5kR eQYpCTAK3F258qi9w7ZOV6sqPYN186GP9zPnjOh7WRn3sguJD0kReu1khGhtFw910uF0zKtoaGX aRwZF6xnIG9K0GRvP27rlTnc91wA/Sm63K9O5DSBh58rDyx76Umn26SKttmRLTNkTJLbiNDEVU5 JKE2dBas5MZY620CF6VIKPJV8DNVAH0ttLGR61kPYAxOwwCc04ALlJ0jtYYkBrsyvfL/EPYsOh0 eDDrov/CLyKdFI4a3Eg== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-29_01,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 clxscore=1015 suspectscore=0 priorityscore=1501 lowpriorityscore=0 impostorscore=0 spamscore=0 malwarescore=0 bulkscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290031 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782705707137158500 Content-Type: text/plain; charset="utf-8" On Windows, opening a file in text mode causes fread() to return fewer bytes than ftell() reported, because CRLF sequences are translated to LF on read. This causes idef-parser to report an error and abort. Open the input file in binary mode ("rb") so that ftell() and fread() agree on the file size across all platforms. Reviewed-by: Pierrick Bouvier Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Brian Cain --- target/hexagon/idef-parser/idef-parser.y | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/target/hexagon/idef-parser/idef-parser.y b/target/hexagon/idef= -parser/idef-parser.y index c6f17c6afa7..caba0d2644d 100644 --- a/target/hexagon/idef-parser/idef-parser.y +++ b/target/hexagon/idef-parser/idef-parser.y @@ -869,7 +869,7 @@ int main(int argc, char **argv) context.header_str =3D g_string_new(NULL); context.ternary =3D g_array_new(FALSE, TRUE, sizeof(Ternary)); /* Read input file */ - FILE *input_file =3D fopen(argv[ARG_INDEX_IDEFS], "r"); + FILE *input_file =3D fopen(argv[ARG_INDEX_IDEFS], "rb"); fseek(input_file, 0L, SEEK_END); long input_size =3D ftell(input_file); context.input_buffer =3D (char *) calloc(input_size + 1, sizeof(char)); --=20 2.34.1 From nobody Mon Jun 29 06:52:22 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=1782706024; cv=none; d=zohomail.com; s=zohoarc; b=VLDkJ8CcQZjUKtALh8Qd4A6VnAZdO8VNBoGJnQH9Gur+aCEOTpAmfKzljDjwdsF4sUYsnjFLqMlf14WuRgQ37f2duszGnA4YhSuold1eVXDsBmOcYSxMiTLmLhO+tr9+d978kdjQz5QgccHGNhNXgJy3Ue2DALdzGmyLlFGHBOs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782706024; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=+/rZy8UJlzfqN6WqDKmB6Z7zz0dsJYHMKxTclfHY1xo=; b=EDG8oS89BeTrwmYODtn1vmgRwDwXb+sGNnnKM3wAFikhw/EuCTH9VyqLO11/1sOKDkdugr+kwemrMzCqBcyOsbHr7HVEQ2FKbVgtSH04HYAQK8TwOPrrGys2mRc2dkql6FWLPCv5SWmhzpofaSz3Cbq7iOjSTPFRKkoTgeo300o= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782706024944381.4343885813943; Sun, 28 Jun 2026 21:07:04 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1we39A-0001YN-7z; Sun, 28 Jun 2026 23:59: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 1we396-0001WV-Fi for qemu-devel@nongnu.org; Sun, 28 Jun 2026 23:58: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 1we390-0006Bd-Ml for qemu-devel@nongnu.org; Sun, 28 Jun 2026 23:58:54 -0400 Received: from pps.filterd (m0279868.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65T2dKGD1555438 for ; Mon, 29 Jun 2026 03:58:49 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 4f26u74e75-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 03:58:49 +0000 (GMT) Received: by mail-dl1-f70.google.com with SMTP id a92af1059eb24-139ca26403fso793465c88.1 for ; Sun, 28 Jun 2026 20:58:49 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-139fc2ebcc0sm8367088c88.14.2026.06.28.20.58.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 28 Jun 2026 20:58: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= +/rZy8UJlzfqN6WqDKmB6Z7zz0dsJYHMKxTclfHY1xo=; b=PdxO012CE3q9iP2B lfksTSk+UPf+5jGW+gDNNSNeF2cQ5X9kZajOhgPSZpCMfroIxmQHm9/cSXpqlkjh jNBeBa5ZkWSOR4uhz71KAFClqZ1b3MhsQENLK+9P0ZtLrmxIJykdIW9CWdeaJyxM jW/GfPP1vVhDrXtnub8C0TpeM8Owo08DgZLHVktBo1z2zE9tHN299n9kKzhqFgfe aJwG4TFCNShVyXuVZp/gqcRK9KUDNjZI0/glAdOI3YTL28YqJ5FFkTnaY91yJObv fmqPk96CLvPN+WigvxJirid+llqgNdc/guwI5OFdGWg7b4mLEHp4jUYPE/JqLbYl dBnYaQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782705528; x=1783310328; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=+/rZy8UJlzfqN6WqDKmB6Z7zz0dsJYHMKxTclfHY1xo=; b=CK4C7U2GMnA8YvoziSkiZze9adGKOrp0sx/Pf3RQ5olo28H7fse8QJwDYmAZ/OKPJH MsqsT4ENnHw59TlMgBPy7fHPea/czjTn/vwMvDzjU8oVXv33tn1sFQBjTBTosFdjAa8E Gug2f1OWbRHNmMoM/aqkRGSjmL297ZjBDYFRoQ3qy84jPcYg+3xQn9sOZTUpox+YuUuZ zejVi6+akY9CYaYzEsgPvhmkjBeqf2K/KZj3V/0B8f1i6hk9/n8RmcpvAXTUb+xBhJ/i Wf7qHSdwNcHXzwglMYky69IyXsH+cN2rjPGuKDxrGOI4JhjUl0LjRleXAEdP7SeSgDCT HnIQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782705528; x=1783310328; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=+/rZy8UJlzfqN6WqDKmB6Z7zz0dsJYHMKxTclfHY1xo=; b=G9azz1UHtduJkb/XTzPx6q6N7Vb5wrM1pVZC8wIHLBTg+W+L6KxMJhuu8cChUB+KFk /awYWSCGk78nKFDf/R49aUOEiEMK6eJbqkMCJr5q/JAVzYLGpYURft9+bajmnaUhlArR QzXipwqBByTbZ+wd35uS7Eh11YAOgLWSyl6b5IlRXreaUY1piLzFXRvCnuz2qR0Yq2Wc qJh+WDBwZb7jGF0q9bjQhqX1sGx55xVNgBQHK7MUn5MvtARBc82gcmRTYaDPo7CPassP e1V+fsqlhnTAY1yQwzRtHkjqfDazrlYSFHGvxZcGIUWm2kh+kPGUTWXyUOXmKQ41d2qs 45JQ== X-Gm-Message-State: AOJu0Yybg9BujREAH8cAElV/JHN2lDO7HUSkZ8Cbq23L9wlI0P6WheVH pEurPWit0qD+Xa+KaqaGwWIVP8X9g0c+rhgsziwPcrfETHOXr5hvQkH41484zEB6IEBGMfmAhct YgrFi9hVSLDVFyQCDSelPAmdp2Jy0R94RURBfkzjdCWbOBGZn4V71W9ylYTFKC/lZ2g== X-Gm-Gg: AfdE7cmxpIhXxBn/TvF4OhRSNO3JnoeUfBuAqYIDGKjaqVLLibb4ceWiL5hxCkNvaZo H3ZSBT2iPH/K/sFupyQl+dK1Fw9GltgCCzEZSuk1ck++/cezNBSjijtWBEBz4dKjGoXKy2qh/yd 6l3WJiDonyvc/fHhg6lvx9gw0aduFmxsPrEzEV1tuc0yi9Y3jaxXxuW3RsRtM20Ar9IKUyP4qGG NVh237RnlmggcuXxcBLBm/zG3wOTHWIGqnZuwQQkTaP3iG6ThF5nZykGRBgMlbkE3Kau0uB+isz UUlC59yJJwXQeAa5C4r04aUwQfEyREnehptj0e9fCygBptD+AS9XKjMP5RmvSLCBLY+EqFsgqro y24GjmN4DzTf4ULZo5XzQDaPvmH+aAzvdm4lmgt/WlBAlAuxClijJr/PZGPU= X-Received: by 2002:a05:7022:f411:b0:139:ed5d:7563 with SMTP id a92af1059eb24-139ed5d947cmr5885435c88.42.1782705528262; Sun, 28 Jun 2026 20:58:48 -0700 (PDT) X-Received: by 2002:a05:7022:f411:b0:139:ed5d:7563 with SMTP id a92af1059eb24-139ed5d947cmr5885406c88.42.1782705527616; Sun, 28 Jun 2026 20:58:47 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v4 05/77] docs: Add hexagon sysemu docs Date: Sun, 28 Jun 2026 20:57:18 -0700 Message-Id: <20260629035830.1520296-6-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629035830.1520296-1-brian.cain@oss.qualcomm.com> References: <20260629035830.1520296-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: AW1haW4tMjYwNjI5MDAzMSBTYWx0ZWRfX0qRcA5ouzP7P DvZafTtkTLsjMkzwzu+znxliLRtQgFRxjneDbzBZDqMOtDG9XciCTEOn791btu8I+i7MqdytyzN 6i6EMfToQ3MCDtS4tlbOF6FFk6G7GtM= X-Authority-Analysis: v=2.4 cv=ftnsol4f c=1 sm=1 tr=0 ts=6a41ed79 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=NEAV23lmAAAA:8 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=mUVmifZYX2f7rcceRB4A:9 a=QEXdDO2ut3YA:10 a=Kq8ClHjjuc5pcCNDwlU0:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-GUID: _4yr39_9CSt33IBx0iJVEFu6I93AQDaA X-Proofpoint-ORIG-GUID: _4yr39_9CSt33IBx0iJVEFu6I93AQDaA X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDAzMSBTYWx0ZWRfX6kAntiuziSzD P9jDS8xXuL6QwFF1YTGAFLOizBcjVUcf894rx4Tv3snrUovVA7nT5Ty+GFJlylc7IlIyH9yhb2z Ci3VD9wjR5fFWmycJZzjtDNb510oTjp72z2LnH5B8nwjIeTXv8+vnqR4Fgj9MVGLdKIYwlqCnwK fV/MWfpv0V4yK6yMODV7uhLbzysARKsel+vYifYAf4XOtS03oSc2ALGJp30ljEH3af/bk02jU56 ZB0e9RcT6mZh5sjpw4ulr5po2GozW3stOPtCt3MkWjvopGIDOpPJleeX0YuFsT5SeS3DIRj9snI NHIXjjjwpasry3/gEhtrxOUL2KnbzTU2jAf11XMx2ORwk8lBQRNwxQfA/02sB5FgII4nOlsBqcY eH92X388HjLz8nrTEDVMaLjjt74sEPYJQZj3vu6dVh/FswCwu1ujIghTSJoWTKcuvdwQwT5sPec 0wHMsR0Vn3jk71dP3rQ== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-29_01,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 malwarescore=0 suspectscore=0 lowpriorityscore=0 impostorscore=0 priorityscore=1501 adultscore=0 bulkscore=0 clxscore=1015 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290031 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782706026781158500 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- MAINTAINERS | 3 + docs/devel/hexagon-sys.rst | 112 +++++++++++++++++++++++++++++++++ docs/devel/index-internals.rst | 1 + docs/system/hexagon/cdsp.rst | 12 ++++ docs/system/target-hexagon.rst | 101 +++++++++++++++++++++++++++++ docs/system/targets.rst | 1 + 6 files changed, 230 insertions(+) create mode 100644 docs/devel/hexagon-sys.rst create mode 100644 docs/system/hexagon/cdsp.rst create mode 100644 docs/system/target-hexagon.rst diff --git a/MAINTAINERS b/MAINTAINERS index 72357df7c4b..5376f7d8d26 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -258,6 +258,9 @@ F: disas/hexagon.c F: configs/targets/hexagon-linux-user.mak F: tests/docker/dockerfiles/debian-hexagon-cross.docker F: gdbstub/gdb-xml/hexagon*.xml +F: docs/system/target-hexagon.rst +F: docs/system/hexagon/ +F: docs/devel/hexagon-sys.rst T: git https://github.com/qualcomm/qemu.git hex-next =20 Hexagon idef-parser diff --git a/docs/devel/hexagon-sys.rst b/docs/devel/hexagon-sys.rst new file mode 100644 index 00000000000..92ebc32dce8 --- /dev/null +++ b/docs/devel/hexagon-sys.rst @@ -0,0 +1,112 @@ +.. SPDX-License-Identifier: GPL-2.0-or-later + +.. _Hexagon-System-arch: + +Hexagon System Architecture +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D + +The hexagon architecture has some unique elements which are described here. + +Interrupts +---------- +When interrupts arrive at a Hexagon DSP core, they are priority-steered to +be handled by an eligible hardware thread with the lowest priority. + +Memory +------ +Each hardware thread has an ``SSR.ASID`` field that contains its Address +Space Identifier. This value is catenated with a 32-bit virtual address - +the MMU can then resolve this extended virtual address to a physical addre= ss. + +TLBs +---- +The format of a TLB entry is shown below. + +.. note:: + The Small Core DSPs have a different TLB format which is not yet + supported. + +.. admonition:: Diagram + + .. code:: text + + 6 5 4 3 + 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + |v|g|x|A|A| | | + |a|l|P|1|0| ASID | Virtual Page | + |l|b| | | | | | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + 3 2 1 0 + 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | | | | | | | | + |x|w|r|u|Cacheab| Physical Page |S| + | | | | | | | | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + +* ASID: the address-space identifier +* A1, A0: the behavior of these cache line attributes are not modeled by Q= EMU. +* xP: the extra-physical bit is the most significant physical address bit. +* S: the S bit and the LSBs of the physical page indicate the page size +* val: this is the 'valid' bit, when set it indicates that page matching + should consider this entry. + +.. list-table:: Page sizes + :widths: 25 25 50 + :header-rows: 1 + + * - S-bit + - Phys page LSBs + - Page size + * - 1 + - N/A + - 4kb + * - 0 + - 0b1 + - 16kb + * - 0 + - 0b10 + - 64kb + * - 0 + - 0b100 + - 256kb + * - 0 + - 0b1000 + - 1MB + * - 0 + - 0b10000 + - 4MB + * - 0 + - 0b100000 + - 16MB + +* glb: if the global bit is set, the ASID is not considered when matching + TLBs. +* Cacheab: the cacheability attributes of TLBs are not modeled, these bits + are ignored. +* RWX: read-, write-, execute-, enable bits. Indicates if user programs + are permitted to read/write/execute the given page. +* U: indicates if user programs can access this page. + +Scheduler +--------- +The Hexagon system architecture has a feature to assist the guest OS +task scheduler. The guest OS can enable this feature by setting +``SCHEDCFG.EN``. The ``BESTWAIT`` register is programmed by the guest OS +to indicate the priority of the highest priority task waiting to run on a +hardware thread. The reschedule interrupt is triggered when any hardware +thread's priority in ``STID.PRIO`` is worse than the ``BESTWAIT``. When +it is triggered, the ``BESTWAIT.PRIO`` value is reset to 0x1ff. + +HVX Coprocessor +--------------- +The Supervisor Status Register field ``SSR.XA`` binds a DSP hardware thread +to one of the eight possible HVX contexts. The guest OS is responsible for +managing this resource. + +.. seealso:: + + ``target/hexagon/README`` in the QEMU source tree for more info about = Hexagon. diff --git a/docs/devel/index-internals.rst b/docs/devel/index-internals.rst index 198f155247a..b89bab9b306 100644 --- a/docs/devel/index-internals.rst +++ b/docs/devel/index-internals.rst @@ -14,6 +14,7 @@ Details about QEMU's various subsystems including how to = add features to them. block-coroutine-wrapper clocks ebpf_rss + hexagon-sys migration/index multi-process reset diff --git a/docs/system/hexagon/cdsp.rst b/docs/system/hexagon/cdsp.rst new file mode 100644 index 00000000000..237529273cb --- /dev/null +++ b/docs/system/hexagon/cdsp.rst @@ -0,0 +1,12 @@ +.. SPDX-License-Identifier: GPL-2.0-or-later + +Compute DSP +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D + +A Hexagon CDSP is designed as a computation offload device for an SoC. The +``V66G_1024`` machine contains: + +* L2VIC interrupt controller +* QTimer timer device + +This machine will support any Hexagon CPU, but will default to ``v66``. diff --git a/docs/system/target-hexagon.rst b/docs/system/target-hexagon.rst new file mode 100644 index 00000000000..65866296724 --- /dev/null +++ b/docs/system/target-hexagon.rst @@ -0,0 +1,101 @@ +.. SPDX-License-Identifier: GPL-2.0-or-later + +.. _Hexagon-System-emulator: + +Hexagon System emulator +----------------------- + +Use the ``qemu-system-hexagon`` executable to simulate a 32-bit Hexagon +machine. + +Hexagon Machines +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D + +Hexagon DSPs are suited to various functions and generally appear in a +"DSP subsystem" of a larger system-on-chip (SoC). + +Hexagon DSPs are often included in a subsystem that looks like the diagram +below. Instructions are loaded into DDR before the DSP is brought out of +reset and the first instructions are fetched from DDR via the EVB/reset ve= ctor. + +In a real system, a TBU/SMMU would normally arbitrate AXI accesses but +we don't have a need to model that for QEMU. + +Hexagon DSP cores use simultaneous multithreading (SMT) with as many as 8 +hardware threads. + +.. admonition:: Diagram + + .. code:: text + + AHB (local) bus AXI (global) bus + =E2=94=82 =E2=94=82 + =E2=94=82 =E2=94=82 + =E2=94=8C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=90 =E2=94=82 =E2=94=8C=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=90 = =E2=94=82 + =E2=94=82 L2VIC =E2=94=9C=E2=94=80=E2=94=80=E2=94=A4 =E2=94= =82 =E2=94=82 =E2=94=82 + =E2=94=82 =E2=94=9C=E2=94=80=E2=94=80=E2=94=BC=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=96=BA = =E2=94=9C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=A4 + =E2=94=94=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=96=B2=E2= =94=80=E2=94=80=E2=94=80=E2=94=98 =E2=94=82 =E2=94=82 Hexagon DSP = =E2=94=82 =E2=94=82 + =E2=94=82 =E2=94=82 =E2=94=82 =E2= =94=82 =E2=94=82 =E2=94=8C=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=90 + =E2=94=82 =E2=94=82 =E2=94=82 N threads =E2= =94=82 =E2=94=82 =E2=94=82 DDR =E2=94=82 + =E2=94=82 =E2=94=9C=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=A4 =E2=94=82 =E2=94= =82 =E2=94=82 =E2=94=82 + =E2=94=8C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=B4=E2=94=80=E2= =94=80=E2=94=90 =E2=94=82 =E2=94=82 =E2=94=82 = =E2=94=9C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=A4 =E2=94=82 + =E2=94=82QTimer =E2=94=9C=E2=94=80=E2=94=80=E2=94=80=E2=94=A4 = =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82 = =E2=94=82 + =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82 = =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82 + =E2=94=94=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=98 =E2=94=82 =E2=94=82 =E2=94=8C=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=90 = =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82 + =E2=94=82 =E2=94=82 =E2=94=8C=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=90=E2= =94=82 =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82 + =E2=94=8C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=90 =E2=94=82 =E2=94=82 =E2=94=82 HVX xM =E2=94=82=E2= =94=82 =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82 + =E2=94=82QDSP6SS=E2=94=9C=E2=94=80=E2=94=80=E2=94=80=E2=94=A4 = =E2=94=82 =E2=94=82 =E2=94=82=E2=94=98 =E2=94=82 =E2=94= =82 =E2=94=82 =E2=94=82 + =E2=94=94=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=98 =E2=94=82 =E2=94=82 =E2=94=94=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=98 = =E2=94=82 =E2=94=82 =E2=94=94=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=98 + =E2=94=82 =E2=94=82 =E2=94=82 = =E2=94=82 + =E2=94=8C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=90 =E2=94=82 =E2=94=94=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=98 =E2=94=82 + =E2=94=82 CSR =E2=94=9C=E2=94=80=E2=94=80=E2=94=80=E2=94=A4 + =E2=94=94=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=98 =E2=94=82 =E2=94=8C=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=90 =E2=94=8C=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=90 + =E2=94=82 =E2=94=82 TCM =E2=94=82 =E2=94=82 VTC= M =E2=94=82 + =E2=94=82 =E2=94=82 =E2=94=82 =E2= =94=82 + =E2=94=94=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=98 =E2=94=82 =E2=94=82 + =E2=94=82 =E2=94=82 + =E2=94=82 =E2=94=82 + =E2=94=82 =E2=94=82 + =E2=94=94=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =98 + +Components +---------- +Other than l2vic and HVX, the components below are not implemented in QEMU. + +* L2VIC: the L2 vectored interrupt controller. Supports 1024 input + interrupts, edge- or level-triggered. The core ISA has system registers + ``VID``, ``VID1`` which read through to the L2VIC device. +* QTimer: ARMSSE-based programmable timer device. Its interrupts are + wired to the L2VIC. System registers ``TIMER``, ``UTIMER`` read + through to the QTimer device. +* QDSP6SS: DSP subsystem features, accessible to the entire SoC, including + DSP NMI, watchdog, reset, etc. +* CSR: Configuration/Status Registers. +* TCM: DSP-exclusive tightly-coupled memory. This memory can be used for + DSPs when isolated from DDR and in some bootstrapping modes. +* VTCM: DSP-exclusive vector tightly-coupled memory. This memory is acces= sed + by some HVX instructions. +* HVX: the vector coprocessor supports 64 and 128-byte vector registers. + 64-byte mode is not implemented in QEMU. + + +Bootstrapping +------------- +Hexagon systems do not generally have access to a block device. So, for +QEMU the typical use case involves loading a binary or ELF file into memory +and executing from the indicated start address:: + + $ qemu-system-hexagon -kernel ./prog -append 'arg1 arg2' + +Semihosting +----------- +Hexagon supports a semihosting interface similar to other architectures'. +The ``trap0`` instruction can activate these semihosting calls so that the +guest software can access the host console and filesystem. Semihosting +is not yet implemented in QEMU hexagon. + + +Hexagon Features +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D +.. toctree:: + hexagon/cdsp diff --git a/docs/system/targets.rst b/docs/system/targets.rst index 5b12858b216..5ebdd0f7fea 100644 --- a/docs/system/targets.rst +++ b/docs/system/targets.rst @@ -30,3 +30,4 @@ Contents: target-sparc64 target-i386 target-xtensa + target-hexagon --=20 2.34.1 From nobody Mon Jun 29 06:52:22 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=1782705627; cv=none; d=zohomail.com; s=zohoarc; b=PJKPtfP+fwZNzPLUp42RqpJuBCQDPfb9QTuEJ+L6Mu4kqDx6WG/8PYC4Kk58V+f0xB8WBR+KzEQ1OT3uHj4RX1fZISH/KOm5xy3KbQDDL1U1cpIiOOXIFtLqzgXEvFQWl6o92gjG3QArSZ/sKajBB4beJBFLj9+YP03R/BfXHds= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782705627; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=PhlMi1XNwmwGtcu38VtvVt8mGfYfYfXO6/8xhorQDxo=; b=K0dcJhnevB51O1pRFlp2IjaXXGvStVHTXo3WsOzt0xD+Hg3GLUPaLslPY05haAkEdvtagveu8OD/GwYHLGTEyK6WUADk73C7mP1ZtV1Prdnack5IGyWgoMO26Uyi8EZL3Tw+K/jTXkT3X8aNDQlQiGxqvrx5gaou3FNxCXnFZQ4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782705627811641.6003279151755; Sun, 28 Jun 2026 21:00:27 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1we399-0001Y7-To; Sun, 28 Jun 2026 23:58: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 1we396-0001WX-Gw for qemu-devel@nongnu.org; Sun, 28 Jun 2026 23:58: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 1we392-0006C1-DA for qemu-devel@nongnu.org; Sun, 28 Jun 2026 23:58:54 -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 65T2d1Gr1519059 for ; Mon, 29 Jun 2026 03:58:51 GMT Received: from mail-dy1-f200.google.com (mail-dy1-f200.google.com [74.125.82.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f2734cdc3-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 03:58:51 +0000 (GMT) Received: by mail-dy1-f200.google.com with SMTP id 5a478bee46e88-30c0a27ad86so6677465eec.0 for ; Sun, 28 Jun 2026 20:58: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 a92af1059eb24-139fc2ebcc0sm8367088c88.14.2026.06.28.20.58.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 28 Jun 2026 20:58:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= PhlMi1XNwmwGtcu38VtvVt8mGfYfYfXO6/8xhorQDxo=; b=c/3RGnWiMzaA5lZ0 ux4WTwxVUv8FxUj/0/hmTsT8yUJm4/F88CnyDVHMYMdn4iiR48X7f6n+7h/WtkMr aRXc7L+m/4LwSVWcPMpvBKMhIKGnG66nCLDw9hAoxbamOZXM8VwWuxrCoP2fFJ6s a9rwupd/Q2RuPYd3GIXkAVmRYRMRbAVSsy0A7Xv1BfqS4eq4RjR+X8DwlOuSKM0v oCDlKUeBVLMme/pJhPAfOm2S8ifPr8i27rQaAP669UVXK8M43QTqM1ok+XmYCXda vc2rRGB41jYh68sz7+smWbzPLVOVjGcsVaHCkdvoUzt+TQ8RD1subSIzaKWJXbXD H5SThQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782705530; x=1783310330; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=PhlMi1XNwmwGtcu38VtvVt8mGfYfYfXO6/8xhorQDxo=; b=EOTfeAcHqm9URz+GJ/i1ud78OcuFjfnoArCTJmzLvJ/4/QYO/9+Pg42SnngUI8rhLV lDi6y8ckeXUlacIkoaxcBEFFo9B0TkkbM9TAxA8RTYmn6R8zMzX1gqkBW8hgCkkNdXbW 49zj0opc/XBupBpzS1mONvDsBwwdmVVBnxl+0lwWawAPhSTXEUc0ncVUrJH+UgM6gyjq NrBTyD8ajwoYVRArNULlMaW4vi+c8tyydfHqjG3RHpEz/LccLUAFXpJAxOK8EMSNj7DC jaLBGfmUeEOvkyo2oD3pJu3rBRUJtGsAEjU4nX3gcqhoGKmMb86x/FQDDo9pkYlx7Pyl HoSA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782705530; x=1783310330; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=PhlMi1XNwmwGtcu38VtvVt8mGfYfYfXO6/8xhorQDxo=; b=M59rPK5O4PpiWJo2iBACPZZo4iG4nX3Q5s8P4bgXIQUoSfpdKcWbcOvCMaWeLPVpcr tZvSwijA9QUNyzwcCHgsAcimLavfz2N057HXPXNDSiyZQWjWY2/esGoVFn+skBCsgsZT 6LsrFk6KouErdDqyrmVemPMtxNK0GL0sd7PwHMuavCycP+D1AfDBFHubrUdlm5nG6GVR BfML1bVfxXFzqFWQSGHR8sG0/Xs2x00Hn93C+STrWyYdNZbw2eP9lHP1WKM/XTBLCLs1 YO+LJQ0syTTm0LnphDpWp/3T3KEU3TlyBVQn690ZmGVqjN2lFP5b/MF4tVCaeA/Lr8rl RA0w== X-Gm-Message-State: AOJu0YxXTpPPjZt6cwtauU5oD9k0X+az4GHRg9UGq6l5KsdGJ/Nqla0x xVRPG9cgN+FShaZdX+rbdQqDSkHy8ROw57VTFODCUTbfGf2YjbmhLh8h8/DaAkK3EX5RTORtVvV K7SJocE1EGdfpHgiLX9rQEwnfjzV7ykMcqFcAoPX0ex8Zy98SLLiHaK7F0rIgLlSUwg== X-Gm-Gg: AfdE7cn2BBtJw7BFexlCWcxuKRd09wfQh34d4yvyiDUWYYqMu5zCYW+DlThs7wtoc6P KtfalsqpiaMk0zKXym4v/JSzxcJBZUpDAr07M9E5fIfgXk7Y5H+McdDmVKkQ8o8GDvk5tJeORFn 1MEGDoE6Y8LS5RO4BI3QXG1TRXUt2yu1sEaaUwM+RBZwEDnjfHweX0InfjXDDrKn2ps624kyqlY QddzvyH5amcoybo0bdwcrlT7teNjGZ+RCFxX3ij+fyfhZV3kBNWxycMA/EDXLin1XYA91Qyu2Kw f30qYkksPSHxjd2C+48iHViMxCBZMiLIEri+SffhXlGk8rUBjmipJ2fJR8OHjVeGQj6/1YiNPfS ZTXn5u3288zTzdweMTh3flu2iT763N9WbHa719RqDsrtH7uA5CSK3soePNjA= X-Received: by 2002:a05:7301:e8d:b0:30c:ab4d:3833 with SMTP id 5a478bee46e88-30cab4d3cb4mr7058426eec.42.1782705529987; Sun, 28 Jun 2026 20:58:49 -0700 (PDT) X-Received: by 2002:a05:7301:e8d:b0:30c:ab4d:3833 with SMTP id 5a478bee46e88-30cab4d3cb4mr7058406eec.42.1782705529460; Sun, 28 Jun 2026 20:58: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 v4 06/77] docs/system: Add hexagon CPU emulation Date: Sun, 28 Jun 2026 20:57:19 -0700 Message-Id: <20260629035830.1520296-7-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629035830.1520296-1-brian.cain@oss.qualcomm.com> References: <20260629035830.1520296-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: f2_8Ils9tI_HPjYqxYWF_NDf6c86y452 X-Proofpoint-ORIG-GUID: f2_8Ils9tI_HPjYqxYWF_NDf6c86y452 X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI5MDAzMSBTYWx0ZWRfXzkeLqpUlIG5h vVIfWMfgIDX+LH9p7tejkd1vKoI1b5Dd1MQRbKzhAgjhIz1LfrtRm5qVAlJL7GCxd/wLKKu+XNZ e3leRUElKXe2wqkS22NlAt6Kj4G8/IM= X-Authority-Analysis: v=2.4 cv=HYokiCE8 c=1 sm=1 tr=0 ts=6a41ed7b 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=EUspDBNiAAAA:8 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=14gtCLEoMj5qQ5-DTC4A:9 a=QEXdDO2ut3YA:10 a=6Ab_bkdmUrQuMsNx7PHu:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDAzMSBTYWx0ZWRfX8sYqXs7t0jr3 lK89acWaHsf+EDcVH4LFDh0mkFXYuxAikzmIHWW7kiR8xh5SisnIzmOcGY71HsXBvRxiB0b/8Pr q1dEas7hhdeCj0AGDCesDAHnhtamliKYh7pq3GGCuhq6P2YVXPkmRLWGonAPSf379YViJoXeAKc 3NWsztL8V1X12w3xIGgnoIJbGNHECamTfmLOM/WzMn8WuttbaHyq+iLfLc9sxrOfId1UmeAnW0/ Tw0XoycAAq/KjCPoN1E1j2f71R8lqPxC+FenJdFVl/OCCQ/AqbyABN68sLD/wy+nutAN2Eg6Gbv ZYulk9YrbwfPoHTrtHFc7BT5NfKs4Fs0BgvqxnYtZV0goyaTRR9uhtfSKRCS9fF3SQeOi1Gb7QJ IS64zFwbt6OiMeZc13JEYF9suFs1ooqZQcR5XMcu3UXq+uPF7GrApWpisLc/8JT875oXgPqgYN1 TArqefoyPEbcj6B7iIw== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-29_01,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 clxscore=1015 suspectscore=0 priorityscore=1501 lowpriorityscore=0 impostorscore=0 spamscore=0 malwarescore=0 bulkscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290031 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782705628921158500 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- docs/system/hexagon/emulation.rst | 15 +++++++++++++++ docs/system/target-hexagon.rst | 2 ++ 2 files changed, 17 insertions(+) create mode 100644 docs/system/hexagon/emulation.rst diff --git a/docs/system/hexagon/emulation.rst b/docs/system/hexagon/emulat= ion.rst new file mode 100644 index 00000000000..36f54f058af --- /dev/null +++ b/docs/system/hexagon/emulation.rst @@ -0,0 +1,15 @@ +.. SPDX-License-Identifier: GPL-2.0-or-later + +.. _Hexagon Emulation: + +Hexagon CPU architecture support +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D + +QEMU's TCG emulation includes support for v65, v66, v67, v68, v69, v71, v7= 3. +It also has support for the following architecture extensions: + +- HVX (Hexagon Vector eXtensions) + +For information on the specifics of the HVX extension, please refer +to the `Qualcomm Hexagon V73 HVX Programmer's Reference Manual +`_. diff --git a/docs/system/target-hexagon.rst b/docs/system/target-hexagon.rst index 65866296724..416b8f7be76 100644 --- a/docs/system/target-hexagon.rst +++ b/docs/system/target-hexagon.rst @@ -98,4 +98,6 @@ is not yet implemented in QEMU hexagon. Hexagon Features =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D .. toctree:: + hexagon/emulation hexagon/cdsp + --=20 2.34.1 From nobody Mon Jun 29 06:52:22 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=1782706009; cv=none; d=zohomail.com; s=zohoarc; b=kKtJMOcCrOgBxI0LFxjWG7nhSpDPJZHehRXnT973e1l8wjCPg/yrkrlnGoYFkDB5MMSSFfrjcpwAosubEXRiN2eRojLF+H4+gFnQA7oDZkrAO9c0u2q88XrMwxVtHsseP/vstcnCJ7oDM/4icZSKqmK1Dh/9jr4dZNRywBFfpp8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782706009; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=BGaDBfoc9eEReZ3C9s3hym/wbuD28nYeBaTN076KWLi6N2Mc7C7zOYwzhsfKG9vEUjitIZxncvIXLrlXv3tnjItC2gUgNcHioIbXbGom5p/pkxFGOHRwtFlgFf5qMj+bF7RRU7MG3ylPuvmluMNE/3MvrcJRq0ub+IzgCMSZjPA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782706009859343.16283322453194; Sun, 28 Jun 2026 21:06:49 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1we39A-0001YR-A5; Sun, 28 Jun 2026 23:59: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 1we396-0001WW-Fy for qemu-devel@nongnu.org; Sun, 28 Jun 2026 23:58: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 1we393-0006CK-Ek for qemu-devel@nongnu.org; Sun, 28 Jun 2026 23:58:55 -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 65T2cwxA1549989 for ; Mon, 29 Jun 2026 03:58: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 4f26x8mdqu-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 03:58:52 +0000 (GMT) Received: by mail-dl1-f70.google.com with SMTP id a92af1059eb24-138acbc0e69so14149828c88.0 for ; Sun, 28 Jun 2026 20:58: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-139fc2ebcc0sm8367088c88.14.2026.06.28.20.58.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 28 Jun 2026 20:58:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:content-type:date:from :in-reply-to:message-id:mime-version:references:subject:to; s= qcppdkim1; bh=IkxVmrZuFWa1Fs3sFSDNQQouCUhLSalQWx3BbBytT1I=; b=gQ Xjrt3+HPT4WmhIvw6UGg5msEehI7demWlj4t2vMrO3oNAKnHx57i9Jvfo7S9mANm KvlIQkb8nI3+esPZhWdiZ34XeY2V+OD1smSuVo3qTiSWlPpDdW/ya8UJSQtBmzAu EHh2oQTdVOVy2GPHoWBBlbwsPYSKiXf2qbAZ8hNyn0g2mVecClckop7IVBfgZYgB dllyufnws8yDO/LoKE3KQd3AAlh4iMOJkg3ftZ4Y6NaRraaAn1lGgFMJs7AM0VIr wYs+hUBLTI4WGykBGESgSXXJVtp8m9covGS4vZ6qQLL0Nfso/Mg2c+EUbgRXJx7Z 5pz+eP0C3dUjmfMeJoWQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782705531; x=1783310331; 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=CcqqSffwZUgWaGGHY5StnPc2gBy5jq0FchNnHMTwGKa8KnRZH/a2ItTzFzsGtw+uu2 DxSmE2bYZpg0XagyQgclPtzo+YxsRxazvVURSvpspNwz8wpY+UCFt8l9W+nZkwe/P/7C ZRRxDCDysDayOxxhKlbd+H8M2ajNDYORiav3iSnOYnu0qeMTSYUr/9CLROsuJb9UKDbs sJkYbdj2vt9O8xFtopJRIibzw2Dywjehgna1Ipx4qZBxG4zFnN2qyujTSoGuleAUrk1b u4rM/cXtSkx4r/L3yZbAWSOH/S49Ek99F0ZsKxJYEHNdBgHxtlkmoIy+UlfW21fzCTpL kgJg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782705531; x=1783310331; 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=r/FoAbP2sNFBRyLjs7QUMMJqEjZ/QlGDRsHR2iK3MW1QUq4IDJe8vhYUmeAseCZmIx 9eBrkhN8w/E160LYIwPqY8qDNz5IjdcE1kRliIKeny4PgDATVLXLqdDQdqhwhgI80n42 fuiVRHW36rKRiH2XwEJonD1sU5GAYZmBKpuURgmT6oxPJI7NAlOf+6d7616f8f4dHej5 wBcqLhHI2UH4FIkS0cbpo6HCcmRH3WMQc30GPtEwBAiZAoiEpEsxslRw+F3qZZxDAPop q9XgvfbwZKvMPcMg173GhVl8fwYGQzRpk/40+a94ftcHzmQcxEyckWcS0ZShcnu+Q7L1 XVtQ== X-Gm-Message-State: AOJu0YxGXPbs+ITf6QModlHoFM6JBihtk6BlmUegsUz82dt6rZRLVio/ rM6F7wzQAv3o7siSwSBQpYI4wCtOYLdQDjWxhc0npUc0967qCqL6cXjq0NPrb5uKlWptbfQzZGS l1Njd9m0ZvyWxk+68ytX7YhTN7z11WBnTUZubTHdo+8jpihJhVXeZfDqnXM1kPZLCkw== X-Gm-Gg: AfdE7cldyuL1qenEx1gjdEpDICyB2ahFscrqF7ipiKQ8Y4828M7jxeZcHdCORH1CDAJ x8WxWoCDoe3nynJ9gyCfBE96hzPZcUxdatXTtfajYGL7pxvozUDzVNkzOrTPuwMgs5JSmyriocc ZZjVSl4QcEPg2soAgxOxN6bv2bL9f1fY+/ox33A7odXC9MgZcbTwR6jzre4zYDoeVc6iWEEbY+w zOa9yFO6Tx2dsNYepfXuWqCRhXngaosSiB8sEWsVLhoO6KeTLYHYAaE9wuPjg+Az/fPcfgibGHR JVO0WALi/yvH037FnijCBDTihj+Pqf4xXo3EgjZ756hLOwHZdVKdwqNBnPjDAxo1yiLiOHh1gsy rI6AzQ8tWDumYfJLx/mveq1BY35Fm42hOvj9h34LdPPBISOfDbSAvtZmU5X4= X-Received: by 2002:a05:7022:5f14:b0:139:ed5d:1b63 with SMTP id a92af1059eb24-139ed5d2271mr3824541c88.49.1782705531455; Sun, 28 Jun 2026 20:58:51 -0700 (PDT) X-Received: by 2002:a05:7022:5f14:b0:139:ed5d:1b63 with SMTP id a92af1059eb24-139ed5d2271mr3824532c88.49.1782705530898; Sun, 28 Jun 2026 20:58:50 -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 v4 07/77] target/hexagon: Fix badva reference, delete CAUSE Date: Sun, 28 Jun 2026 20:57:20 -0700 Message-Id: <20260629035830.1520296-8-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629035830.1520296-1-brian.cain@oss.qualcomm.com> References: <20260629035830.1520296-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI5MDAzMSBTYWx0ZWRfX1MmKr2OHlwZo JdPGdVDET1FjY0/QfhjwdM+oqn/o3NH+ckZcUZ7uv1QAMvBTe7tisWQV1YBmtahCvCQVpjGxdBX 3Q3O54C5LqcfUtlHyXVz0bAqLnxBdS4= X-Authority-Analysis: v=2.4 cv=D+N37PRj c=1 sm=1 tr=0 ts=6a41ed7c cx=c_pps a=SvEPeNj+VMjHSW//kvnxuw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=3WHJM1ZQz_JShphwDgj5:22 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=KKAkSRfTAAAA:8 a=pGLkceISAAAA:8 a=YHbvUooXmMNqKe3LDhEA:9 a=QEXdDO2ut3YA:10 a=Kq8ClHjjuc5pcCNDwlU0:22 a=TjNXssC_j7lpFel5tvFf:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-GUID: KVADGXljVLOyiHcR4-7ytZaNN_4xevJG X-Proofpoint-ORIG-GUID: KVADGXljVLOyiHcR4-7ytZaNN_4xevJG X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDAzMSBTYWx0ZWRfXyhhTydPFnVNg 6u4qzGJl8fQqoSegvh+WdCiTyuvdykRTZIbwWVl2WVzXacaCShhDji2P/6VnoNJQg2SdUypBRVU rm01sDUXggZbXnloaVhzOBzrTpnnc1sk/j2IgJZaXUIT9jzQFQvnYMYTSKCDq7+9CCarH8gyhqH +5gn4S0f0P0tSVJnn1VvePZ3H+8EldIynimmGOlLskpiqHltVsy8O6iqt5x0YFTtDx8jgb+2o5v A7KyfocT2jqXHtHaODkhrM0gTmW/PNsVGdHwG/SmnLB9lqotpS/CBDzCiZqfCCmeA+7Yiyl6D3k 4Mxfp+io+MDQMqkCmpRKCQorr3apPFTzkgU4OBXVK6Nr1emZnROxLb0xDL+ruF+1nZ59jhxK5I0 SIN6zz2XWJulzHJ0E2nawyYhpD2wFcgY8MqeJGwqumdt6JLv7p5MYCfPWMv+LHezjffFJr0ecC/ daOSvPtxPox1km3s9zw== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-29_01,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 clxscore=1015 suspectscore=0 bulkscore=0 impostorscore=0 malwarescore=0 lowpriorityscore=0 adultscore=0 spamscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290031 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782706010647158500 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 Mon Jun 29 06:52:22 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=1782705600; cv=none; d=zohomail.com; s=zohoarc; b=KIBPYmSKrd8Q5741tLZqyKklq4+mzY4gEPQYVjopyKkjbGnohJ6Wllrf3DuDG5G3y8L85h3Z0ARA8/NqoXTlA8+P/25N8KR/4JOIEqe7xVIm3T8WnBkDi9xRFOTz7clAUGCUikz6fTVfXc9sGTFsLbbtZiXk+61gRvB71DMstUY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782705600; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=SpCl0azya2FmX1JMjemEyAwWnHyhC1vMbep+0QTM59sT5fG2Y8n4ehCVRALM5tud8P3ZAU7+wwhrDn3N0U3eur//K75AQyADYB7Lp0f1gstHSWnYQbfDHIedWgBEB8UnzjxcqZ0PqQ8kN5qkiARWpHHMQAvFeU7wS5vmXVSarAg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782705600540708.6173228120385; Sun, 28 Jun 2026 21:00:00 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1we39C-0001Zi-Df; Sun, 28 Jun 2026 23:59: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 1we397-0001X1-K6 for qemu-devel@nongnu.org; Sun, 28 Jun 2026 23:58:57 -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 1we395-0006Cl-2W for qemu-devel@nongnu.org; Sun, 28 Jun 2026 23:58:57 -0400 Received: from pps.filterd (m0279869.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65T2cxvM1562318 for ; Mon, 29 Jun 2026 03:58:53 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 4f26tuvd15-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 03:58:53 +0000 (GMT) Received: by mail-dl1-f72.google.com with SMTP id a92af1059eb24-138acbc0e69so14149880c88.0 for ; Sun, 28 Jun 2026 20:58:53 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-139fc2ebcc0sm8367088c88.14.2026.06.28.20.58.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 28 Jun 2026 20:58:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= akHFVisJDbmBFFMLQN2z4af12XW5M1jZKu+CQ2LFdG0=; b=Od6FHCoHJXWvlsDO 7vH8AEFe2pisKISxiqbuL56S7LfizMSWxzLg+NFLWR9oCgcPa1r2zjM3qTER8i/T dtKDRSdYKHjiA6hUyv4wYIig//XAb6uxPGq3WZ1zSAU7ZhEL0ec+mNAOYCOed+tI 0Hx3K94Ugbv657oVHuLlq3/LFA+NKh4ERZTQcdsRekNNK1MmGazpIvt/X/NBwrar P3IODxt/3svaRtnCnI/B7WRnpwvBD1nSx20tq1fFQiMrXde5cl9J3oK9sDdrr5z0 HzbXHPknfpfr6MrCFdh41rtbmbXi0jw6BWEHIVPyOJMvEHyjfZREa1q39Q8Pd6tf ePbXMw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782705533; x=1783310333; 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=CeiAHjS7TXVT6x8QX20B/x9H11uHvLEHESF0AE8b5JtJZ90fCXiruWb+VTaEEPqRW5 aElOI8F/OeApnOb818Gudo1Fg48DpIjkbg4xK7VtYs6B3YcyF8q+0ZrTivkB94ckWne0 a2yW8PmKInE5/NlflGoxvLpDPyxFPYl7pAspaBC5C9woBxz1FpZNCgSlOxqqx5VwadBr Z4fmvLFYj+GpNzAK6kb0lqqzijeBpJzlO/09BcI0yYEr8mmoFe2eQDrR+ulPs2+GTY6n w66AiLD1xJPSf7TNPYKZNZHuBupGbfcLqqdY65qPFPZKNddQt+oSjcyYNE3fRnbWbwiy Eq4Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782705533; x=1783310333; 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=LACKSjV5S9AQhUnc0auU62uorOAf+WVjGZ7VKdldxeImslJiOHfuRx/HZkvGLrm6Ry gPSzSfxmhBZnMj+znZ7I5xAH9+FqOmklGAZHEkEEPRInUa5nfgYpZHO058V+lSEuwYOW VBdKsQspzwEDpH7P1kINISt3grHaKAgNV1UA5PsgNuL8OyuAcIv92BvCePdqWe++uDaX D7QSERfukhCyWCMYWKk1/5/F+DiovWgUBqSp1OlLJZFynUbx/WKSF44oPinYc1Yrf7BK USwrydcU6iuwo5o6/2QReMIUHMTYkg/UPEfjETZj5wcQRxP2B68CTmH9P7I5AhjyoMy+ Ku4g== X-Gm-Message-State: AOJu0Yyaf7igxzz21x1OXje07hUW3V3S07owtdCDqDQ3AqLMbCUQI3w4 FWjyR0jRnnH6EjVxIcd20e+WSG3eZIBFeBif6K0f/75JK6Kf8o0TzYLLNosvFdTTv9m1NneCpJ8 8d6lTBLdUx7gfbHQ79enxOuN3JZfYYestZI+vZPBa7SFAYpvZ3HGOvzxVCYYpKI641A== X-Gm-Gg: AfdE7cm0FkFUXleV0AAR1md396tEmvQOBC0UqdRiEzeqQHbVms2s04X+51rPjKAUJ5n tJxnried9842wNdgz+g4kFiVGUVbr2Avk9YVvZphyAc3/vmQ6EioQ5enlVMpGv6HHltH7MOduSp ssTf4vk3x3ieqoAoQnSpudUKRnQnnO6kcsjRjLD3Ql9TWhTxVgp4fhZl6hkOEButKUFTvmdGanZ EyBDBY5iIZmPqNg8HytBD5WwlXubPlT7/V0KtXmbwQ7AMhVPwgmzGwb+KWRZXwlSuwPse7LYReT rorFoShiRlJiLKP49A4xIKs0diB96qstLQllO4cwtX9tVs4LH1u8KLw29FQX+Jl077ZAWdRsW7t wUuNh4HOX3dPPuisGInNKh4H/4jxLSDH7zh5/AJWThq2ki8rdtqjPwzp+/iA= X-Received: by 2002:a05:7022:412:b0:139:fb6c:b37c with SMTP id a92af1059eb24-139fb6cb3c5mr2477694c88.21.1782705532762; Sun, 28 Jun 2026 20:58:52 -0700 (PDT) X-Received: by 2002:a05:7022:412:b0:139:fb6c:b37c with SMTP id a92af1059eb24-139fb6cb3c5mr2477669c88.21.1782705532258; Sun, 28 Jun 2026 20:58:52 -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 v4 08/77] target/hexagon: Add missing A_CALL attr, hintjumpr to multi_cof Date: Sun, 28 Jun 2026 20:57:21 -0700 Message-Id: <20260629035830.1520296-9-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629035830.1520296-1-brian.cain@oss.qualcomm.com> References: <20260629035830.1520296-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: AW1haW4tMjYwNjI5MDAzMSBTYWx0ZWRfX8YWTgPqzUJTx RZIm/51J7gzANApTsfKrTHOYJv+2dIKwrwJn4Is7e39ifM7P3KB1t3XdB1isIy1bpdWFP0WdqwM 1kq5O/O6/DWMjLV63OoDMVgWmBmvxMU= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDAzMSBTYWx0ZWRfXxGlxLV4OPTCj +VM6wQ5WoKgIcont5hVPkF2Vls636fvNB9hgd4uhqEMPjGpDjA5UWRgsOoW8LHg+HB27gEwdTLm 2Ho2md4PVXpw0BfVwsfhVltaopK7Znz6mxp6882n8hKt1LmAlvwcTi7Aqns5/Fip+jB+pvRGnEX fZooHNcXqFk61YNdx4v6JsfjP1irYgDHx17CugVFn4Jwgk6+ssPpTQOj/ZztrQ0GBjydDaVFRP4 VmKApQMtzIiBdMaFtX6kSj4t9fV9rFOfgdC4a/fub3Ya6UxCCDZ7KUb5Gl+pwczfWyT05DQinso iiTbbrqxs9+0f0kI9oKzkXfYVQlQIrdoilbN9cbaddB00VZnsH/izwteM/VrfenONgmBHjMW9+/ ZSqnQtH2M9XFWhBwPkCUaDSLTC0x/CyWvRTpsOwKihxjsZxFm7m/zoGkxpxk8MungMesbVbTleH YNIYM8EwGZOqW4K6vyQ== X-Proofpoint-GUID: zI1S_2zIbDFGPsbAg8skuFvOjpbLRd0c X-Proofpoint-ORIG-GUID: zI1S_2zIbDFGPsbAg8skuFvOjpbLRd0c X-Authority-Analysis: v=2.4 cv=DY8nbPtW c=1 sm=1 tr=0 ts=6a41ed7d 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=pGLkceISAAAA:8 a=ZLKCIdW5I75hk_SXmpcA: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-29_01,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 malwarescore=0 bulkscore=0 clxscore=1015 impostorscore=0 lowpriorityscore=0 spamscore=0 priorityscore=1501 suspectscore=0 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290031 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782705602424158500 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 Mon Jun 29 06:52:22 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=1782705589; cv=none; d=zohomail.com; s=zohoarc; b=G7e6ABmocrtDKItrQ3n58rkAPAyV6wUSlWbO70A+oXTHEnHb3tya9wtZSKy0Hgq4eVCU6GIFwEAFEjVQnGri8D1okNgAr01CeLpS4Z+3VlF5xmIEG0npvma0H2U6ULqE385lku8iEIZd3PFR0ZWrVyvCCK9tjrr8qNxzc3oSouw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782705589; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=aWJ8midHE0CQADR/AFpDmVGkMkw0LX8lZKRMsmF+U48xVW7vpUufY9qAL6GSlRllhwty/USmgJ2sCa0jmXEe6wsUdMwEfPhg5J46cFzc4+hOx/n3PF7gBb7Brvo8Wonk82LQNwWxdo0yi6O7aIC/9y2EJFDSRmWNcud0chAz03I= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 178270558949932.76401270609756; Sun, 28 Jun 2026 20:59:49 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1we39C-0001Zz-Mg; Sun, 28 Jun 2026 23:59: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 1we39A-0001YS-9I for qemu-devel@nongnu.org; Sun, 28 Jun 2026 23:59:00 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1we397-0006DX-M2 for qemu-devel@nongnu.org; Sun, 28 Jun 2026 23:58:59 -0400 Received: from pps.filterd (m0279868.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65T2d0Nt1554573 for ; Mon, 29 Jun 2026 03:58:56 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 4f26u74e7h-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 03:58:56 +0000 (GMT) Received: by mail-dl1-f71.google.com with SMTP id a92af1059eb24-139fe708181so1158484c88.0 for ; Sun, 28 Jun 2026 20:58: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 a92af1059eb24-139fc2ebcc0sm8367088c88.14.2026.06.28.20.58.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 28 Jun 2026 20:58: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= 3PJq1TG0I8TU78Tf0jGrc0eZLiVvKT6OxHA758wVFTs=; b=iXn1baKjph2Uz1co ud4zKsq4FcU2FefiwM8Z+K9bWYkn3vjatHtLUHhX9ruwrZ3A14pt7jY0DAoQbIT0 +m6UTXR99RhTz6+3KYggjBbDM5INAWiwBWRg77WoXaHLvfYzIAGJijTH2pVl0jDT GbtvuEW0oKJgbF/yFnJHcF269/gxSyh40ZcEJchI1t0Yyvlzd2SpiUQkk5ITsoCS yRNiH4QOAsMpNQoDdc2fYb49ooxay/5PA9zETjws7h9HxsjISJ5M6TsCaQG3G6MI ygf+R3n3crqo+3MMXGioJyf9O+9VSLlinJ6PLNRfBm39oJhlI/9YUbXlHvJ+T6xR ds2C6A== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782705535; x=1783310335; 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=iHddEdIyBsT3NmnUA7yp6H0BdGdTmC/gNCwKQKyjLhXnTlbZ9h0sPh6+unNcRN0SWy VseM+jPVl/FGkTZ9+kuBx2+VukVu/UuRaeI6V+Z9qKcMgbjedvmiFClSdLQ0zaUJGDx8 i/Xz0p/or/FtFbMIMhVYZBZhX8UePzKdAYpDKHbqoVtpKzBIvNdArHPiDc1ScVNNyfYC G8gf4G8mMcxXWwiZC/yX9jKV3zG4zVLqzX/20nW4V0W0nUZvi/Wanp9oX2AV90LURnBW 9W9IgzJeYMnwqkO+wdom1sZDPAsgDO6v7NjqvjmQG2oSr8GLACoKgRwZrcuUdoj4tzcR b0TA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782705535; x=1783310335; 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=SSVgCKv6G6Gr7vrP36STNXPA6YJy8ieVQWZ10/uYViseS+EAaeSmfhrokpgVgfKRxq CsYUu6cMwqfeMJIwdl+ROPSQ+b9W4649qZ3x+qtjdgHlq9R0wqPCEiJ4shujuUaxcr3Z D4g5yqAPw5JLlmM620eGhsEunk+PZ4qn6to5BbUCki0ARy1CrJMVSzRufwi5k3SfTV/6 UFRx229qCQEzVbf4GMiblck8UmxsfBGgRuvaTWpM2R20NT2InEdi0hvVMahIS4GD9gvZ 8Zl0orBBd2NivaOObMellap8yh/2Yl8ovbxTQ+ysw71n6toI03EwIxTdehVykhn7xw+v H59w== X-Gm-Message-State: AOJu0YxRpHeIxE4bchut8FxSmotrIAP2PDAkRuTRtTxC4+uM0pV6dPl2 778JOx7So/xfRsvHJuujekkQCVzTslpv/MO08cz5gDrJNXaxQ6iS6qrKVVtVTFj6ZhWZHasCf0o /PN8Njfz3cL6vXzxvOyxOLrSJyxLmDG8bo5suMJrX5sHJzT0W+PqWKWJegfzxW3mhmw== X-Gm-Gg: AfdE7ck9qYUXGXzwDOWIYbadvrRkiH2BsjasL82aqRgvd2jc37BkvXmIujvg/29hc8k X3kkcT+rCi0b+li5uxi+dEbYJ78YUuFw8I2s5J6b6SWePDqkok6wltR9B7xhGU7KC3pfE7m9p+A Q888j03aM7ghtSpZq8g/dzjlUNOl7jAiarmnw+fhDL1XaeK68vEzenQxXh5OWes19EhCJsGv0PB 6c4ohwoKBybDb/jd12Tn4TH2RvLY2Kd30tx6Wb5j4rh2zpKd4/cbOifwv3FUg9hXvmjeTBOOAsb nYRgYW3nz/AOSAqO15TJ8PY9ga2prE4NMByYCmRv7NWdG92d7PGUeRQuASEBSZt9F/vuqnOkbiv L64sYz6oSmP/pa/k+XC54nYfFSD5lLPp5sRYys8V4TPLbMmbabBqhWu+lHAg= X-Received: by 2002:a05:7022:e0e:b0:139:c724:79e5 with SMTP id a92af1059eb24-139dbac7a8cmr11900537c88.35.1782705535069; Sun, 28 Jun 2026 20:58:55 -0700 (PDT) X-Received: by 2002:a05:7022:e0e:b0:139:c724:79e5 with SMTP id a92af1059eb24-139dbac7a8cmr11900521c88.35.1782705534502; Sun, 28 Jun 2026 20:58:54 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v4 09/77] target/hexagon: Handle system/guest registers in gen_analyze_funcs.py and hex_common.py Date: Sun, 28 Jun 2026 20:57:22 -0700 Message-Id: <20260629035830.1520296-10-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629035830.1520296-1-brian.cain@oss.qualcomm.com> References: <20260629035830.1520296-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: AW1haW4tMjYwNjI5MDAzMSBTYWx0ZWRfX6YS3lPQZzu2u akYGWdKrmVhJL0QFSxrZke35Epa98hLw265vgG+K85sOE71woGoqNwbO44WRPvNvuKk3ARZTOpl smlh9O+FpBguyRs49Lqfy4F3sZlIsC0= X-Authority-Analysis: v=2.4 cv=ftnsol4f c=1 sm=1 tr=0 ts=6a41ed80 cx=c_pps a=JYo30EpNSr/tUYqK9jHPoA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=-IRm0M9p1sl727KxlF4A:9 a=QEXdDO2ut3YA:10 a=Fk4IpSoW4aLDllm1B1p-:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-GUID: 1q06o0NVs1Fwia4h4WrsVPAWX3QbX7AW X-Proofpoint-ORIG-GUID: 1q06o0NVs1Fwia4h4WrsVPAWX3QbX7AW X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDAzMSBTYWx0ZWRfXyaJMhdfDQpQf QDeItopZ4J+zKkuRuJqmkzCpRrnKo8Y5EiTVwtyYt6DMbYfJcc+UafUIbt7x5jXpWo8iPoS/ZKv 7qNfMkFIz1vFTBUvD1TSByIYlUwDXs3TiVMZE9MHcUuk9VZUTT5gqgbJmPruEOwDCaN1wzEOgP1 EY91fulVyO2HI6VcGjY2H5FI/mTzCAL96p+DE2Eet9HRgkehgMQFqfwecQprj626I20jyqqiDhf dIbUVFA5iA7h2cyD7kGUgHyEEGaKZP2GOZ5GvBXwyiuvwr/GUbFJzYpSEK+aCBQiD1WfEPe52fH B9NiEEwv0ytItzqk9M2gloAXjOqim+OJAZlCC1kQ4JLd/BairYFOwd0goaWdEfsXCXnhA2ODeav zU/5A826Uo/epjOGPy/t/8l62BmMpU2cablbIF007SGIOKH5oSUTYnLrUNYlWo6cf7FJIFVMyj9 yg3GLKTISnp3ZRqDFmA== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-29_01,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 malwarescore=0 suspectscore=0 lowpriorityscore=0 impostorscore=0 priorityscore=1501 adultscore=0 bulkscore=0 clxscore=1015 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290031 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782705593370158500 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 Mon Jun 29 06:52:22 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=1782705609; cv=none; d=zohomail.com; s=zohoarc; b=BEg78RJGhaoISuV15AmLT5YIeOQW+tZjKQso2pDFtubIOJ9Nxv1rkUPGcYZ4A7DXXYrfK0Qk6C2sriNYWQCKsN10208ax30xxnWgZs9iOuUKrZlLO3IdDmVnmJpatYVb5SNpKHie6vhIoORSTpIiy1CwsQDF0Fx8SFNzekeJgrk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782705609; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=f57owyf9M4ysf5ke+68ZANmQNT+fT3Bg61L3slTRfV/CHNeltFLTWnkbk+OGJ+WHeN0eW19YHs+QoojxaLBlYJBp8Z59x+9z68dtr1lYNTQ7sJr0gzPYgIjgjS1e0/Mdps12LdcEdHDvhfYGKr/PDZmbQt7w/Bsh3Idfn5R/CSo= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 17827056096771009.9840860068074; Sun, 28 Jun 2026 21:00:09 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1we39B-0001Zf-Nj; Sun, 28 Jun 2026 23:59: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 1we39A-0001YQ-7n for qemu-devel@nongnu.org; Sun, 28 Jun 2026 23:59:00 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1we398-0006Df-5K for qemu-devel@nongnu.org; Sun, 28 Jun 2026 23:58:59 -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 65T2d0pd1550016 for ; Mon, 29 Jun 2026 03:58:57 GMT Received: from mail-dl1-f70.google.com (mail-dl1-f70.google.com [74.125.82.70]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f26x8mdrc-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 03:58:57 +0000 (GMT) Received: by mail-dl1-f70.google.com with SMTP id a92af1059eb24-139c6673856so4500068c88.0 for ; Sun, 28 Jun 2026 20:58: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-139fc2ebcc0sm8367088c88.14.2026.06.28.20.58.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 28 Jun 2026 20:58:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= lcxOkFKNgQXZO0voxWGA9hyffwnAo/o2WwcbX7ewzeA=; b=Wsrv7JIIc2LljyPL c2w1Sl0SAgXkj2EjT5Zisgma4kzJhJOQO/5J0y3aZMhRlFgWPZNB2kUvB8/Ou/VD GNf/03ELnrl1YfKjkJybyyT65MFFCi+V53oLRFhzGLTQoXWvibbgmlpxszlkB5pW WxNa8i6PctpypjlGkI+S+6B536dicaZnfmXC6C5TbYgEClugiSnw3Z89vNcnDmEU AbEKzic9bITNgUBFIcePeetHkkOcSp7P8R2g/Rr3u29v2gOrEr4l/1+IN1E+9Whf hHwXol/k0TJ8J6r2OBh+niMvD3AQxXMKS5p2MNAuaxQrH56jO2u16cFYXzN+ccY+ BbxSYA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782705536; x=1783310336; 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=Wq1LUa3HvkzcyTnodrRmf1vSWx+qADyuqyMquSDFHIkHTYycaT5EZHjqZ74Ms2UUa7 eEdR8B5XRGO9rHxhG/6rN+rWY6KGdFhm8U1flJ8sEODKOCRz2NCavZQyKeV4MEgPizQ6 +tQKa/xJ9s5a6aFPNzMg8PQ8mHvtBeeeVa2gDdRXs1OtgTdqe//u29+duVvNlxQlBoxt HY9hPzUQ242fVNoHrxmPF9A2axxc8t5Bu5sdxpTbuByyENB+d3VR5ItOX1rsmY2GVxP+ P4XVLTf3wMC4o585/kg0hdbR0aQoy2CuT8l/W/pp9Pbexl2tCuYdgP84fLXV2DeUK2eF SSeg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782705536; x=1783310336; 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=c8f6wM145Mw6ZnGO19X9qCGmol84F26wtdJA+yLiEI/d4yuTtCI7Z+tZSfF2w8GGCT 11I3rz4fdWJjoZ5koJnoeIJrnO60OOuoPjObZNlzapYXn6OVP69AINCQPPcf3LzxtyLn D15Rx0zfUtMO17mxY+echMKcw7eoAuFBuHzcDh20Gt65Yl/OJXCwI2ndU2IYzPziB1My H+mrAg2f8jPRgMFeJYT/EsO5q4+8FjuIun6XAfe2nZan/CSlm7hV6TvYob14W7ASHsnc cAXRr2gud9ktjBUzD9szMrexZix2Lf1IF5s9I4cUiNbbP67KI0t/X9FPJJbIqlOSb68Q +Fsw== X-Gm-Message-State: AOJu0YyoMIquyjw27WY5ZKROcQdwHvbEL8iNQiL6d9uuZ2z+4rSwCagL bnshGouDfVaKbG8cSldQ/phGAasSS3cmtsgiGh8EBc9cVS2Gg+VfUFtELAxBQpPamRxh++p4U2q fMwHpI6ridErQjY7/Snq1iuVFQsnaiXObufLhUNJRmSWDmKWGpfOeA7FzZ8+yX9m7yQ== X-Gm-Gg: AfdE7cl2ize0vm0qbtUeYWlnXq3iWimdao0YGsGlbsomkCKHDMkNc80jdBtANTvUr9m Hiw0yEv4BhAVCDIi2xpa1G+5E38P0RPtD2+uiPhrNhYWwVk83qUuNa1A5b1gfD/D6JqTIJPTmoI pzebRPMRgYszCiOhrEA2rKmeKtn5+uxdIOOMeLeiUPACqiVLND1A6MaCTP+lNkpM92/M7GYJYJ1 0v8vWG82iMDDPcAD9crrbiD5WS5NdatSLk+N5d2QqhAbmSPfnZNkYaBAA6vFDueUQojPp6dB1zt yFHU14DcSj37JRKcyzF9+qG59jvP2GiLb3Oy221cchjnuiY2IiIEUpu9BNObl3NRhDZB6cEHJfc Te0EvMLvjBZuFNq0On7t0ZUMzXE/3+jNAcfWQWm0dF7w81g3KYdzz7XP8tc0= X-Received: by 2002:a05:7023:b88:b0:138:3613:dbb with SMTP id a92af1059eb24-139db9e7c2bmr13259139c88.5.1782705536133; Sun, 28 Jun 2026 20:58:56 -0700 (PDT) X-Received: by 2002:a05:7023:b88:b0:138:3613:dbb with SMTP id a92af1059eb24-139db9e7c2bmr13259114c88.5.1782705535608; Sun, 28 Jun 2026 20:58: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 v4 10/77] target/hexagon: Suppress unused-variable warnings for sysemu source regs Date: Sun, 28 Jun 2026 20:57:23 -0700 Message-Id: <20260629035830.1520296-11-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629035830.1520296-1-brian.cain@oss.qualcomm.com> References: <20260629035830.1520296-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: AW1haW4tMjYwNjI5MDAzMSBTYWx0ZWRfX5gfYsrW0eh0+ FiviSDoGEaJzaLVQXYhRFOUwyGxA8bfjNXrIOAS7MrYR8JrL3UWDSNc48Y2xjvD+dKxU6DymbO7 g+zDPi9KHq4Nigx7Y2SkH7X6vpyLtJE= X-Authority-Analysis: v=2.4 cv=D+N37PRj c=1 sm=1 tr=0 ts=6a41ed81 cx=c_pps a=SvEPeNj+VMjHSW//kvnxuw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=3WHJM1ZQz_JShphwDgj5:22 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=dvhcR3axvtdXbCCTPW8A:9 a=QEXdDO2ut3YA:10 a=Kq8ClHjjuc5pcCNDwlU0:22 X-Proofpoint-GUID: adw_8OdITHHrqr_1ahXCqvH-QmbTWFJ2 X-Proofpoint-ORIG-GUID: adw_8OdITHHrqr_1ahXCqvH-QmbTWFJ2 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDAzMSBTYWx0ZWRfX4yhwbtD2oAzc G8rswMBbOpDce6NojreG918YvqEw5Kxis2aLizD1wYX/Ej2EjjwrzYzHqDK2ZuvWo8iTHySkQ6U ym5A5Dwar6lLo0WJrf7ej7+xIoDudlnCOhbONw9BY7LamSNwiSwhgeiwG4y/WGr0fPv57kjCAAC /x8hFjMEC7B0VKbHRtt6mI5ucaxQOzp7LMio5nDWM6otjbFLKBkxM+knPm/u+QEJN6xP8+N+w7u S+GyYaUCqtLzIg8sc7yoi6XmOCv9i2IfqPvn5bkXrD7/HhFFXJpDWW8r34/s6/dUPhtlqGl5P4D 1zrnuZfnZmwMt4UVd5+Mj2r4ixKELDqFN5E1iqS9DGaHqXwAQUrSemLPcMWvB0sU6BXQ2rnkYyz pOD22AZj0szla+FDbYgIhJpOg1/ocWLT4Nljq+wpMakURdPch0KX+YU/JLa7NXbnOMguKj+FGVn X/pBZfPyFdjbE/PJCbQ== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-29_01,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 clxscore=1015 suspectscore=0 bulkscore=0 impostorscore=0 malwarescore=0 lowpriorityscore=0 adultscore=0 spamscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290031 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782705610714158500 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 Mon Jun 29 06:52:22 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=1782705589; cv=none; d=zohomail.com; s=zohoarc; b=D1bqJcNvC6qr7nKktACaUXvU0S1r1w5zySL62coWSVXqE0ysqf3aW29+8YVIAy6psv2D60e3Rxysq9xdQLr7YJxBQ3mTPyiXMO5dHg/H+ufpXCwTkKIBJo+cxiWOVJZLxtTYpquuKCLenuZ+diTS9vnTFeoXjgGpdeDUTZR2lIE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782705589; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=+b8voobbRHB+fEzV3OFcGYw0x0PvxvjT9mR8Wf/yF+Q=; b=WhFIpkWUiHOmQh8TyaNCSZJUvY3wNtOHyp5gNBZG+Ml3uZPnj4W4Iy4UMHIgcfXpY8b8ogvNtZ94U3F9tcw4Unw6OGOGb5M/1+lk6wnpy6MbbaDiXxi6QNb8x0IUQp0vIHr1gstvnyjlWg+gLSvAYRwbcGBqvndK1wf56QZgs1U= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782705589731115.84496314890248; Sun, 28 Jun 2026 20:59:49 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1we39N-0001ar-A1; Sun, 28 Jun 2026 23:59:13 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1we39L-0001ae-LZ for qemu-devel@nongnu.org; Sun, 28 Jun 2026 23:59:11 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1we39K-0006Dw-0f for qemu-devel@nongnu.org; Sun, 28 Jun 2026 23:59:11 -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 65T2d2bR1562427 for ; Mon, 29 Jun 2026 03:58:58 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 4f26tuvd1d-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 03:58:58 +0000 (GMT) Received: by mail-dl1-f71.google.com with SMTP id a92af1059eb24-137fc6f8e9fso4870565c88.1 for ; Sun, 28 Jun 2026 20:58: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 a92af1059eb24-139fc2ebcc0sm8367088c88.14.2026.06.28.20.58.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 28 Jun 2026 20:58: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= +b8voobbRHB+fEzV3OFcGYw0x0PvxvjT9mR8Wf/yF+Q=; b=OnhTk1yBcjYMwlrK WALtTI2bqEkHZdCb7LHGqFFipI8heJZM4vHu8DBb22WQ17rh9WcU6J0cr//rmH8R smDK44lnkFf8hNM1/MxEiVjhAJrqc025eKQlLjGr9Oy5s85eWopdqvLFyv3SUx04 zrdIKsA2uww3X086pDoKbz1hRfMEJJGlir2eD76SnNH3hY4Sf4wE751MMvURDue4 y+4h8Dr2EHwIvLkLTwM/d3PWOWzoFk0/d1KYQ1u/Hs0wVDBOZAMeU+dOCDRw+shD aeSm3Dr9Y1Mp8Rx2DvzLNDCfM+TG5ayY5Phev96vFC+K1ppl/xq6fxtL13kFJaFy W7Phjw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782705537; x=1783310337; 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=LBlaMk3DO7D7acVxBBcdcMIRMI1iaEQPDdZCcGU6kSfzW/V2DZ68GkcpH6LH/lb+xs nd3g1IsvyXQTxDjnQU4SR99Yzdp1QZdplvnb0fw756sXLQUHL0eUT8RBV2SFiPvUtFFl Jnu6Nofnvd7yGwwadPT/3aqjaKOBcrbqxbe8ApYgw4IYEsEQXmktaKTWLcyQlPZEIGIn f64fSf4g62YxWM0HdEyLliHJsueBGpVs2UMeXjSAwPnXzJY4Br5iokSLkGG2KcJo8WLb C5wuWhqvmoiQbM/h1IbqrjAbbkQkG47BbN2+wKTggQOyy4bbAyZpf2w3UPQPqjCGV1L6 0Fmw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782705537; x=1783310337; 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=gavIgK9IbEdPwhFre3dsz1z63HQiSZ+Y0Fw81W5rUWEyNGh3SxWj1e3Of+0ygdLXsB JovvX1tXSIl1ERGqsRJ9Dtg8EDhrK7CIYu6CklQ277IZwClFikvumGUuKrUlpO4V82eM tdkz6GWuGIp2uEptAb+4UEo4GkH7T4UgZaLNPpZWaEdTezS9BGFImUjJh1+GFGNd7t5Y ctl7gU5T9F/NdW+qWTxsB015Ay0I/VjAHFIwlgzwIGK9kotrHlEgwtkHstuLFRNgR9Zs GMZO7HV/iG1iFOaxGLIzRTWBFy90vcOovS0OjDJAusmXof35ov1bJknqYSN7omyAR9H6 wnFg== X-Gm-Message-State: AOJu0Ywcl0wf6LL0bWbyss4v596o15AgF8gk8qk/DsEdbJD3Qj59UMqa q1ZH3/UN86bwBo0mVUNqJR/ZdmWyBXnVCc1CNpAbArwGAbxYjVAV2WfmHLbNNvXjl4X3JyBX3e5 xye1+FQgEHZJcpXcQoDHkimNhV1wzyXO5pfO9ydSSD+nOx69NGfFCqobc0eBvAdh4dg== X-Gm-Gg: AfdE7clHNUC3QI3D1MTAcdnl8G2JRQD/fY8S0ehcc03OqVycNIQPpw7EEvOInTlMlv2 gfi2RUWPKYXAcXYoZFTygz0YHz/ljJHN56A5TqP/V3Fa9N5ZcTrOBRzfDYx4PIX9r/HeCJ1VUhn wCe1C/uZp6v569kKsj8ilmlmYGBSN0D3bkZQBvan3VCLlwoA24kiX5yu8NptotCc9p1IzJhoNLW nbNTKkR95tM0+130dnPR0/jL/lHuEOykoKTvVvHgtE/sjBCsv5zpS9mHZNpUYa1LuBQVzox4fNH loCzt9zC7OTeQsEnLOqqKJIriYnkb9lBf+A8ebX24vSAYep/pTTTEXPVXGihzAy9545Jqa+eH9D QQ5qihZE65Lo9TzygI7gPFtK9Aw2CzrWf5MVKAC77Iu5QAu6CX9r1eDGR0FA= X-Received: by 2002:a05:7022:160a:b0:139:cf4f:3b80 with SMTP id a92af1059eb24-139dbb1250dmr10838097c88.34.1782705537460; Sun, 28 Jun 2026 20:58:57 -0700 (PDT) X-Received: by 2002:a05:7022:160a:b0:139:cf4f:3b80 with SMTP id a92af1059eb24-139dbb1250dmr10838083c88.34.1782705536931; Sun, 28 Jun 2026 20:58:56 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier , Alessandro Di Federico , Anton Johansson Subject: [PULL v4 11/77] target/hexagon: Switch to tag_ignore(), generate via get_{user, sys}_tags() Date: Sun, 28 Jun 2026 20:57:24 -0700 Message-Id: <20260629035830.1520296-12-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629035830.1520296-1-brian.cain@oss.qualcomm.com> References: <20260629035830.1520296-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: AW1haW4tMjYwNjI5MDAzMSBTYWx0ZWRfX9zlEl8O80xPr AFxO/1kx3Q5ay40kkp4blZETFttBf5fYQhJVCcHTa/chBdYnt6xsOeKEd20Dl+d5v2IhZwS4hdf hGhTnfFkQak7z2O/8sui9jH04TW1rKA= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDAzMSBTYWx0ZWRfX68QnF6NNkMQZ Xikh4YgDRPKOkp92Zpd9lYkZ8uZnoiljzAI/9vdkHHRnRhe9F0kfhf5iQANkw7LS9ooLkBov/v9 iKhsFXJi/4Zs19SKLHiuM9FsKYjlu5RKC4ESXv/ZAD4+Ir1F8miMgDqX3NeFqzk/7Jcka08HVHc N40e/sJdPt2fWkHP0cjn4v1ahgVqAU9XYd9mjbTKXIJioy6554vjqmw6D9HxLRHU/zuA553+X7P gPN802Y9iIAlunTVxWI7EV5ra9VLQ2FLGigptskFq/tOTUczgVDTnbglDAJ05yNTUS8vK2mdj2c taKV2HOAga2j4L70ccXEK2gFZBk7SU4M2hoarl+Y8vSYl8Z+GSxqnhqWTmYlsU2AvcQ2ceWbWQO QswTDlV6inPoWXK6hYEERhjBdhUYSK5LEJhMbiPqV+XF+irHdIQBzWmqSXf3bcHLQBVzrizrcQb /AjwzAnFhhnrPHkcemQ== X-Proofpoint-GUID: QGj9NvLof-oxP5vdfdPFCKD7H_aJfYhA X-Proofpoint-ORIG-GUID: QGj9NvLof-oxP5vdfdPFCKD7H_aJfYhA X-Authority-Analysis: v=2.4 cv=DY8nbPtW c=1 sm=1 tr=0 ts=6a41ed82 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=orAq0Iv1PZLbcfkgE-4A:9 a=QEXdDO2ut3YA:10 a=O8hF6Hzn-FEA:10 a=Fk4IpSoW4aLDllm1B1p-:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-29_01,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 malwarescore=0 bulkscore=0 clxscore=1015 impostorscore=0 lowpriorityscore=0 spamscore=0 priorityscore=1501 suspectscore=0 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290031 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782705593352158500 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 Mon Jun 29 06:52:22 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=1782705918; cv=none; d=zohomail.com; s=zohoarc; b=TCcsP8oiNRKne0ymhFwVjv9Zm3ZygWTUKZtt2KwoTI3WTSKC02dMOfHRDPovTpi5xjA5jzTsjegneAPICXroZ/ovoARWJHk3t2SF1UdsUnOkN9VW7rrSSO3rMqbGd5mKrWB2IpnalSmTCCIQreoJwbPlgG0tj5f3auzKuubTcfk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782705918; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=RmSqEgav07DNsRqEz3ZCDu0CYVpTiUZKXkaJkdFifUgrq6f7pfrttfFlzy1ft7U/2f33zYtRStXuwfHkyZVyJPXbVE2X7dQ9cGqiTvtoFKYELRiwvCTGFQjnExZ8bFv19bC6n/yHY1FEk0/49iNvOYjke/gla+Uib4xbWLMSR3g= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 17827059183031020.6859403535161; Sun, 28 Jun 2026 21:05:18 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1we39R-0001bZ-0y; Sun, 28 Jun 2026 23:59: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 1we39P-0001bM-Tg for qemu-devel@nongnu.org; Sun, 28 Jun 2026 23:59: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 1we39N-0006Eq-Rc for qemu-devel@nongnu.org; Sun, 28 Jun 2026 23:59:15 -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 65T2d1Gt1519059 for ; Mon, 29 Jun 2026 03:59:03 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 4f2734cdcx-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 03:59:02 +0000 (GMT) Received: by mail-dl1-f70.google.com with SMTP id a92af1059eb24-1384427c3efso8556339c88.0 for ; Sun, 28 Jun 2026 20:59: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-139fc2ebcc0sm8367088c88.14.2026.06.28.20.58.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 28 Jun 2026 20:58: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= U0YIrWOgJadDyhJIcIFlA8Ek4kYkhreGdWe9fXSI7qc=; b=pBHdmjnr/eO8Wewk PJnkZaeUby09ihrhBLoTV5+aA1tJNeeRlgzqGYC+8pxawJVE06m4UMAtGAs0TPig OFYeZvkWPRO03njq1gpOdyAUEd5uHraUSih8zkJhyC7K1vSCwl1OlUKJ6z8+kKyG DFLTwGEaH8RLENg+HdupU5SXhyTmyaNuWjl3uqeQA+lbsDrCcgNvMX6xEpRbrLJB D5o3725ktmDHJQzVe2Sz4GcFFQ57yB4ppWMaPjISOoO3adMujuR2Myc7Jsj4+orM iWtTPQnV8xeZOUudTzHMBKlCdI2kxNPWGY5Kso/G5rqvFZpM1jXSXvX1F2493ERf r37O2g== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782705542; x=1783310342; 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=h2ve3Q2WgXX9lvlZojwqwzZ+QRd2kwx9eeOaGNPkml/XcfZHhz5r762MFlR/uK6X56 vxdkjaajZJ5h6FRrHGJNHFdLH72jVLBRP2zP0ZEFZlICPOQrBIrwKaNscOHpZgHx3e+u YvAcQ3Lk0kuyT1bJ8b+kI/aYw7dDp9IYNslnSsBbYVPj+CU36V01IIZLk85Szr8I7niz 4Y3zXNlF8UnkCHXU8wObuyRWeGq+P3DGjS6FEMV1+0X26DzPjjxKfsZcZ39mS7bpZqZg 5b8N408A6FTighczLOFpW+yg3/CEPOxA4rT6Snh3hJMVTXTm0T6tAoA1zp64c9e2uyVl BaCQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782705542; x=1783310342; 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=AU+ZgA6bh39SN4F4aOjxbLlmXLI6p7/Ffx4YshC/3Yt1fELilO7WjJFQ+lx1EHxPbe 1GLFr+qPj1ek4Chw0KL4U6e+rDEAMMiFjh2o1Dq7vBhpmZ/CdSbbCm8InmARdcWrUaGK hocpK7l4gioD8++mg4MtC/9DqriDGp+Gqqm00bwtJGW5NUSbb6m8PIa/ltrEcmi8+XT8 0ukn58BJh0d2AO4zgoJeDyrHJ2uXazkEHlbPEUZ2tl5xKeBNpbYo5725LVni9QTNj/iJ ORZBsstZsIXGabXlxiEacIl9ke767doIXDve9805Ol7FgLTZScoeFgPhtFYArtFcX5vN 5s2g== X-Gm-Message-State: AOJu0Yxb/xQ+YM6p15mXUI5myjJehnS4h0k2ZDisK6YKkqW2T3IMyHvD ccuGTfIwRO1pgsLL6XCFQSnq0xLgwu3HVRprUSfYhUqhTfJCes7kvX4V+5fWlb4oMcZ79fuu7QQ UPG4TevJ22qEUlqV0qQcY5nTRZv+QG4as0zmqUTx7V4Z8XRvpnuq2LFQEl7XHywU+hw== X-Gm-Gg: AfdE7cmXy5ADafcE4MtrUlBet3g+qNZBcMBsho9qTBgxXNswK7JhtEN5AF2ue538gGK 4CWSkU29USKzTOpJ9tYcYeGwsnlYz2Twb7z7VoP2VCEbBJUrU+YkjyGbMMLTzuKZrVRuhtsjXGJ cofqes5qE2iV5H8IIUNLAzO/2MhfilMsw+FZrf524og8G6nQ9QceGqaJEs+5Kkv+/SHE9u7cQ0F 3j/1XHXOgtCxIarLH6w6+2sSpaRd6FiCMXW3+3PDgQR5m+rnF0XTNrXxnmfBPYhxjS9e9PPw4z9 klaVeqTgAz17n19jK52tILoNLoNxiTsaIFecNZkstr0p1vfHt1JDa6TAqeOrPj82Q4Ncw2mSqbR IjrPUNPtWqU5b+D4ZShhAA58UUWQf0XBJmZr1Txoikk8HQyANGhy8MnfL3NU= X-Received: by 2002:a05:7022:1b02:b0:138:33cc:d87f with SMTP id a92af1059eb24-139dbabaf20mr12346452c88.5.1782705541744; Sun, 28 Jun 2026 20:59:01 -0700 (PDT) X-Received: by 2002:a05:7022:1b02:b0:138:33cc:d87f with SMTP id a92af1059eb24-139dbabaf20mr12346434c88.5.1782705541123; Sun, 28 Jun 2026 20:59:01 -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 v4 12/77] target/hexagon: Add privilege check, use tag_ignore() Date: Sun, 28 Jun 2026 20:57:25 -0700 Message-Id: <20260629035830.1520296-13-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629035830.1520296-1-brian.cain@oss.qualcomm.com> References: <20260629035830.1520296-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: BaQT8eNUREuj7moDDC0TFKkf28rWzrxc X-Proofpoint-ORIG-GUID: BaQT8eNUREuj7moDDC0TFKkf28rWzrxc X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI5MDAzMSBTYWx0ZWRfX1CZGg3OYY25h /9PGxMDSTSU9XYk1kgsQoOa3TUqwWfIWyNfWKoFUa+jm2OzPVtpvChMmTkDyqdFtrCxJB/O486o yXpcq6M6qq1mJ4Tia6sH10dyHdvG2No= X-Authority-Analysis: v=2.4 cv=HYokiCE8 c=1 sm=1 tr=0 ts=6a41ed86 cx=c_pps a=SvEPeNj+VMjHSW//kvnxuw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=rJkE3RaqiGZ5pbrm-msn:22 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=wr4TPrvmPTm06inSG8kA:9 a=QEXdDO2ut3YA:10 a=Kq8ClHjjuc5pcCNDwlU0:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDAzMSBTYWx0ZWRfXzXaL6v7f7qbM NMPWphm513PgJbwwq8LRplGIT7L/sxWHwHOJjxNlhqHliPkO3pTu3JzDPOp3Azkk+tyCldFDrXx QKXY9m3f9s4IvnpvfjAOQ/ngVSwQSQPN7On8+2cU02xDwQGxTZkfmd/XgRvWg/DRwaZSH36Bcd8 RYDmKhNCT5TWEY4Cg7d9tEB7wXUUXCsRa14b2BDe+pRxzCnvJFBdO+IXLNqgoMJR5PuxmicZCsQ hm8NH5F3FhZXFYcOVxe3cEwNZnyMp59BJt7j4oNfwh18rO/EmXAaub2Gtmm9a0uWZHnqtXLOcnO UPHYl2bHfioO3vAgdsxiWIe6omdcpCkL3RmgjEEP73+8LXErwocvTqE+EqecUpJWNL0FkIYkGRx sJVGzXsU1Ok9kvqQLj4Knzb/1OvUaOZZpEbuhIO1Ovz6Cp0IxKwW8CG9OMC1k0AtMGHtldACOVr x5wOdZgjbbdn6leGdyw== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-29_01,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 clxscore=1015 suspectscore=0 priorityscore=1501 lowpriorityscore=0 impostorscore=0 spamscore=0 malwarescore=0 bulkscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290031 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782705920325158500 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 Mon Jun 29 06:52:22 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=1782705793; cv=none; d=zohomail.com; s=zohoarc; b=I9gM3hwuddBi9jWUSmIP5NHGwM0NpGgZPrh0UNdBUAUGql4IaQT72CFqs7hi82oYy8pR8VhGuF61lr1FDham3mZ+Z3rnADSm2dMVvwGPEbOctELmGvR7EJ+WJxc+XS29wHdPli9XhulHIFhCB8NA1oLdwFJtjVr8500MgKPW/S8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782705793; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=F6Q5rQ1spivYpqLPNVLG+oRLRay16YfYp7peDGzKEzP1vDohU2nqme35eBDE15VuyYJ30vqRUh+6HHHt2IFnX7RJrH4cMSkN2/Kir9JP+RzetcUuO0Im7W/RqnZ1xVXN2o3ti5oKaLrfsNXJgjuQS1kmag3Nm3sFV0bWk5VfRDM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 178270579302696.42541867367527; Sun, 28 Jun 2026 21:03:13 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1we39T-0001c5-5x; Sun, 28 Jun 2026 23:59:19 -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 1we39P-0001bI-OG for qemu-devel@nongnu.org; Sun, 28 Jun 2026 23:59: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 1we39O-0006F0-Bo for qemu-devel@nongnu.org; Sun, 28 Jun 2026 23:59: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 65T2d0Nv1554573 for ; Mon, 29 Jun 2026 03:59:03 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 4f26u74e82-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 03:59:03 +0000 (GMT) Received: by mail-dl1-f69.google.com with SMTP id a92af1059eb24-139f77afcb2so3338370c88.1 for ; Sun, 28 Jun 2026 20:59:03 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-139fc2ebcc0sm8367088c88.14.2026.06.28.20.59.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 28 Jun 2026 20:59:01 -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=ft 8gece0p0rFt4UzjW3fghohDNz87T3Pjs2tX20851QDOlpMP79VfvWgRtMtlV0ex0 TrYCm+zPuUlT1SMYoaJ3d3hFenp8OnW4kBom2w56VtpmDykP/oIDH/Kj58BVZDYW wu80lmTCUXx8TPGYdXAShHoqzalaF5IZV4W4igTnr/wlHqr55NCl5FMRjM6judP3 Ww/Iy02KYeYIvAZNzKlYwICTKAjlBfM7Ot7gPwyCwu6GP4hX4pewKm3OxNxA4vOP GY9bndC0SbgdwSUpEIDBx37PZ6smdbIXFnqWmBjxxX4uje6cZB1nfWzLIPz38khc VZNFn2kDFpQCvbj/v+Eg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782705542; x=1783310342; 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=XJBfpoGbvoNNxJifbiPxPrKr/mAJhs98YSM1P+S8o0M8/NMAla5YqVwsHxW+wF8NX+ OjUPepCw5dV2V7NHfubwSCJaISf68oYPx4oXfZTFRq27bHTafQvsV+rNDsVekWNEVfN6 cAe0BEZgvVR4vgq5ScjWAmOtzhWRvEgYuFSJMKn7yTmXa96dm7niRzxnL3nuPdMSjz6X 9NVpNhDHC4oKPU5xP04qBv0QH4N9ehDuaBMm0F/5FJKNQMB0AxhbJHtwJplayvOig4kX bnplQDUHMxNNHYWX/b0n/RS2zqDn1hhAdVNxpjRKbCrRcQPvnIJ/nsoEiFx+2T7gdzbA SeZg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782705542; x=1783310342; 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=oDuBmpuVfZrcnWhzJwutJd1WMnYWeRs1RFS1xSZOyCsvDmRCUz9s1q2kCUIDKMrpp9 0Uh8lCeUcuwXmCRVpbsfN26P5AhWVhfqWWoWlbApg1Y9GqZ102+cCpMFWriGGQjXBU3X cJkW+ZcpbOw+4GDL899Me3bzXpREunNowiRRXPEtQ27sEYUoduMWtz+W38sv9A0Jd0IH uP9mrxtSDSyrQKLJyvXZIah8DArrUbFwEh0117K+rQPe5GI8b+HqDVJeFhDxYGWAj1rP JqP0LZaQxAiN5TcCQjRCCKj2bETTIiWqlhcyW1TwjvduuoxNphLCf4NuH9mx3iJdwsJM XV5Q== X-Gm-Message-State: AOJu0YwAAM3XWTqDiLguj5SiG5h8vljDMfOzI1SIGh24P8U4WeoK9n7h NHmsaTa+WxliYTnxjtyTpSwf8S7eUeXZIon56S10/SC6//zijKOseWQM8LaImRSV0RqqK4wUX0I 5os+V0JXWZnYM7I3RLlAsSv0Wf8KnMdohU6L/Z4pEQI2BMIfPEfeeeb+vkBbMDCzTEA== X-Gm-Gg: AfdE7cm4kS5jloMw/S4Aw3vLifQZk4SL+I5ggqPA+QdVRd07kyU3BZ/29w0SmRtgV+A NV+vCWpI4HG5IT24ofayQhDlkuLO+sd/Hte3NXIxWT18o0bLlVa+II5xjXOdV/piIdZd0/MkyrT ZIfKtdFKXPrCe7nkrw+Q2eSmUctTpXIMdc8ctelBKC0Mt8TjYho69Muf6mZ3NHYKo6slWIoNNfC K6QNhsGgwAcrtS4fzoyTDoOolO3K2SxLT4cQtz155gIHxakMBOZ7BakWaQSq0b9IolSBfp/I0To G0NJcSKJTGkxFZXlBtKLOAWYd/WaTzUM5v25xxyjnihcAtDDreEplfwoKd/sRKDo5MEwFWWXUPP dI/4YRwEyeItAN7bw7QiHb0VIJs7jZ3wTk+SPIro7RiRhRfs+SPLsKoaeumI= X-Received: by 2002:a05:7022:421:b0:137:6781:7dd7 with SMTP id a92af1059eb24-139dbb5b14fmr14175022c88.20.1782705542413; Sun, 28 Jun 2026 20:59:02 -0700 (PDT) X-Received: by 2002:a05:7022:421:b0:137:6781:7dd7 with SMTP id a92af1059eb24-139dbb5b14fmr14175003c88.20.1782705541950; Sun, 28 Jun 2026 20:59:01 -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 v4 13/77] target/hexagon: Add a placeholder fp exception Date: Sun, 28 Jun 2026 20:57:26 -0700 Message-Id: <20260629035830.1520296-14-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629035830.1520296-1-brian.cain@oss.qualcomm.com> References: <20260629035830.1520296-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI5MDAzMSBTYWx0ZWRfXxiMxywJzBF4A wAXD0dMxQIpWbOtzqcYmAg7P7zW9jgtAeXIzVcY+mPkDAy9J6D5aHKALxkNgC/mbSDr2sjeCt5U w+prlcKQt6/0xOWV572sOCuIftZK/jI= X-Authority-Analysis: v=2.4 cv=ftnsol4f c=1 sm=1 tr=0 ts=6a41ed87 cx=c_pps a=kVLUcbK0zfr7ocalXnG1qA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=KKAkSRfTAAAA:8 a=EUspDBNiAAAA:8 a=R5LHHePp8dzqxDYlWrYA:9 a=QEXdDO2ut3YA:10 a=vr4QvYf-bLy2KjpDp97w:22 a=TjNXssC_j7lpFel5tvFf:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-GUID: LY1itotVuVIxTwafH6u4zqqQARK7gQFt X-Proofpoint-ORIG-GUID: LY1itotVuVIxTwafH6u4zqqQARK7gQFt X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDAzMSBTYWx0ZWRfX6NnixSdGa2Jw zAuI6gJ69X/QjM0IEOYIG2AeKOi1nIEkLlfemFbAR6ZiCNaScj8iN1tWO+2T6Nek739txQihWly OMBDGyoX0K4B6Vtlr7FnN7L40ncgbjUMB5cNDA5cjGL/euqHht5IcSKvNaHzHNL/bgUYbQ0YGW8 s7fHGzzYhE0jFx9GkBu7cwwh9QsvtvJBHpucMi7wuhxEmYE/oekX3e8YP+ge0QV3HJ16wGC49aG RvuS+z/fwQdl9iehtk26tfUaRRj0dnz9PYJFCNHcDcXGalmp7vIzEwUiHRHzB3NT/hVqdsFYehF zQZVSbj6iGQMIgZTd2RF8Wr3Aw6U/1gan15KJeVKzKEFdJL3RpaL2xQV3zvpRDdRXJwDUSLjxsU joHZK1CxAc4PcJKgjyOMIO8fFO7utku+GS0ZcfPik6rTpgWZtu9C/fMzVLw3xoB59A18ZyrcWA7 ghurZZXQc+t7PQjiylA== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-29_01,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 malwarescore=0 suspectscore=0 lowpriorityscore=0 impostorscore=0 priorityscore=1501 adultscore=0 bulkscore=0 clxscore=1015 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290031 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782705793614158500 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 Mon Jun 29 06:52:22 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=1782705598; cv=none; d=zohomail.com; s=zohoarc; b=L0tVKL+x0Ji3O3Dwvk8yyfby4T3dQ5fj0wjhFX9I3au+tettgQJJR8UU8YFaZRd1QNsea+LQAxajC1iTqC/+ruDL5Jgl7N1omMtKkXylNYPCIwz0GCxYSo6Bv0/ZHsM5QdGokuIoXOG6kcnMNt1PLG2BYE9fwkQg1qabfpa/YjU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782705598; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=PQtbA6+5NdHpKsxRZCHo+iSQthhqGjf239J0wgX5NvrIrOPKv2hhum1zfrVzOglmFLN46DYfAgrX5roiy+ywp4Bhp50mHiH0P27efKSq/wYdfH8+labMj8ySmo90Ghm94GBXQDl4dMbkRbXYu057O2VKH2eZvNo1QOHjCPFSxxk= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782705598072219.96687281593154; Sun, 28 Jun 2026 20:59:58 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1we39T-0001cn-UH; Sun, 28 Jun 2026 23:59:19 -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 1we39R-0001bn-6P for qemu-devel@nongnu.org; Sun, 28 Jun 2026 23:59: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 1we39P-0006FC-ED for qemu-devel@nongnu.org; Sun, 28 Jun 2026 23:59:16 -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 65T2cwDR1527151 for ; Mon, 29 Jun 2026 03:59:04 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 4f27334d01-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 03:59:04 +0000 (GMT) Received: by mail-dl1-f71.google.com with SMTP id a92af1059eb24-137f3465368so2930086c88.1 for ; Sun, 28 Jun 2026 20:59:04 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-139fc2ebcc0sm8367088c88.14.2026.06.28.20.59.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 28 Jun 2026 20:59: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= ThmCBEUUn0U8qb4sT7PqDbrtmt1EHLpETdzQjy89vaA=; b=RSX/+RsmwD5sw3Cv VmlXh9c8titQ4Ibmir6bbj+KVGdIAp5J7rQ2ZvKowypQd0QNw7co8dRlVz2vCych AE5yxrLchcJIxot1IVAM65TVw+c+Qn4jMPQAF+HXVHQrDjtjPKzjFr1AQ+Ie7KQC MU4vhLQbu102SFMXyVooMck/0dZ0xDQnrqg8CQ7bBnfcai6LG2ajWUB/c41OpBDN YH6WvLRyANmNSevHiTytURT/Bj5F8J+oJyOYznOlxr8Nuu4QoykRfeGLj2YtYgqG S7qohswM50g5JGeYnYEXe7p+rMz4p9tscJv8mOGnaunM3eAspLJXd+SQXMd7r8N4 RSnlYg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782705544; x=1783310344; 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=K9Y/NPSMtPQptkMDm2MyOcdKS6z2KIHGsxAVHBQsCd97mu+aaR9oaeix5oIzPZKgsz C/JjxMiIYkQMuU/5D229ivzPdH9U6+9M78D1WikDxyijVt92lDsrFt46yt2IBf8xNzbF 3LTUTWckYSvGMLgNW6cLlz9IMBZmiYEPnZW5bG6Oz2voCiMb3yeCA40itkiAgmlQLcCm IUU7W7jM3IxR0Zrxd2hiZsP4bOOTw5Xy8TnSsKU2vNaetsI3BLEMR8Cgg/F1pKJ4PMl2 77e0IyjSvgqP3sVJvHGzTjwyOCrVmmtF8XpBBATB9LfcOmAF3g0aBdedDkiC+KlfaJqd thTw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782705544; x=1783310344; 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=IwTVUoYMc348ZS0m1z6ESnNWJCyENQ8V2e5WTKTfjV17ECm4H5o6qaLYdxHfn2NQ+O EqrybDE7FqwYBtPOMRbeL/+ozhe2vojjii1pnLx1yOFIsfnZn42tyWWuEzPuLTJeWisM p52f/O4Qz3aSLrY3/B/5cxgBfnW3D5D7ImxrIu45uTZ92qT+5Pa4lz0yi4Tt4FBwXAlI 6ru+IEe4sGotS4n3X0ysYyCNth6c+lzkGwlXIOnVVvlgeDz0lkdNyzxdWsEprJ0A7BtD dq+JvWBkBP/J6+WKAPvd+d6iZftNSasj2OWpzwO/F8n/+7S430ZxwoTzg0NMwuEK1SkY OUIg== X-Gm-Message-State: AOJu0YzPrCQAEprydgwSneYu+ULchjWEXsz9aBvCO63oiyjblx4iLJ15 KB+XVEEkS0NmnVhqUrhTB//wmefqeQWGN5pprYONLD2Y6iDmPJeKbQ97zDQupdd5TVMUCtwFsXs otkJv0IgfV2UrE3FhyRFZ6t8izUQ7PeREA4PSQKJYfZk5tEppxbtGqAWQlCsSzVTSzA== X-Gm-Gg: AfdE7ckSA+065aFY0HvMnGBI5TQCS6Apy0BSxEi/kYkFFDi1hy88jYk1v5QwKGlGJ9D DO8y0vvwieNyfjnUaXJ/wW/ZlZkuLF6MIwXKR61zmDsm51HEsKPNeHBzM9/LW74OoCLYRJ1coel BjITuNJ6FB2x3fiDUrwlJyy62Et5y+IkOn5QMGjBGtD/EdP7b9QeFYJpIc2P397+2Qo+cqO0Bpe vMEDPGdxfajKMvLYlWQsXemSidSw36aZcLA/UrrXnG9aO+u3G7UK3NVsKVYOa3+WM1AjdeHFENd KUQoKgVBB/Tu0ylPHCTrtsja+qKpjDr19yBGvc+MpTmNoFowU8RruSQov8fxBL/+H9SavL+Uebk xEK/UW8CymM6YW/8oltJfYuuy/jYtKcMjKPdDpIGVvS188kolkp8lQgx9N9U= X-Received: by 2002:a05:7022:45a2:b0:139:7fd9:a22 with SMTP id a92af1059eb24-139dbbc5904mr10820887c88.35.1782705543564; Sun, 28 Jun 2026 20:59:03 -0700 (PDT) X-Received: by 2002:a05:7022:45a2:b0:139:7fd9:a22 with SMTP id a92af1059eb24-139dbbc5904mr10820867c88.35.1782705543037; Sun, 28 Jun 2026 20:59:03 -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 v4 14/77] target/hexagon: Add guest, system reg number defs Date: Sun, 28 Jun 2026 20:57:27 -0700 Message-Id: <20260629035830.1520296-15-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629035830.1520296-1-brian.cain@oss.qualcomm.com> References: <20260629035830.1520296-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Authority-Analysis: v=2.4 cv=F+FnsKhN c=1 sm=1 tr=0 ts=6a41ed88 cx=c_pps a=JYo30EpNSr/tUYqK9jHPoA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=gowsoOTTUOVcmtlkKump:22 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=pGLkceISAAAA:8 a=tCkOjFGBvLAhDY2OQcYA:9 a=QEXdDO2ut3YA:10 a=Fk4IpSoW4aLDllm1B1p-:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-GUID: hLV6G4bvdlGLn_DHtPScg3w7zbDccA32 X-Proofpoint-ORIG-GUID: hLV6G4bvdlGLn_DHtPScg3w7zbDccA32 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDAzMSBTYWx0ZWRfX2YzZJkrl8w1Y J2NPujo6wDGEmjlmGKmcrcM5q7rLUyPhEuoiurHhA438tJJ13/c7B1W/+Q0BN70hVFh6/oP2s35 30fR6/m0XcLktNYlp7Bdce3nakgWZ6s8DHS/wbg7Fw9aLJcObVpFDT0sK5egr7RqlxHvj3nDAYd SUlk8X45TiPq1PDtoTVYU6wV/XxgcOSCw8VyDZvvYjt7o0sW8RK4DQHc1O8lCi1BnRKg+GphQxc /fpXhU7qbAmFQhSjfKXOw7esNYwXNzpS7e7JEE8qjsIXtQ2iEc8OxNsEsMFmPW/cNkM+ZkDDTyk 0ag8l7OSWWFhu9ITV5S84QaHIr9pGXSJDJ0hP8fVzsILtfH54Z1eyqydAT4a06S4mw4/vLimcR6 C1RcolAixh+/0C6kRRXtpubM+GagQtEeXsp1ABF9QZlOcRBhmVxBXS89t4Ky/e8xUBlxg0r9DSe cmbdJ96XJ5l86VANmwQ== X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI5MDAzMSBTYWx0ZWRfXwi2U1AEhMuCo NhUQq6HCxGsYaW421yO0niVPzpS0I48rm+fqw7WuutxW0hX+ouLFf6CyzOFDx5iJvr7T3Hx0mgH zLH+D/AAlKMFiz5JJwVMgVBT3zqsNBc= X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-29_01,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 spamscore=0 malwarescore=0 priorityscore=1501 adultscore=0 lowpriorityscore=0 clxscore=1015 phishscore=0 suspectscore=0 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290031 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782705598651158500 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 Mon Jun 29 06:52:22 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=1782705804; cv=none; d=zohomail.com; s=zohoarc; b=RMqtNFO1RK69oejRrTdB89AyXnepapka43j51CZZ0ItvGbiHFpIFYimqVyy8pYEUu+giXWFpZ4KIpiG+7APyU4bE3KQ9PlVdfsekT/7YcaZxdaV6MRkslIa1mnxq21Df6NVyWY/WQEzFLDRiokGGlcRxQHTeyjHwX97yizOPeY8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782705804; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=CFpfcMwd8GArlMSX/8JeCHICcESu4jbYe1Kmqqhv6aIbEMvePznEv1wSL0PECe0VRHruKqmIx/56ZU3+oV3V3424oEJOYciJLaChYrlubWGwLFGPSQybetVpMYAqC5W64mbxdE+tAEH3XkXFz7TqOkYN4wPDPDUxRsFyGmDuLRw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782705804623700.3255904487077; Sun, 28 Jun 2026 21:03:24 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1we39X-0001e9-Rq; Sun, 28 Jun 2026 23:59: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 1we39T-0001cr-Vy for qemu-devel@nongnu.org; Sun, 28 Jun 2026 23:59: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 1we39S-0006FN-EC for qemu-devel@nongnu.org; Sun, 28 Jun 2026 23:59: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 65T2d0Nw1554573 for ; Mon, 29 Jun 2026 03:59:07 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 4f26u74e8a-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 03:59:07 +0000 (GMT) Received: by mail-dl1-f71.google.com with SMTP id a92af1059eb24-13980b6561dso7308764c88.1 for ; Sun, 28 Jun 2026 20:59:07 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-139fc2ebcc0sm8367088c88.14.2026.06.28.20.59.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 28 Jun 2026 20:59:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= X1535rWHbX3maN5NHx9P8KfIpPdOoals3VppoQq+RNI=; b=Lq99E0ChaKramlS+ R4QrRVWd3seTp0xb1iYbKDnx1veUAY+6tiyNG+mRVTZCU1E1i0ZW0eako/kzSVwH LuQo0aU49WF67Uq6istDB1VyFrjTX6ayAJygSLw+BZcH+lE+qJnd3gC2nEmGs9Xi 7j6yA4+oJdB24XVM8lgKVMw2/c8R7ZmoZsmmowsQH9aV06mExg5sAWEq8m4gICQe GViDLSVB/jqrRD67co1ngOi0FrNzYNpEEFemaoxRcGb8q6iIuNOzF6lxnd6U1ScN BS5HKvgoVcnNyB+bk6X36KEg7aR9NXbY9+U1BsJZxbv6Bk+bx3B8PFj6cSPL4mmO bRmNpw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782705546; x=1783310346; 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=hR151bkHEMJJTErHmX50BADuhiPhRphiC8ELIRlEPho4Gc8YUFHsqczbEDRpUWvNdz uDufzL6du/FT4ewBOJzBSGnEwKf660uV0EMVYTOX1CL2r+c/Eri2V5Wuk7RNvIa1H3d9 +zzMameudnERUi+qgwpHPyp7SNFU3J3bjYtBS4BDAIBHW7dyvaZCL5LQD4LNcKPCs8Oq JtjH+kQh41/NiOjXYr7l8e0nkhUp6t3gr0m8LIVpJacWxAbjwS7SdVLSzLf7/PmqLP+J uBpm0dhWTFZeAmBo/4CMvIH3dgVK1DKOTDMTX3u3I7Hb72hznsRkzA2zE1hN5zKh1BDD uY1g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782705546; x=1783310346; 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=QxKTSLolCNuXHTkKZM0TydeMWMwC0oBza0fWfko8fdeMqb0fYtZPZe3VBdcxyA2fRz LFwJ+MC1IoAeK0XZ8eErbh8+TIJu1DMm1BPllTZpCljl5XN19MHiHn6bVWmJmhlVt7nH qOdNKJNbsgWOQTSiRRo+k51NdpaRSPLcEz0VpNsaehaWjxoQu8b6+zm+e5guGbKecgzV uWSP2L6fP+JiIy2wCzWp/BXAWnTed3QO0ZK0rjcaNoUNWBQm1xSKUI40iZTJvQhqHyhq gd1Vt0/D5xesmgc8M0m1i78I7EziJCBblnG2Bl5rqE15Uqmjne7FHFhbktX3qmW4Qx7p 7xkg== X-Gm-Message-State: AOJu0Ywjor5j+fLgHTOVfn+1p2kYzuXqNeWL7jwNdEJy3c/ljc0myT5J q5HveO/VD8oIRj29Pi0GWNTgrjoPrXqLjEBjSjJ/FwdHlkSVLZRIW0hKv0PFgY7A6WaVuhhDfks k5q9313ifoue1T8aTwASw1Vj0PZQmyYT0O7OgEDgb+QwdZ8jVLozAlbYI8tTStoRudg== X-Gm-Gg: AfdE7cl09vPQQDFqPJ4v02yYSyfMtUFBZc/X3QwKI2gn8PCf2lkRYIABdGw90aDFBY4 W6Yhe/mdbt7tl7Z29Nh5DQyxcoDkADxourE7KApW+AClNwD8CTnYgB5Mf+eW+hnIppGaR5wVcep /OZOTAS+5MAh2HP8dF0E8WnGo/SOM8ddHWd8KkY+TXU4CqMkOfqXv+z2r4paN3i/DDA0IIp1c19 HbMH9ird/rUQzOEC1/wLSxkzkcKOeU5zYcWVex7YIdEw4080u3UgbRDX3tz4wm1uUEqO5ipXUru 6L1pFpYYrbfT8argM8+ayX0BEKPaYpbs6C/Ix8it04lkNjlX9Q9WFepJaeFwJk6uXW6O9CBgyq1 Zf9hs1zhTBwyfePPWKjnH7+42VmjWxL+HvbxJQsXIJCy4QtkaEbhWhjFsA2M= X-Received: by 2002:a05:7022:50e:b0:137:99bd:d156 with SMTP id a92af1059eb24-139db9ee306mr12028539c88.7.1782705546408; Sun, 28 Jun 2026 20:59:06 -0700 (PDT) X-Received: by 2002:a05:7022:50e:b0:137:99bd:d156 with SMTP id a92af1059eb24-139db9ee306mr12028532c88.7.1782705545897; Sun, 28 Jun 2026 20:59: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 v4 15/77] target/hexagon: Add guest, system reg number state Date: Sun, 28 Jun 2026 20:57:28 -0700 Message-Id: <20260629035830.1520296-16-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629035830.1520296-1-brian.cain@oss.qualcomm.com> References: <20260629035830.1520296-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: AW1haW4tMjYwNjI5MDAzMSBTYWx0ZWRfXzlWj4gzinwbu sLHiaTu9V29gPp07qld9t3Z8AJDmt5XQo7yxJp48vFb3bBY1DJZZw54+iaFNzn2JY18ojKNRYBP EWGwEdDcVA5Y0Ys4NDWSLTid91KbkeY= X-Authority-Analysis: v=2.4 cv=ftnsol4f c=1 sm=1 tr=0 ts=6a41ed8b cx=c_pps a=JYo30EpNSr/tUYqK9jHPoA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=ikZfMmNF8Hme0_TNbpMA:9 a=QEXdDO2ut3YA:10 a=Fk4IpSoW4aLDllm1B1p-:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-GUID: RD4P2OK31S7oojWqmcAsXrFy2fF_lv0h X-Proofpoint-ORIG-GUID: RD4P2OK31S7oojWqmcAsXrFy2fF_lv0h X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDAzMSBTYWx0ZWRfX458QJ9YiAcz/ Zdcdsr6DUvRPFljJVUGdDuSVeUPMrPOXrmUJp2yV8uozzOHH/hnOijwctPlHopUQuqIq9h5BEM+ CVo2qmoGiQCueJ/Lzd/mLrm9tpugrEL0W9Xr7Hwjnhq51x22E6pMYLJjLCj9IKrpreyo7r9TCLS aTO0BEoP1DmR95y2qeJyKY5TwxPauVYJoPoNmE/DrSRiKlNZyacK1L0jYIZhznmOVDo6zJG1PCC zEBLjyMtWFg0y8fsqlZGLqrsmqX6N77iwEIN48tPnlJFD/OtW3ZGdwOXiLorRfbbVsD78u7eS5e GhBv3vuLK4pZqkDzRve+JTzjiBJt1kHEM6hFaku3hq8HAImGL868P5gfFWH6p/clLTmSWhWgkYZ jgi3wlNZl0OXF2GYmGPc+l0pHkENfQ0E0e3P/RrQyktp6+fFapLiGN0H7iRm/mvUZHEMfZ8bGjF RcP1FoUilXNP2XBXsAw== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-29_01,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 malwarescore=0 suspectscore=0 lowpriorityscore=0 impostorscore=0 priorityscore=1501 adultscore=0 bulkscore=0 clxscore=1015 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290031 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782705805659158500 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 Mon Jun 29 06:52:22 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=1782705800; cv=none; d=zohomail.com; s=zohoarc; b=W4JyggSSrOZN/xZJpw+jds8AU0l78WE/S4ZEkLueuwWHc6hajo4trTwfKEShKnbw0Zm4crIZODufO4icmLspNsEFwDR2GV+5NeEpAxyn+4It23YCu8g7FmwuIeCch/zUFyDGO/JstXMVtpLcE68lAPndLQsAMdeYyqgcWGctcuU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782705800; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=IGDcneqLexuXbhfaziKq6K4yz04Z3GnAU0LvMHONh5j0pC0bJjb2DJtAWbrfZ+F9e+jjO9Qp5GE7jxjxevp20e1jHjZe/lA1PREay8mcDZsANjA1y2l4UzbXenJ3zCwGchjWjYncs4BsX3BWY2HEKxdt1/y4rzDOuilLTHkvzQU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782705800400341.27772109048647; Sun, 28 Jun 2026 21:03:20 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1we39X-0001eP-SO; Sun, 28 Jun 2026 23:59: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 1we39V-0001dg-FM for qemu-devel@nongnu.org; Sun, 28 Jun 2026 23:59:21 -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 1we39T-0006FU-VP for qemu-devel@nongnu.org; Sun, 28 Jun 2026 23:59: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 65T2d7JN1519190 for ; Mon, 29 Jun 2026 03:59:09 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 4f2734cdd8-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 03:59:08 +0000 (GMT) Received: by mail-dl1-f70.google.com with SMTP id a92af1059eb24-139c98d7bf4so2359710c88.1 for ; Sun, 28 Jun 2026 20:59: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-139fc2ebcc0sm8367088c88.14.2026.06.28.20.59.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 28 Jun 2026 20:59:06 -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=jT AqHSCa0FTDQUVFpJEjjYXfX/b5+NY6miQPh1+oOhksMA1ab8NVTB2JyGz+uRxt5M 6gg26izhmGg5NyZQcv+CgCbw5vkEHVBD/VWsKlAn+hSF1XoQxgRPAJrYVWrvqKam BTglUJ3QA83PQXG3cohErFTJ++h8gE0t/G9LuOybP5Pv/UNxwX7HjIEk0TDGIDwA CGd+HjkhM6YQ4yTIiT9hW4kTpeI7EplBlcWNjtY9q0pZJFPLx1Ns50ESlTe9whgI wMf6DbZpBVsKAcLwHMnFz8pJrycdjOzbgWpE1UvoUYTUZISFjejIm9RV6YJr6rna +OKzhxojnIduLgtrQ8Sg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782705548; x=1783310348; 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=PhatmYissGNxOoeSlxJfqFRUV+BLmdQq6dPdONQI5E+tRrkPelb1aJo3rNSW5eWtTT MHGcxkO/7vIE0xaOGYSeNEyaKzH3S7BK/639iD416QJgLscAtkpJBN1ErlvFeLRmAMvZ 0QkCkcpinibWuhwNIDDHw2v+STdo9d6zYGJjNb4u2Bbd0as8QxGRHbnnrxYzZQjOA+0j KhzwsCulsO0OJlpEb7kC5LzfUT5E90pow5ULSSKJTsWMdtKiSg8/wrZe45YR75B+CStM 0tPBGXZ5S6wTGNMSmz0CFt6dOOJ/Fd85ArbpiUgAZu1tCpHg4Nzl8ZSJRHF05E6nFssB dUVQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782705548; x=1783310348; 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=jWOfKPhpz26TfvMJ9r2vUxVLdo08h6BBFWJEo5N99Og+w+DFQ2I7xs9BlQbyrGTig8 TXHxo7Figj7LOuvpcegpDikMd7ehRhgDKFtqkDIvdjdZCk876Ka0dsIJ79bN372RatEJ 0AcKwAQS6a0GCns1ukJXyJPvVU59EF65e2c5U/M2FGEpVFEVE+kgzl223lhreyRcv6VI A9eAr8p59yz0FatLyVB1cNHK0i+I5XlPjDyrgLlPmLFV5BzDjujZjZyn5VUNHGjUwYWP WoE6YUBWoLfhuCp8f2Asy1vxDIcxZ76FuZoY61S4ol7QZNrCPlJQnjg06qYdCfBUKf+p 4KrQ== X-Gm-Message-State: AOJu0YylmuiFYTyvYZvntumEUKXQUfM5QKGbhIUBirYkEQE8eM8Hx4Oa aog2CDnwQrIihnVAekXjYLgE+R1xT3kZ9WxQ8Udhou0rminDPwSqWcc22a/isEcUQ8naFtZXeqZ dsWrN76hugL/SKFydmNFOCym/hULbjL9DeS5DAW4JXxqZDNV6c0ok8xImZHebiSAqGg== X-Gm-Gg: AfdE7clTFJODXpFwJN9qBc76fO7Bn1ueV5Ds9UJoreBr1+VOoRSzOrifvzf2JgLAy0V mtZAzYr3s/lxlOYNM3Y3Mbx6AE6xWr/3KqrEkSs57ZltoJHK9MBkB/glCkvv5EEI1m/T/N2msRX 3b2Ojt2aKm4qZl4+2M90CO7Lr2XU4LBd26M6v8SS810jeNRPvcx49qNobP94L4DnC0xvcj6A9CF n9Oa3zU5auKU1wqp+4YyxRRZTW+1gll2K2dRQxxJveX0fA4kvrGSpajYi5ra/WcIbXFdjWovuyc ROLp5tjw9vFA/9lcqxRObRBsJZnLS0aH3X2y7KMAaTDGI3fU7TURxhwOCrFpI881p/aeinzTWQ1 Rxdcb/WEDEktWwksE++oEN4wxrTzUMqG00mBqyTTv/pQ7+Cys87C7C23EdIA= X-Received: by 2002:a05:7022:98f:b0:12a:8122:24a9 with SMTP id a92af1059eb24-139c3d0958amr17971191c88.22.1782705547591; Sun, 28 Jun 2026 20:59:07 -0700 (PDT) X-Received: by 2002:a05:7022:98f:b0:12a:8122:24a9 with SMTP id a92af1059eb24-139c3d0958amr17971165c88.22.1782705547099; Sun, 28 Jun 2026 20:59:07 -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 v4 16/77] target/hexagon: Add TCG values for sreg, greg Date: Sun, 28 Jun 2026 20:57:29 -0700 Message-Id: <20260629035830.1520296-17-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629035830.1520296-1-brian.cain@oss.qualcomm.com> References: <20260629035830.1520296-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-GUID: hntDn5WZaqeJD35xECM7oiH8OVBOzdWz X-Proofpoint-ORIG-GUID: hntDn5WZaqeJD35xECM7oiH8OVBOzdWz X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI5MDAzMSBTYWx0ZWRfXxBfZyUjgwXzc S0e+vyP4HJI/4AIML8ghz+M7Dp0HZzHNCeeZxRYfp5ZYHpu9fuuYy415S556pW1IFtNUUBHTXVH GZnitZD67UvvjR5l/rrP7bNKeva44gs= X-Authority-Analysis: v=2.4 cv=HYokiCE8 c=1 sm=1 tr=0 ts=6a41ed8c cx=c_pps a=SvEPeNj+VMjHSW//kvnxuw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=rJkE3RaqiGZ5pbrm-msn:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=KKAkSRfTAAAA:8 a=EUspDBNiAAAA:8 a=8kp5zrIFwsha1M26KQwA:9 a=QEXdDO2ut3YA:10 a=Kq8ClHjjuc5pcCNDwlU0:22 a=TjNXssC_j7lpFel5tvFf:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDAzMSBTYWx0ZWRfXwhkCehPuJTj1 aqSStMwByPxML3AntwM3qywpyxJ4lSGY5qAiU1Ao6uONZ+joEMVFZdi+j51K5qbkDjyA9UQSfRl x4C1JnibgEl3B/aebmgMPW3XGsX9lyifnbh0OjCnRUBqnHPAbpgZxXfEH0TlJSjgWxtLkqt08ld 509JWXc3IsucDC8R0ce+vgXZqLit6TZnVdeSe6Qo8NQalHfkt5W9Sj63NGbXHex7T6VdCLg4KCJ rd+4ZdUX1QY0VF7xlZSdPDy7WSt2kD3N5p+uttCh6W0GGoPOhM4MWBTHf3NZxOuEWJStoJq1stC OblxPdb4q56uGympikiSse8kh/z9sRSekWcj4dO1K5maFG8xwu8j2Gbodvg1jaAi+9iFl1QrqpT DFaXXCpmQO5RLII0nQ2OcRKhY9fIg31VrYB5Q1mhuuhF7wkpGyezk6D12nvXF3w8Vs6TBVUHfzX cLJ/LlzcAHKZ56l9yQQ== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-29_01,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 clxscore=1015 suspectscore=0 priorityscore=1501 lowpriorityscore=0 impostorscore=0 spamscore=0 malwarescore=0 bulkscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290031 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782705801657158500 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 Mon Jun 29 06:52:22 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=1782705660; cv=none; d=zohomail.com; s=zohoarc; b=iHbRPy+UcEG24fgABBOoYsk+fEhwumJNRntTSMcf/Qxj8RtywJa2hIo3w1LDBqr9i8IyhZK3JIKkGtgMcD8h31Xcv9JghvgJJl0Mb2jPFBkAVSDRTOzRFSayDCFuzic2LgfaeQzusL2sdE2AXpA35WFU+rGFNmt8b9XDK9kLPFI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782705660; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=CNHnZhw/MGp1LO4otHOR2X5RLszy5HXXLvysNYnWMK80jumQEjl6hCmUVutLR5e5Dro1UKMfkn7eDWQqAMYl9MeJyTgxPC/ewnOiuyDAGH9gqGVG19VXLcMz1k40iE/A83Mv/ZBx3IbPHsprNnfk0U95q/ul9eStlSSLzFueBDs= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782705660839365.0603937763856; Sun, 28 Jun 2026 21: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 1we39b-0001fD-P1; Sun, 28 Jun 2026 23:59:29 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1we39W-0001eA-DO for qemu-devel@nongnu.org; Sun, 28 Jun 2026 23:59: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 1we39U-0006Fe-Qo for qemu-devel@nongnu.org; Sun, 28 Jun 2026 23:59:22 -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 65T2d4JN1519170 for ; Mon, 29 Jun 2026 03:59: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 4f2734cdda-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 03:59:09 +0000 (GMT) Received: by mail-dl1-f71.google.com with SMTP id a92af1059eb24-139c6673856so4500332c88.0 for ; Sun, 28 Jun 2026 20:59: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-139fc2ebcc0sm8367088c88.14.2026.06.28.20.59.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 28 Jun 2026 20:59: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= 3FB08ozXJ75KuaQ0Uu8ai6pxj0RZ56tBJAjvVwXnq20=; b=BKqZOQju0mdlbtaF OjmjQ/nljFg5PIxgSvdEx3VXsbx9eGcNJesjKSEpvH5PoHYMG3TdcCSz5dNV7bkN 05qh6s3HwHpoA2e3v5AJr52A/3Y+Y+uQ5tMZ51X3MAhyZ/cYNCojOgK+TiiSJrhg SIxiXwabHb7Zyl5yJRceOECDCuAaIS8xipu5DvsVGE3ALqFSvUMGYaE4uKK6gNjf wvbzPPv+hiqfT0bCN/CyC/sPDOASgo8MWMVDsmHseaprX0QwmIZaSmFnFKhxE69/ 2c91M/PObWaBHlqtX7747IAfj1pp0tV4Ahf+GaWWuIW5p6g96pea5xJ/vq8NVagp B5VC6A== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782705549; x=1783310349; 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=fTrxQihNigrSyl7KVXFhmMlJZsPiae3gwdqCJQwNaXoJ8RkDO4SBW7onkDNygfdxZ6 1H/AKHPEGKlNgVf7KkpyLHnIjAcgo0sYHGPnwGBJtFb+vU/1qTXKG4u80XkIJOAyoOVq CFnOgujjRA+X/ZXgLtOidjv/zpWykmtk9VDq6u66sJs76vOsfNlvtAxdxaX8acRTkfxM CNCyJWpWr/55UPIDz0N2xrFZDnl/1MbpLhTmkDgPmCKCu+hQUFvn1SgEMa6jYcDH48Eu he511aPK2YtKsEFtk4W6N8fkaOsnAWSiTRfVJoIooEer5vSOl27qDl8oy4iaJAnwb6IX B1Kw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782705549; x=1783310349; 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=K8V+lJAGGNjoZirNbRBhc6Ha2Erb9WUjHbZwQzh8j1y/uSCu1ML9TEx2QpAyrshnBf F58cAkKoeRO/I0bwPLR90d0X9RttqEkt7aQGr7XJwxe1Xbsj/u2n4NXLOF4znbNiRcjH MhXEj6W1wpQyQImqGV1uPux4Rvt79B8BqJ9NZiTEajotgVWc5ipJ79e9mzPh0jNfeVnA xdrhpuc+Ble7nL/LbRqDgLS4BbxIVdWhrGoNNj2twCIwoNqhXBwBNKoNDtxmO3VVkdob pjTSaavxIcpWzsKj0PcO6Ccg7bQUW+3vQ4rJFGKDmC39T1ISfX4x0BIv158317bXcB8A HM/w== X-Gm-Message-State: AOJu0YxRSfXmHRiqRGcSlESxsqZzNpp4cI5beHpMaH9xaagcAkFGECTX RKt0ieEgCOgl05QIIHq3nlr8kBm0YOtZL0k4qUF0Ag1Ow6GTUe8vEvEYqQfAjiuGgEZZQUvEhYB DoRcrQkHeCw4MlykB8X0OP1hfhH7jfHbLosLK/AtzlV5qtdbqflpgfGtE9TkQksqyAA== X-Gm-Gg: AfdE7ck/SoHFKEsu0DQtrhuWnnniRrZpV7SYRn3eeMfvbfdN3ECa3Ztp9fwk8IPHdUL b0WMo6KfnvcpK1syeUnGJsEA0aA8Ctsz162rZInC6JV0fQhBOg4m66Sp8EDGdZX8RneIFwt4sKn mEczyD8G3cgbS1lQ0WR1XrQaZpVMClhdECmfz8OM3HQxrUF+Cs+YEBWM9FC346B8FLWr47FyVZI yNC5KxMOiVExW+IAepNas+Vzw/viOFza0WWYzCW8kG6C3mt39xJZ/1nPp3Dod2iKPj/tYlL7o54 uoa4YwF39M5WQ+PAXrvQebOVXY7lcJ2U93Kv6CTHOHxkqjRmeHBsryy7s1AtFCOesLudbGkUenA b+3OHGIi0PhPoo2DVN02A7VMfN5fYDLs+KfwOXdVG81oqjUDgtAuFhN6txjY= X-Received: by 2002:a05:7022:6b94:b0:139:f3cd:22b8 with SMTP id a92af1059eb24-139f3cd2609mr4579138c88.49.1782705548966; Sun, 28 Jun 2026 20:59:08 -0700 (PDT) X-Received: by 2002:a05:7022:6b94:b0:139:f3cd:22b8 with SMTP id a92af1059eb24-139f3cd2609mr4579122c88.49.1782705548481; Sun, 28 Jun 2026 20:59: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 v4 17/77] target/hexagon: Add guest/sys reg writes to DisasContext Date: Sun, 28 Jun 2026 20:57:30 -0700 Message-Id: <20260629035830.1520296-18-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629035830.1520296-1-brian.cain@oss.qualcomm.com> References: <20260629035830.1520296-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: 99KkIBdSSrBLNgVAS0CRTweClEKSBsAz X-Proofpoint-ORIG-GUID: 99KkIBdSSrBLNgVAS0CRTweClEKSBsAz X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI5MDAzMSBTYWx0ZWRfXz2MNCKnOJkQX 1tZ8JGINn6/LS6qOblp1KFe51G4RULpBbkgV9yGO1h5JIcI8suk+8byzch9OjMoJYuzox+/Lte7 UWPnZ5r0mlRWuusesObixKURjhTN1Z8= X-Authority-Analysis: v=2.4 cv=HYokiCE8 c=1 sm=1 tr=0 ts=6a41ed8d cx=c_pps a=JYo30EpNSr/tUYqK9jHPoA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=rJkE3RaqiGZ5pbrm-msn:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=tdgd3nfel_K54e3JQaMA:9 a=QEXdDO2ut3YA:10 a=Fk4IpSoW4aLDllm1B1p-:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDAzMSBTYWx0ZWRfX+LKVJXIIF+a9 SEh21TWOKIHn9RWXek883XwIgcEpGBZwBtbE6He34oUnBnJ/5zKFG4LMFYKvINI1kwN1WghxVEV D7voT/2KBLm779LbllING5o+Kzs1O5eUznv4JhKvi13OVA/dPJjeJgoMjP83NMvcVrlgaNOscxz 7Rjf8NxzgBVQkxw9c3Gtqfe7XEz2pFUrGpHI3Vv8wvDWxZMUKpoNnN5JPUtm8JIDGlx6U04UPdg hToXmhL7ZQojI9zY3Yt/EvF5sRcU4rO5eoUOI5w6LscoHq6IC8X7PcA+34MAF+BktIN7V61PsD1 X8nNGj69uhl02CrR7UTKfVtmfuzrKUdVIBpzH5zhstVX+N8z+E85zwPPcjYtxEU+eQlxSXV5hNf 8IV2vpnTV4Okd3/BCe2AnEH+DKN7q6JyxfGWkAWkKMfTI9qzGMtftdx24NzfixHb4JLoy4rGHEv YIv67hqT9IFk2uu885Q== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-29_01,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 clxscore=1015 suspectscore=0 priorityscore=1501 lowpriorityscore=0 impostorscore=0 spamscore=0 malwarescore=0 bulkscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290031 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782705662903158500 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 Mon Jun 29 06:52:22 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=1782705917; cv=none; d=zohomail.com; s=zohoarc; b=ZZD7uCrk1X9bFrLY0SNh/93ax+MbjmzB/fJShpRj0uD+rvTI2wBR4cHGsnhNUx2F/6acIg2qFayrD4LmrmTmwenrlU9smajGSk5Q+O1m0hNl1TPMD4hxMYtpU3Dy99bn3Wj68WmLd+alEHEdKtS1KATqjPzr/jet5FYDeLIk/WY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782705917; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=GVAKX41kKgjbCV33/4b9QbEAthYqORmRmwnSpl3/yq8Wsdcd85TtJJdO66o3503w9ULom4mrOjk+73Ko9NHGcKZDP0AQZLYBleRLezNwGSo9AaoQc2NAg3y4UYKbDLsONjmDNs6TuwkpieckDIGdOPPWAxf/r17L342vh+QbbY8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782705917312679.4201030163707; Sun, 28 Jun 2026 21:05:17 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1we39d-0001fm-Ji; Sun, 28 Jun 2026 23:59:29 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1we39Z-0001ex-H9 for qemu-devel@nongnu.org; Sun, 28 Jun 2026 23:59: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 1we39W-0006Ft-MB for qemu-devel@nongnu.org; Sun, 28 Jun 2026 23:59:25 -0400 Received: from pps.filterd (m0279872.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65T2dKGY1499566 for ; Mon, 29 Jun 2026 03:59:11 GMT Received: from mail-dy1-f199.google.com (mail-dy1-f199.google.com [74.125.82.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f26w6mda7-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 03:59:11 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-30ec59471a3so591458eec.0 for ; Sun, 28 Jun 2026 20:59:11 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-139fc2ebcc0sm8367088c88.14.2026.06.28.20.59.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 28 Jun 2026 20:59: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= hhoakWVabZ7IJR8eGDuXPSShTsj/f5bhJiXKe7ZTYNg=; b=FeC3zwObmznV4+Ht 4StcWtDRP8ZlcCnHDYxW/Y7qXFUffEJ9dvr7tlPvHC7lr0EmJn7hYXBOF6h/Ll7h WkH6mLS27xYqtRpqL9cswHeoTuqFgZJUMGPXpi7lxEOFS9eVAm35Jvn4lxoQnWIN wsf/o/nXVhJQVFTSy11G4EufARCfkTtGQAeO7VU8V2eCmWiqWgLpZGFOmP7pFsEF Q2T6mGo4Ldpa1xrVV/tLGLA7bkmdW8ud8tZPpHNUcWV0lBSEI7Nuyvv8zUxm2qS3 h/GD0O8Vxv1MMpc+DF2IEKbMiwMimOJdPi/XbSlhjWJPjeWhxkBykaNlzZFMcfB5 pvYTsQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782705551; x=1783310351; 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=ZSqFtO92mo2KZmPSkzhzKqL+kZ90hUyS9ii4fcEIxY+ZTuP9QrVaELzG1B1q9TI8E1 F5/ULCpoxbg5ZJIsBWeNOPle669zkal6DrDvO27tavHn9+enshgr8XZ5SXL+KcwB86Fr d9kvjx6jRqtte9ahQWgh5fNnyLKOvY1mzpnLGH6WSggtog4Nzy3Ju3oOIN0AvoiF8K2W ITIl98fC3XPd+bx16VkfgPUWpEG9+0iq2vjqi4JHZgJzIh+Fv5H0gbjDjM//l8NjNFV6 uBlq4GuQRkfoIrQykeFuSWeqQS/u86YponuV+1nX4DXgLSARnD+fFj+XhwsQ1DyEZQjJ MRkg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782705551; x=1783310351; 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=BlsPE3FqLxJ0Y1GyQVXwHD+/paywMGgOXrpvDysl12sSUptC+9aSsl/Id5KOqXji1z sEoy/FvduoZQAsU+HXVxs841pUJdk+j18mnWncl1YarLZUhPS3u/+gfHGpO/HtBlAmQ1 VZt2i5mJqiH3lTg1kd1NJb4UjyK5bb936AlLi7HoSGgJ33+cp6jLMmREjPIG0fTiKOJI 1bGo0fc5DYsymp9tI1vZR6WXoyCF25fCJpBX81yP0J2/bg0fjwaYLC3AwIjIn4hAHzzC l7luH4Wk0JpoBj21odZ0KGZdyUFco1tqMSJ0BOe8XXL4uFiyHWoRU9K02TiLkbJLKGyp O62g== X-Gm-Message-State: AOJu0Yww8C585aChpCz/YIEbVdF7hHjZHj8m3TUg3G6EisNxwv1G2wxZ 5a2fNBHNuIABfpTCifGtNqhgukY4bEOQJ+MgFyIMrOqAixB5Ep5Ou2Nm3HgsdgqsYpTd195TCqW nJVFurv9DBr2PKiYM25wBFt+v7YKySzNoSepRLqiYOw26G7oR+JOvBtGthHAnTnY7Sw== X-Gm-Gg: AfdE7clBwUo4krug7JS/d2w4ZdGizOFGOc95rSiI0F/LP8e2WXZoCDO0sBCM6K1BM/I Ggi5/9zX1XiaH2spPa1fTyUkjvPlA3Wru1KVFTgCocMRQqkMaYFtBK0VNny9zNDgeBgiUOvIZp1 96JUkVJOHiPK//oqgqdoKGWhMIje5z3uZjBOCo06ilHtB7XfJURlFI7l4U1ObYnmqS1afIucOWr NpHGiqqcRIGt2ylHGlE+hUMD81mZlHPOBEMynl0E1L47NbDvCoIMtbNswzZYzFStnryTd7MG0g1 vQk+7V91Go6Jcx6ivoGdvh9A6SgxnTC1LuOJUGORLzPGoMJ13wUJvW5PE2hJky0MWHIWl3nOh21 XEy4e5WqfyxSo1sLKahUggoxmJ7Xq6eaTWZ0PIvw7BvBeMqwQGekjw7rLdYM= X-Received: by 2002:a05:7023:b02:b0:137:24c9:fb7a with SMTP id a92af1059eb24-139c3c12475mr18961555c88.2.1782705550425; Sun, 28 Jun 2026 20:59:10 -0700 (PDT) X-Received: by 2002:a05:7023:b02:b0:137:24c9:fb7a with SMTP id a92af1059eb24-139c3c12475mr18961533c88.2.1782705549797; Sun, 28 Jun 2026 20:59:09 -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 v4 18/77] target/hexagon: Add imported macro, attr defs for sysemu Date: Sun, 28 Jun 2026 20:57:31 -0700 Message-Id: <20260629035830.1520296-19-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629035830.1520296-1-brian.cain@oss.qualcomm.com> References: <20260629035830.1520296-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: rVlam9dCpZNRjT8iusD-wfk4dMVVipI3 X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI5MDAzMSBTYWx0ZWRfX7FP56p5bn2Az KsJcT82rGgQL5uTHkcOV/srfvB2IzvtmYkx9QEYacH96g2SH2/W/tWb+/omEMeUZMaf+hYYHshn joGYmK+1D694ihwReZv+UmI96Jq4iBg= X-Proofpoint-GUID: rVlam9dCpZNRjT8iusD-wfk4dMVVipI3 X-Authority-Analysis: v=2.4 cv=SuugLvO0 c=1 sm=1 tr=0 ts=6a41ed8f cx=c_pps a=cFYjgdjTJScbgFmBucgdfQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yx91gb_oNiZeI1HMLzn7:22 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=9WelToRRDTwRCstGtewA:9 a=QEXdDO2ut3YA:10 a=scEy_gLbYbu1JhEsrz4S:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDAzMSBTYWx0ZWRfXxxnov94E2dtl DUvd1b/Iz1OyJdAp1AHEGKsAovZDJCkzKqVPrmhUK05hHk/uHB2tMStLeyqPcf3OeikhDQE7mXZ LxBodwEkFg4EfBRHWU8072gRs9gOiV8r1yEqnL17pnOdXCAre+ArwTZ7A2db9zvnKpoenTM9/lv CaS4IRv92Ryr1mCLa0AYkcrY0sfDgHb5az2dy7OsZHwSRP4whL175CJjM5uAYp7/Zv+PaHNlqFo eupRyuVDANOfLO6Qni/m7C8ph1+07GHCiSc6NIPPSHeiqUl3U/naxaOV3qb2L1KK6aSBwgqACvs m3LK7ZudaeJF68rEYpoReTjXjv9NjdbZEDQTByUB8l/54Jj59YxXKnzS80Iw5DBGHcvw9CxfrEF MK5kJ2Pm/t50TLvcIg6j/UxmaSt6JirXqDwjA+JTC6qCdclxEuyMG6lVIzGMaz7ZfjmehPrLK6Y qzugcW4UfV5A14mtAjg== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-29_01,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 spamscore=0 adultscore=0 priorityscore=1501 clxscore=1015 phishscore=0 bulkscore=0 impostorscore=0 suspectscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290031 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782705918344158500 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 Mon Jun 29 06:52:22 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=1782705882; cv=none; d=zohomail.com; s=zohoarc; b=Awsg8kvgVWqcvCrdWKU75osIxOGttUx7vxobo0FeE4r2PUh9Luakg9PFxjGLj2gxaepcbW4k09Y8iEooBmGS0KXvPcnV8KzmpNVMue9ZKdO3bOC98Lmt+u6sZgvuQW3JecwalN2tn9RqH45m1W7nhnsH3mCJIHDsQ6iHVXYpspA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782705882; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=ZoCbiSEKRnYxzoOZN/cY2vsuBBhA5/MVvd6g1oIRV89ibP4+/QH00SMM98GujVILBiF+pFGb8/PLLajVu5jkqTlOebTVwexam8oz6upfcmm/myKudaXsu4T4AiEUnLqbOVDHyYHAXAGPMUUcFos0bq9cB5EHGE3fuOJcVcXRhNY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782705882458408.60831100899884; Sun, 28 Jun 2026 21:04:42 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1we39f-0001gN-WD; Sun, 28 Jun 2026 23:59: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 1we39Z-0001f6-W6 for qemu-devel@nongnu.org; Sun, 28 Jun 2026 23:59: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 1we39X-0006G0-Lr for qemu-devel@nongnu.org; Sun, 28 Jun 2026 23:59:25 -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 65T2cvYZ1549951 for ; Mon, 29 Jun 2026 03:59:12 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 4f26x8mdsc-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 03:59:12 +0000 (GMT) Received: by mail-dl1-f71.google.com with SMTP id a92af1059eb24-139f5f5eae7so5834233c88.1 for ; Sun, 28 Jun 2026 20:59:12 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-139fc2ebcc0sm8367088c88.14.2026.06.28.20.59.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 28 Jun 2026 20:59:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= QOPCxfzT1avmaDDfh5FOnklE9vds5SWBGBuv99jugao=; b=jRH+HDLt43YprLGn NTAFU1Q+bpdRCLBw7+pZqNd2m2rK9u8rjcRg9J9lV+0t74Hvy8ZsMJUpISuBUqI1 G7mygh0ukVqLLxnVVBwd6gsANBHvkamGcbkvTNB3uWMO2V2Dsd7YZmFtfrDlWuGq Ghe+7RG9QVfO5eOHv1NyVTQehCJqxU5U3TgCeJtOT4+a6xllUmd9RiqUJytHH2Ol YzbQCDq2iZQOm+wqWpwVhw3RvTjcY6POlFiFWZheOeOpfvi7m8RgQXg2Ol0FezEk O116gl1VnajM9gDbZhXYQPzwZ0gOa7fAjGDbQaxYA4QU9sY3uFAKTmJxVNtahSrx /NNIkQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782705552; x=1783310352; 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=TX3+9J9Qgm0qPXbuchk0qrDE4TrUvmu0RsaZPdVLggDGGBPYEIz/Hzn9SaQ0JkR7ND UzAmjBCjAynkImIO7wWuhcb8GSYpp962SCi3+pBM3WkwYxRT3MbxBulIqvvSKgpgGpDC utV/MP0zm56JpzWM5+tLYwDQqsywuDQfg+W0YWJLZzrlxwVG4rbj4FzFbM8iUZcQoXc0 uDHO7TqP0GWMPw+3TlItjpjsIwQCDcZ8RryQnRtr91kW/4Cb5npTWeWbXidJHCjI4vYk 2sp/iBPjKL1In5GHx9KAVJj7A8mfV2ACHcK6Stj2e10vVpwinnuYxdyEulcq7+n0JDFs aRSg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782705552; x=1783310352; 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=lK/Tkj7ng2ih7dbClEoD0sh1q3yiBCAhFW+yA3Gsz7tNNvQsEoiP5c0VWHvDRNXwia lSRpgSXvZQ9i/BkmNsMapZuxLKYv+MRfDhfpffb/AJSN2CuhHbZfsOwAxnfcAR7TciON XrD7vFkxlVv/RLqTNb0cOcWrCOCr0CqoPQyMtDgoOU0JV/G5a7KY0XTIu0vuOJi8xVac jwyVol13MrUORf75hFZ7YqZXMTs3Kd1ZP+xkFJf2u5wINZgd9FuUN2BeWzU55f6Sqew/ pCRDDNO6zGoTtlRGWfduEvKzuggZ6/maEqS4OApmp2uJxsqxbWqCtPkSodxzpxs/z16n bAyQ== X-Gm-Message-State: AOJu0Yz0rHp8/tdMc2j01/GQUWVvzm2SVDysRDP+7fVbuERpolCJXZ4X KYWYMc7CF6bjFz5piBSKnExQBiomz/r8fg4iVXwUY1YsjxgiH7cNi2Kp9THX4GEqhetMlFMcUM4 3OYYE36+6MI0fA6TlAB8i53SLEfcyfJ2CFdTrEtrMTMh7N1wRmYA0BVR/PviXbXML8Q== X-Gm-Gg: AfdE7cmfX93B4Cjb1atWUTsGwnhjIRfyFnmQUEBENmjd6Xvzt0XNGIDswsBZORcmzbT 8NeMm/uRKF1PQErp/jtKhVEy+tKZEVMU4VGRFLyKgLXID3iVBSgEkt4pKVrhx3Cm1fQ5CdAdqlc gHY+Ts6X5JurWnoCrw+b9IDYBRl6gUp5kPPYj8sPt+Wcfr0CvsqdWmZXc1ACYa+klNI9gA8mjKU bVslBcbIQ5H4nl51O30/FTBSfejw/nJnjURw2frHG6fRfLEyYIcXSz2293izEkhAEgpdC6MwM7o iwNhy2+HSup2B8qQdPn99MDokHg2MazZoyBrFTTeOWjP3B+yAbQsuExC3WmsbBF0BleRQCXU6ik SSNO5a2ogzswwGfR5vwADMYbFvBddvRigaQ4kfvzLly9lQSNEtybQYTzfg6g= X-Received: by 2002:a05:7022:2581:b0:139:fe25:a58 with SMTP id a92af1059eb24-139fe250c15mr1462643c88.46.1782705551581; Sun, 28 Jun 2026 20:59:11 -0700 (PDT) X-Received: by 2002:a05:7022:2581:b0:139:fe25:a58 with SMTP id a92af1059eb24-139fe250c15mr1462626c88.46.1782705551028; Sun, 28 Jun 2026 20:59:11 -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 v4 19/77] target/hexagon: Add new macro definitions for sysemu Date: Sun, 28 Jun 2026 20:57:32 -0700 Message-Id: <20260629035830.1520296-20-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629035830.1520296-1-brian.cain@oss.qualcomm.com> References: <20260629035830.1520296-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: AW1haW4tMjYwNjI5MDAzMSBTYWx0ZWRfX8UCbaN9Hk8JT dPFUmAX47T8M7+8ka46ZLNghuTolM1VJ0Z0Pk8cXqhAg9V3dnE0Ch9lJrU+MtWyWAO1+H3MxpP7 dQ1zqF7fyq7EJwXJOk8KKx7ARp4Zy7E= X-Authority-Analysis: v=2.4 cv=D+N37PRj c=1 sm=1 tr=0 ts=6a41ed90 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=VoFV4bgUeqxKQXHmsMYA:9 a=QEXdDO2ut3YA:10 a=Fk4IpSoW4aLDllm1B1p-:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-GUID: pYPb-croncVG9N1FnmE_9xYzXppmMqje X-Proofpoint-ORIG-GUID: pYPb-croncVG9N1FnmE_9xYzXppmMqje X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDAzMSBTYWx0ZWRfX7AtvUDHkzXik 2B+ZjvA4Fc1JraaP1EqYqgIgIb7cDLu4kBVsGmbRqv7yDbj6BTgihQUJ3LFCSp8ncen1QKm/i4T pD4EL/UMVDJ+zyCo/vUeexO9iy0cNn68DwwWVmzTtaMD9xz+IE6RYXENx7aGhvL5Tehk9KjvV1Q F08hn8l6KcZkDX1aJWmr+W5iqliHihqQWJ4uMlEhcFVTQp9u9OS1D29YneZmbbNBhQJ03ztltzC ROXJGmoZQ/DM+j+6UWkng58/oJXS9dJ12Nz2VMJnQadYnMJxXuRjpwiVlqel4BMFE4QZcgkKp3m ON8RxeT4Oc+aNlSvcV8WwpTuGYwMsJLoGKHH1Kh4FuXIofgq39jKXvjHf9aNRy2x9gdzxqgcO5B DY8hz9XXn6Gs/5S3qyvVAUVEln1PSUEQfA+mSqMMi185wXS5knq7HMBG2E9ELlHwPyin4A0lDjp 3uOwxinM9fvYD71nUQA== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-29_01,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 clxscore=1015 suspectscore=0 bulkscore=0 impostorscore=0 malwarescore=0 lowpriorityscore=0 adultscore=0 spamscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290031 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782705884123158500 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 Mon Jun 29 06:52:22 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=1782706008; cv=none; d=zohomail.com; s=zohoarc; b=QxgvEF5z8x4bHq5qtN7ZufqjF8K8nMSK97no8dj6twzfpohcpEYjkaAaI1EQjnhg64vbBfkYOC8y8O5TtX34VjVm+lat3J7aqYT23H2v4Wj//Ary+5DjnezvB5SkACdHCQ+dflxP4t724oeouG1VTZ1n+n3sWZXUr0vZm/QYhhc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782706008; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=ksINbtngLZD+GjwdIcTyyVy8GsawI+mF1hv2ESNxPUCZ+wb0oeDnRwAFaG0jtd+FY2D1k7xuzZoFh47BxJk1GZTCd5b5pB0ZZ4BaOHXrhX6K3UoRjWQI58irQx0JXgYO9nmkM6fGXNuO82AUf41uwxkZSAlLHTEHzO1/oIOGYeg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782706008193396.7787834303134; Sun, 28 Jun 2026 21:06:48 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1we39d-0001g2-Vy; Sun, 28 Jun 2026 23:59: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 1we39a-0001f8-Sq for qemu-devel@nongnu.org; Sun, 28 Jun 2026 23:59: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 1we39Y-0006G7-EM for qemu-devel@nongnu.org; Sun, 28 Jun 2026 23:59:26 -0400 Received: from pps.filterd (m0279868.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65T2d1SU1554638 for ; Mon, 29 Jun 2026 03:59:13 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 4f26u74e8p-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 03:59:13 +0000 (GMT) Received: by mail-dl1-f71.google.com with SMTP id a92af1059eb24-137f3465368so2930401c88.1 for ; Sun, 28 Jun 2026 20:59: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-139fc2ebcc0sm8367088c88.14.2026.06.28.20.59.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 28 Jun 2026 20:59:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= 93NO5nTkqSLKhLHTshorCnrOXtq4w0A1wRQSw+4IeFU=; b=iz+g5/cp0SWPpOwE AoTFHsq7OMTWxsleRf2PVWmpleNtPUrT5mBe2yjSKpT1hDZ9P50+iJAT6jYgqwJv nYdv2LhnkOzIbWkWtYBsKxasjA3YuypA/vermOtY7an0gLF2HR8sWWjjT7JXt0ND jQ3AsxQD6JTecMpA7KcCVZHQqJEA6458nPDOMT86G5XKyUNKSPJnQdmzTLPLVuEn 1p6F8kRzPKHeqwDoGPESHOLFA556igyWo8dPN7QUyzwnFdMLf2MgH4adQcU0sI1t iUymKDS/p9s9ABCq8RFYScvdGTsZh6oUUV9GJbxVzqCmigLyKL017EImBS2bY41j bASSCA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782705553; x=1783310353; 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=eVGjFFNe8SwzNF7OE4WskNbqdcFvdV87LuXrTbiIec+/O/NuHTieC6y9tF8ScVehuP KNWTHXia1nCu1TeUgkSAoF6YVF4o8YQmFkiKeyGy81gfLjcZkD2A8IH2pIVPqKwLg3JT PSYlq2cEWZSpTdZGY5dw48eLHZ7RxVuvfSSo8pAFs0K3TR5/3mTmktW342wtrBf3QxBm dbW4nJQT5+u7n7fMHW/jXVKbymh8PCdncRJIwOtfUFqoKIJBorodf03c9MFiP53VWHXn 63Rco1brSnj5Uh2I6HomSI4a9UBLI7tTUcEPfJdhPJDXoqw+xrKrRWAJ1mz3fRZYPSFf floQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782705553; x=1783310353; 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=OivvlnUeIi+Gt/Fnc2WTAK4bBy3Rl2NM9BPSeS5BOnMcF1TtBviGFl3UKB2q2vWJp8 WVqAeiihELsfjfTzcwq4Ygnfzp9g93VS0VL1tm+hNNSaazHHudFLTF08ScyIu5oLul4w Q9GlGjCoVfpN1iPq6nOetbsL9y4LNZo04yeeeWqJ2/SQDEakfOJCFHn9ilK56Uzi7+0N 7EbXEvo6nKekU5DNCVsUodXM3cb6hKR1OpwdOk9F+jxlHDLlJf+JFVvMRx8U4tW5h9y3 UANuHXu0/0FGeKm8PY3CrlmFnz9uVC+/NzdlTvqSgjzkJUtTegCNrCnEAjwfTMaEq8ez es8A== X-Gm-Message-State: AOJu0Yzgy7KWrobrKs1i340fi3CjZRs3W6QUGaaEkvKL5lCo8l9SSacL am0Z801OPFB0uilnygTVdXBhboKt8ltR7VLu8jtZ1af+KSM3iBPAaT5wLZljJkeC2LNDF+cWXqK v4xUr7vWrW6DQT0rlfblho+zdRsBGXpuYmgVy07EOa2JZcGxSnnsq7v+mPXEy/twvLQ== X-Gm-Gg: AfdE7ckQ8fxdLpzwAidVOB6lcgyUO6e7LgojZzKTt2MeCAsTB3xJ9nvo2w0uP6w1ZTV yqVMPIJ8/aG8hbECfTSfshecdfb286lCJ5zTvAyVcrbmZJgWAi7tzcMHE+TvtDOqjZPg0Fc5g9d ZfPLNW2BLxM5hFJPoZudRYkyAGDOXm8fvSdlFPE7LWHimgZZ9AYniU9lJ47iwk0dsjL2n3R6oIo s7D3aKUKI5ohltDWBtIDWkkn0ss9VB4qayqG4AeFxVJXALWHuKuXD1DbCAf45T50hhTsBntIbId PgOyswG7xfBE+17fSBspbvzF1ioOtCwjDxaMjpp3grZ7BO99S0yuGR1w4L7E/W1ssLXlWo6jezP s24it6P/iXHAneadADxx23/Gf1FfpveecDFAtWCfwlKyWu6yselSU5CssO74= X-Received: by 2002:a05:7022:6621:b0:138:6c:477f with SMTP id a92af1059eb24-139dbbc65abmr11474710c88.34.1782705552479; Sun, 28 Jun 2026 20:59:12 -0700 (PDT) X-Received: by 2002:a05:7022:6621:b0:138:6c:477f with SMTP id a92af1059eb24-139dbbc65abmr11474693c88.34.1782705551931; Sun, 28 Jun 2026 20:59:11 -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 v4 20/77] target/hexagon: Add handlers for guest/sysreg r/w Date: Sun, 28 Jun 2026 20:57:33 -0700 Message-Id: <20260629035830.1520296-21-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629035830.1520296-1-brian.cain@oss.qualcomm.com> References: <20260629035830.1520296-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: AW1haW4tMjYwNjI5MDAzMSBTYWx0ZWRfXzouopNvXpItu /6s1CJUZTeOZivGTY5IBqDQb4WV2yFu62rhXLxyIYpPqkA9xxp1RrH/wTqSTfEd+JcYk/ySfld6 lJlk8VWfiu3pJ4KiCKev1vnSX/QV5xQ= X-Authority-Analysis: v=2.4 cv=ftnsol4f c=1 sm=1 tr=0 ts=6a41ed91 cx=c_pps a=JYo30EpNSr/tUYqK9jHPoA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=YS0KV4ZxTOLzYV__0jkA:9 a=QEXdDO2ut3YA:10 a=Fk4IpSoW4aLDllm1B1p-:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-GUID: bD3HuWSHJh72aO7JEkdmH_bO-4C33Qo9 X-Proofpoint-ORIG-GUID: bD3HuWSHJh72aO7JEkdmH_bO-4C33Qo9 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDAzMSBTYWx0ZWRfX4suMS/gOfwcD Z4vDbLhmfhXbhQHsCGlwzuCgRe0QCNSbsUHNx0HTMs5LuxyM+d+15iyb0G6zkdAaD40gbP2w5c7 W0khbW/CHAhEuRGtqj+UY9sm36LoTw+QjWDl2XwMN4Rvnk8+W/H6LmWNOYz5KeW+2mq8c1BW2OW 9n9QeKB3E3yn5aX9BfiJLIW1H34IT+pokLjXCkd2aIScWRT3x2aAuAJbMc8Rx/unue9T2AKus/l Tt4rEnL4s/piiVsypmBVYNDzCS85DjMFCjwkU8CnCChQGWN2Y+GdbPkU0KHmrZ27zDIZ+rH8jok FcdULxHBMsnHZmftvuqf7gosFcDABh5mYkMzExST1uZnlkk4IY1DQkBJlCrG8Gfe7mUTwX6yUc5 s4LEBoTEAYj1vKvMlk2PrjtSNx5zfrg34UDwlxpFDsSXSDSU1Mc00qyMR3OzrbPLwvm48DhLwd7 yu2uIE8sdYVi3GeImlg== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-29_01,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 malwarescore=0 suspectscore=0 lowpriorityscore=0 impostorscore=0 priorityscore=1501 adultscore=0 bulkscore=0 clxscore=1015 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290031 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782706008544158500 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 Mon Jun 29 06:52:22 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=1782705662; cv=none; d=zohomail.com; s=zohoarc; b=fu8khlYn6RzwWD/JKm178fRKXFugu40Oh30QEulOCDPNjGu321lIPNRh+6b4wUf7rpcfq2p2sQRAAa0T7AVHweOSe1ka85jr1MrF/FoKeRbT4F8l3a66EcostGmz7aSfxdF1jjCGD29MKz92Tbyyav3B3HcKawBUcxvLLWG1whg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782705662; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=IbmgFidpriT78QQsSj1lf0xeW8yzKuFJLxy192pqWqUWKW3ScfU68kges1TgBVJRO/BtU3zLoUjeVlvO9+xtgfe9WJ5UUrZgKuNcFCsQUehLsBLLkRBHiwv8+Hh13EMLIvB4XE1xJPTFl4f1V/Iv2apjlxoMqelXc3toznvFszA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 178270566278695.73961559601071; Sun, 28 Jun 2026 21:01:02 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1we39T-0001cM-Hx; Sun, 28 Jun 2026 23:59:19 -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 1we39R-0001bs-Ri for qemu-devel@nongnu.org; Sun, 28 Jun 2026 23:59:17 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1we39Q-0006GQ-C2 for qemu-devel@nongnu.org; Sun, 28 Jun 2026 23:59:17 -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 65T2cfc21545108 for ; Mon, 29 Jun 2026 03:59:14 GMT Received: from mail-dl1-f70.google.com (mail-dl1-f70.google.com [74.125.82.70]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f27084b01-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 03:59:14 +0000 (GMT) Received: by mail-dl1-f70.google.com with SMTP id a92af1059eb24-1394c3ee7f2so11594475c88.1 for ; Sun, 28 Jun 2026 20:59:14 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-139fc2ebcc0sm8367088c88.14.2026.06.28.20.59.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 28 Jun 2026 20:59: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= wO8Hpccix22tZFHgyU0VgMmMK7ZQOufSmnr3QdC9JmM=; b=BsVdPdHxZ19Jvnx1 Aj1Kik6eXLLOZWYcZbmoaaAwYgO95C/hCKyScw5m0koNYcVO0x6xcz5ZBcs434pc jVCfeXKR2a4gZuQo0aw6wPHBL/2jD7H6QefsDsizjTJe/MJhxh0nasL60Y9TeyZX RC9M1qBExKUZkgxOcoEJ28Di28GtMvMEfFkX3e2VRNnrgXeI+JL5ktHHo2jZyBZC r640ccPsPmYyf8etSNVtdVD4I2VjVrDOul0NZqI1hZthRQedVh4cvmIWJ0LOKP1C YdthNJJqHZUJB0BTe+m9mGnrPxAC1o5Cs//RCdP0C+26jNXKG6+bd5qfhfyAmT5u ef2qfA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782705554; x=1783310354; 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=QR3qWvMtnk6sO7sOQjG2nfDG+1Eb7WeEt/KWxF1Zx563+z0fGEy4kPyrrHyiWxJQU9 CMm97rnO9KVpX3Apf5PlkpjLcLKvriR9ngbCQ6ScYn/NE6r81VQmvypj/Iz2Vwzw/yXW HkAiolwtxucGNcnrz+M4J24RSj4Kw8+Amqfa2p4Kvggz3IyJg0vWxqss9GXOWXkc6i6e 6gRazae3ADcz/pOSm9Xqzmia15DvmDM3iEUoUXdVXAj/zkx75pYIe/AOKT/6H7tkDgw4 wQV84SvDmE/T270YKryhmhi21kfbrL2c0qFnpqR01mzhircoCr9sXZUByIdLLPbgSE23 jD6g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782705554; x=1783310354; 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=bGCbz8ll63I2YNnoFbs7UzDB4HJ8/sK4EcfWhRSECvI5tZjzpIKIXdZCOxx+/36/9H mrFWuM8DK62NGu8HI1tN74Ixb2bARY9eqpi2FPTUEZ5TGA88qM+0w0Lr7ltPkgxaKJf9 N93rmpNl0yxM0rdI9Dy+QKYWif4teKXgbVbIbCAjZ2fY7PsBmIdir5UVhtkH5/EOMe23 4LTG54WqtD5OwGjyngrlCB4a4Wjdxv01snONI8k2yCJ5pwXte+RKbObBSzsbI24Y1WK1 CDJCuCzj6SrIzNdwvbxFu6RT4nSuf8WUHmY1ZtUqzUbJyKYBjD1Eba1mLXUrCjKvBPVf dmgg== X-Gm-Message-State: AOJu0Yza8caaFKvoW0+IZOL7KxuVal8hE2VkBM/7vZr2acaxitN5mrK+ ilhdkJB/aNS78vNLtC/EhPj60aBUMlBXiKjvQZzGrbjjaC+kh8cGbh6SB+UXjsrc+OeIPVGCXyy /KV8a4OMBSODs0F8VxpTdGvJ/lefzw6RugQqj9rYHCj2Sgez7hQsBj26xpHKenOcqag== X-Gm-Gg: AfdE7cnDn8MSDvG3ZoiNS1L48cG+HEnvOTrUHjRcbKDy/JJTz/4dg1U5zWv4CmhSEb9 QJ+94M5eSCrHl0mA2gR7czF3wuaABcmKi4TJ2NGwEXZy0zkK/MDsAvhJk7XP4pxHl9diDgPhdrb lZDvL/eOt+PVeohLxQ2Hzi5At3HJYHUHGOQF1mF5ZAyCxl/1f7nKqlbawupcEKyoynXRQmT4hbA NbVBINzUqFk88fbAk9ln3hru5I3RMbXTET4RPhhBu0EESQ8m8HXBEhrfx4dneBLsUYMMj+ljRcf 5JTML+O5ZWvdzoo0Cm6jvoOrwWyE3VUHd8t9yq782FroHc88iTTtYthaG+JaNzA5LTtGNmkB1F9 8Fv2J9cSplQxVJ+wXAtHiAVXz3sl7dfwEgTE3FAG7HQKLkZiO4IxD8NI5nEk= X-Received: by 2002:a05:7022:ebc4:b0:139:7bac:db41 with SMTP id a92af1059eb24-139dbb49566mr12193794c88.28.1782705553755; Sun, 28 Jun 2026 20:59:13 -0700 (PDT) X-Received: by 2002:a05:7022:ebc4:b0:139:7bac:db41 with SMTP id a92af1059eb24-139dbb49566mr12193787c88.28.1782705553265; Sun, 28 Jun 2026 20:59: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 v4 21/77] target/hexagon: Add placeholder greg/sreg r/w helpers Date: Sun, 28 Jun 2026 20:57:34 -0700 Message-Id: <20260629035830.1520296-22-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629035830.1520296-1-brian.cain@oss.qualcomm.com> References: <20260629035830.1520296-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Authority-Analysis: v=2.4 cv=ObKoyBTY c=1 sm=1 tr=0 ts=6a41ed92 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=Um2Pa8k9VHT-vaBCBUpS:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=wA0rHRt5QP8iJxr38i8A:9 a=QEXdDO2ut3YA:10 a=Kq8ClHjjuc5pcCNDwlU0:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDAzMSBTYWx0ZWRfX/L9aSB8neaVX C7A+i82+HQXybeWd9LtyvHcZYNn533Ua4Dj9V51YCRKs8AOoaiV3jUU5PulD2c+7mAHcLhWNSxj dywGa6O+ewDMOOKfqYftacGdsh16K9GjDtrQJb7Fv8auloCxo5T1yGBheJjY9fe/2tatj3RNEFF jCOE2PAZ0ZIr1WuFhhzWEhy11f+/LJOL+J/jtjTN57MozJHyeMCvJrP9g1rAjGvmu0BiQ6CBIE6 7k7CNcf1I7QpYkTgSZHbDguPW2lvT+xEpU3okagZJyjN3CV76zPumMyGRFABHYOg4fUnbsbfPPs W4ke2hnDVh/dFQbDBZonE6YHp9JaXXT+Iif7upuoBmuS2rvnRsyWWaMJaUDfNf5OmOOwj/gjkrF h1REr+peuKRnGOJ2RPYT/dyyREyK8FUW0kWwPBKThlbISCROEA6wZEjHBZeQ64QxoaIkWzo3jni YlFZ+8WTux1HtpUcz/Q== X-Proofpoint-ORIG-GUID: 20Mf2uTTsL3xJXHKvluOeQGCKGDjsff9 X-Proofpoint-GUID: 20Mf2uTTsL3xJXHKvluOeQGCKGDjsff9 X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI5MDAzMSBTYWx0ZWRfXybrWk55VdoXB cW5OGC1UasuZeJTLzpuChCp4Te/5UAQQKb85pX6qkFCFfKUCD4el5WEvQJs6hiaEgC4sR+PUUpM X1M6VR0rceDpf635DF7+jR2B3Ss5NXU= X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-29_01,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 spamscore=0 lowpriorityscore=0 suspectscore=0 impostorscore=0 clxscore=1015 bulkscore=0 malwarescore=0 adultscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290031 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782705664933158500 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 Mon Jun 29 06:52:22 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=1782705822; cv=none; d=zohomail.com; s=zohoarc; b=b9wVZtVU9TGvrfaUqk31IHrjqpaS/Ot2x+qGtnnKvcxLU/m58yHO6OxqxUXMqlSDl5y69L7m4CjxUyMIAKBFv/Fb7oyCu0MSZTvSZ6SSBro+wE8+JOx7+9syaEds74s34IslxPUVfgvW8R0kViHP/IWA1bFdyn0QYm+3/IG1rQA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782705822; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=QCGZp0Oji8SyIvhxlu4qIXxep0pxHS0Py9yV2kowoiuRSYuMvnCZozeZvjFuukNr+kldsLkU4OC7EcsKR5ZxZU8U0Fw82CtYAy8pwJt9rEgW3ZzbSSZxW9KDnF4t4KpmVhnDXJyYczLLmDhNSKJsySfAFAQ+7UYPhJiOM3qu0EI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782705822088893.8724159407008; Sun, 28 Jun 2026 21:03:42 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1we39U-0001dJ-MW; Sun, 28 Jun 2026 23:59: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 1we39T-0001cK-Az for qemu-devel@nongnu.org; Sun, 28 Jun 2026 23:59:19 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1we39R-0006Gr-Kf for qemu-devel@nongnu.org; Sun, 28 Jun 2026 23:59:19 -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 65T2craH1543568 for ; Mon, 29 Jun 2026 03:59:16 GMT Received: from mail-dl1-f70.google.com (mail-dl1-f70.google.com [74.125.82.70]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f26tumacg-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 03:59:16 +0000 (GMT) Received: by mail-dl1-f70.google.com with SMTP id a92af1059eb24-1370417c0bfso3341608c88.0 for ; Sun, 28 Jun 2026 20:59:16 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-139fc2ebcc0sm8367088c88.14.2026.06.28.20.59.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 28 Jun 2026 20:59:13 -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=NP v1xOaKxRswQwCIlDFpi+HPmf1RBm/QfejMEOZ7elzdL6hTADGi/J3zFVd41zcphd yaLK619Y1lu/n3w3QtynWeCDdILoDHsUvNuWzO2j7m9P76yBlO18ORRpy382YZf1 EHZdSm3FaO1kFK7Nytci4xZfj/UTTQI0sC+pk0oMwRCOgwEDg1dqk5s6CwBkY/wA 7YLjkE+XygtkBPW1ZcNmVuEftfLwncgQio1JNvuS68Y034CZf7TnTdhDUnwsEcHI ZNhrbDJlcI0sd70NQOEVFgfBzCdcJsTzmoUXFHwNqrQWycQBVyRBOIkIyQ0L6csh z2ZiL5QC062RJH76nJdw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782705555; x=1783310355; 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=SAwQEpOKuBbLXmZqqtz9jayQdW021C8xCwFd7eZ9HX9NeBzYCaisPLqc5NPGKdbYdl iFawVkOok+J/gpbwkFAByTm/zILT79Wi6xb8IFbiYwD5QzXLd5IdwBw5LMNqb+kR4o41 YzTlFtX9CGEUHUGg/yvv90/YHHyCsbIEnGkO06KD9KDE7NIyKf+g89JCMaDD9+9w6Rui cmlQhobo+YJiCxY9/IZk8HT6Fk6txdCnt0rJWPqxEaDG6blm9iUKhQM4J3D75dypCmxN c0oDzJB/ox699YMZJC9gHR8vVqcguu5EGSi99faBxfFwk7rWA6ImOhacAdvdlVdBJRUR kTMA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782705555; x=1783310355; 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=QyOPqSDF/1llH2zPJi8lihefqzPphlodFNgt+PqHR0XxOqh6FB0yxq2r3WlD3QL+5G 0oWklzudARaTQ7do9TiP9RdQbIMWewjHM2qM0/72WVKgpLfJPXJgVZKTgx13yhJ3JLkX R8Kcg9KfUElO32YiP7YzHRR6Xghli2c2k0qjw4BCbOD9UmRYsz4ypKx/6vMieTPAOqrU XpgsW6Ya+4Ml/WSnZYu4nOKBArId8pAKKaCRaeu9oKrnMsTzaCXsXpqpRevKGjOSMv6p fpg0QgszhYI7YlLRYShbQ9cd2k3YlhLHjK5h3mKjc5vTIlVy99IiN6Quenp/V4xQhTzZ tI6Q== X-Gm-Message-State: AOJu0Yz6cMlAgpp7nCzv7/ivAvic83zVDWbt1Lm61sHzfZHrniKnHDDs Uiye+LfIEFKFXXL9b19jUcp2WJpD2gDwSsvhikR1pEyVeq1N9gmPyFlz2jXSQ37vBpqvOT7yOhC bivJZ6mCTerdUlBlXwhhYgqwHRLOoRvVhXwcgDPn4PavoshZ+ONbTMUSHkc2zDz9cPQ== X-Gm-Gg: AfdE7cmEdFmWfkDL8oXljCH2I4VSFB+Br6WJ+OybcoH8OWFj8uuIE1MA5AnNtNdTUe9 FVOh5QojucabykIs144JQK2GxmrPirmKoqUOjJ4cSaTKd7nCPqT8x6Y9eZL9MUY6kaFt5kVQTu0 kzpBuDm7LQuTQtpelE48xsTcRvFd1hFFZh9lWSNzLQGSeUjiCWDM5ad1idxmXh6ESyqQ3C1qRFX x4FfwqLztyAxnfCUnb5+dpurBqqO0WaA2BYvwCY2zxLmqvvWjp1PKD+UP7AYiewc7JPkNM/HeLd zXNdrFgHjJo0Z+6cSg/EgiQowKr1wfBG4WxIfh/Am5XajlNZwJBg+SW5nzkgH+2+WE2WB0V3vJB D8dYHDLi7fmoz1PzIVu/lMSyPNtRbhfcJIYu4ZDumzY1qFGUmoo2rrLHneVs= X-Received: by 2002:a05:7022:6b91:b0:138:4952:5f8e with SMTP id a92af1059eb24-139db94aba3mr13588826c88.3.1782705555390; Sun, 28 Jun 2026 20:59:15 -0700 (PDT) X-Received: by 2002:a05:7022:6b91:b0:138:4952:5f8e with SMTP id a92af1059eb24-139db94aba3mr13588810c88.3.1782705554880; Sun, 28 Jun 2026 20:59:14 -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 v4 22/77] target/hexagon: Add vmstate representation Date: Sun, 28 Jun 2026 20:57:35 -0700 Message-Id: <20260629035830.1520296-23-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629035830.1520296-1-brian.cain@oss.qualcomm.com> References: <20260629035830.1520296-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-GUID: mRIpFPXCKJWVm0FEuzF6xw7pmZZLXIAa X-Authority-Analysis: v=2.4 cv=A8Rc+aWG c=1 sm=1 tr=0 ts=6a41ed94 cx=c_pps a=SvEPeNj+VMjHSW//kvnxuw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=eoimf2acIAo5FJnRuUoq:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=KKAkSRfTAAAA:8 a=EUspDBNiAAAA:8 a=pDBHowQsxXgegazyqkAA:9 a=QEXdDO2ut3YA:10 a=Kq8ClHjjuc5pcCNDwlU0:22 a=TjNXssC_j7lpFel5tvFf:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-ORIG-GUID: mRIpFPXCKJWVm0FEuzF6xw7pmZZLXIAa X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDAzMSBTYWx0ZWRfX3/nl13D4g8C0 5UHNY2sxl7iLHH53dab4I4qK/VZad5CVFmS8OUL/0Aw9PYwvBCEzdXxgOQHjkKTifhd9DAI9rZ2 9EdjgaN/duNSJKD1zv2M1PMcXyF7n86JBwaYgJ5gDSfzwFoSfuKuA1aNep9YgoqqNk7JacV5Op8 aseI3TB2GirDOTdjFs56a48N9EK9+gpL5WDdaTric9Vc+8gdjtfyHuJaLxJ+zlp0m93XzRceT0Q ClQwJZbnuKC1ywzBxov/WTCqyy+pYR0N7IVLUo7tIIb6Gb0wc1JDAC83BTLmFeob9hvAc6/rY2+ UPeLWSU7WIQFL5+bbjWQ/UcHWElxC2FJqwyH9czSX8BISE5Y9cBNKvUT8a7xPPDOuGdt+XhJ299 dfICSODo2+OENP5eD6Oo3/6TeR6Voi3xQkELmqNKUW9IAaAbEaLHCKkpddrgRD3HsaOEZD+DdpK H1pR3D6fMeQ8VlrwOPQ== X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI5MDAzMSBTYWx0ZWRfXwk9csP7z9y4v K3RfMKicm1+gLrn+PSd9dDU0U7Js4PitHeRjwUw5diYFTpTZYb4JA9I0vXpLpscH0oCMzmjSHjF WDbpufHDSLIChhTNwMar4FHb8dFZmdY= X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-29_01,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 adultscore=0 clxscore=1015 impostorscore=0 priorityscore=1501 suspectscore=0 malwarescore=0 phishscore=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-2606290031 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782705823780158500 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 Mon Jun 29 06:52:22 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=1782705639; cv=none; d=zohomail.com; s=zohoarc; b=Yxbf8/QnaBNH6wdb9GniFAZGdzAonSm0MPP9oY0PQKpZs+ggp6g/VGwaDgyskHs5EAZFN6OwxGJndFOqfv0EiYm7LH469E3MjgG3hLeegu91B+gVcuRIe2zGaITqYrEvEKfsO8/0tdb14EK8tkb4/8A25dkucQCH7dQbxhweMxs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782705639; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=GetPnigj+Pt9Sy6y4upcmdqfo1kIOdOgDEfdtUQWHB6qbW3p4oPOsCTUI2WR7G9TGNnsX/Wnj+TxuoDrpta6KCRpDyskp9vkQS/Vyo0DN76bcies8zD5yUy2rDpTiw6MDwTbz4CzZPV/wCHpIo4ib9KVCKm7tVEMYKKPAW+eKw4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782705639722891.0143872038121; Sun, 28 Jun 2026 21:00:39 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1we39V-0001dx-W0; Sun, 28 Jun 2026 23:59: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 1we39U-0001dC-Dl for qemu-devel@nongnu.org; Sun, 28 Jun 2026 23:59:20 -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 1we39S-0006HK-QX for qemu-devel@nongnu.org; Sun, 28 Jun 2026 23:59:20 -0400 Received: from pps.filterd (m0279864.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65T2d56C1494931 for ; Mon, 29 Jun 2026 03:59: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 4f27pf47ar-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 03:59:17 +0000 (GMT) Received: by mail-dl1-f72.google.com with SMTP id a92af1059eb24-139af2bd2c8so4831306c88.0 for ; Sun, 28 Jun 2026 20:59: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-139fc2ebcc0sm8367088c88.14.2026.06.28.20.59.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 28 Jun 2026 20:59: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= YSGjopxVE+rdAilYCXMYF1ogegIN4PeOYEB5C/MYTiE=; b=d/0FEAxmMG1TzS5A +OmLJ74npS08dKMivvqsMEkf/FtnJ31uLM58uXBGUovoVfiZIXpPG+2zGuGCJRSF QGbhzMkUZwFYqE8rW2JyV51GQTlAUF3vAVXGDJxEbHZkr08bh5YX3bg7DB3v4rj7 YeVJro+qGMleApFF8scYR9ZW63rwYblzMu1uomzF/OMZXo7zsFe4MvcznYOPnyGG orsjTRiLHPnO64xwg3ps37LwROxrQrlLisms+lnGwL7y19Ds7VsxPM0hT7BsR3CF yZ+i0WVeJ07fShtrLLNKtYPQ/slY+S0I/3a5dDY4lwi48eIfMevJ0bK87tn47UDD uXk0Yg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782705557; x=1783310357; 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=PnkQWoLU1Jm9MWC8U+r3FnxQKCx2DOo1LMrSsar1Mjb3+2QdhEjWUvIqsXXpd6dlHu A5QPPm/dtPwoZjPXISasxqC+OOHSLwaAEm+EjsFjGhg5u8YfiWDL+O1yKpv77tbQP7kP HituSJ5vzYkfK/FjsRlOV1uQOAaXvDDofumz+Foj7fgROqlZahiuHsQ64kzbzdbb/Lpp 7VlRnKfGADrMR/MllVW2KeXqGmx2DHh8+sYYZexJDgHj4j9Ws26M+JJ0rNn+wSnasTB3 JetYfD8y0qGmudkeGespz+Eluyaiddm6wriAY5Cfh2dUcVADEBa7X9tVrcCi7k/vCRuu ja0g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782705557; x=1783310357; 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=nDmptYZeR99z/nayc6RbIUb/JDjHU4XDiXRlmMVdE3fj72QMqvOXMcECRgYJD9o7n8 XOGqsloJGqXqMdreX+dff1WAztEIABU5qHUTtBXAxA025v4L2XswjWCO8BA41HemBMs1 N8tQu+3pIH0MXukClVz4dEAxm3MwhewjdKx2dGoH/pnOzlDj4bkZMXsoQ55dFX539PFA MDPn5OcPNV1ywh6z4ueupzLY/SOQ8hD/8UIhh1VLATw8XNXxiJmb/6vPSn0HPwbf0WsL Zj73hWOdY1BOWClW//69dW7g0rFlD7jdDNI5IgEjaMyiYafMmadV2V5HhVa8tA7TUgzB /4TA== X-Gm-Message-State: AOJu0YyzPfJEZSWRl/dwzRRm1NdF/+GAW6JRTtS9bVIluw1aygs9LyVr 3mbL6QuX1bzl9KumJFPyUyDghPfBHAdlS3xaY01NBVwSF3kmNQbDt3syG8Ghr6U9zPVZuQKxSWe LV6H3LELdf/jUMFRBvtmeNhcaoA50juulG9jZ2JK0VJ8z3rerlTUZqSoHhph0swpDFA== X-Gm-Gg: AfdE7ckce1oXD4SzO9JK9Jssop5Q2Tb5mrGN1x6EYLS8agkSzA7wgvk/5Y/GoBkN70H HlDgHMB5JMut2RC7619I2ejfyOAr62/uzUaGQ2+NFxyqrb/cDjRAqgXKySeyEkErim7DHQtjtkF OaQXHKd164pm42+kRMfsj0Qv26fTVA+DrCs8taWvu0AgV2GZrnimU0GSDVggP+GQkpm2FX9YgD2 1X7BYPMFSJQe7TDeZ1lQBZqDmeSzHmpd6nH59FfOFLsVfrTDDNiFaT0I9SijZnplhz+rDX9m19r UgvORBVmmRtiy4nd99fmYnTJZKvJFEGohkvia9/S7lwL6+E5BfMnl2PHc3R3toCJJRPHsfQ7aar Xdq69Nk0ihC9h/R+5jnCxhW7hd0VDaHc/CGHgMa1FZlDhCxbqTuq2qgj5MGQ= X-Received: by 2002:a05:7022:ff45:b0:138:48d0:b3c7 with SMTP id a92af1059eb24-139dbb13e28mr12368460c88.28.1782705556697; Sun, 28 Jun 2026 20:59:16 -0700 (PDT) X-Received: by 2002:a05:7022:ff45:b0:138:48d0:b3c7 with SMTP id a92af1059eb24-139dbb13e28mr12368446c88.28.1782705556204; Sun, 28 Jun 2026 20:59:16 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v4 23/77] target/hexagon: Make A_PRIV, "J2_trap*" insts need_env() Date: Sun, 28 Jun 2026 20:57:36 -0700 Message-Id: <20260629035830.1520296-24-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629035830.1520296-1-brian.cain@oss.qualcomm.com> References: <20260629035830.1520296-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: AW1haW4tMjYwNjI5MDAzMSBTYWx0ZWRfX/nR4IFB6sxNE OyMHofCL2NhFQsU2GeK13ifV/cjCX3EAPvFf1YW5puYXOPpvD8fmCAuLk3MawVCXt+ujcxUFwEo yMDzxIkAycel0++JNx4Op037xdFH7xI= X-Proofpoint-GUID: zzx_tPGndWULo9HGR7AblhRuLnuHV6ex X-Proofpoint-ORIG-GUID: zzx_tPGndWULo9HGR7AblhRuLnuHV6ex X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDAzMSBTYWx0ZWRfX4nBsFdduR+Hd Q9qZIG3p1cSSIWDhM4rhnSr5tDeK5bwYuTV/TYdAvWsZ7vgBKkqC5TqTmq+g+XXN9gcPN4wPTfm GzZ+OupK9c2M3rjLdRvLQuux3f5w1BR6KJKUVX6zjByyk9z90DQ6iwbvgaQzH8e+fJUdqdWdBdD CM8S6xcmh21jCMDfninYIN5MtpHD1uSJQvqfSJcOwUwozYx6e9RBsz3By7CPvVZ6a4JzLwl/Mvx RYfubNRvRDLGjtH4Zep/Y1QUHa+hcT02B9MxEfhKlzNpnsInCKn+qQepMrHXzRakn7aTzerjfWn hA6mdZBeqzWghJcPzlj2KIOQIopmmGz6mX4dQnfx6G0IkIpjZct7FJrrjE+P4K5QEXfh92UO50e riaMcrEvSpE9YQHWpw9x10HUFUFv/3Y71xdmjefPJhKvSUN60pk27HpLJ98hzlujejmloZzQzsd EhXaqiN2UuWYSgC6N4w== X-Authority-Analysis: v=2.4 cv=R7Mz39RX c=1 sm=1 tr=0 ts=6a41ed95 cx=c_pps a=bS7HVuBVfinNPG3f6cIo3Q==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=DJpcGTmdVt4CTyJn9g5Z:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=923NME1-z-asBZaYXDoA: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-29_01,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 adultscore=0 clxscore=1015 impostorscore=0 priorityscore=1501 malwarescore=0 lowpriorityscore=0 spamscore=0 bulkscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290031 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782705640716158500 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 Mon Jun 29 06:52:22 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=1782705685; cv=none; d=zohomail.com; s=zohoarc; b=IsH6z/QavicJz15gBMAum8/L1bmbvUnQ6D9ClXVQY8PM+sZelghZesKpyAv2tNeVT/5EjZNJhJe3ODO3aoOqUKBK0rSBDS2T9nVWjsjbkb56fC5HgB97oyKyL00U08zN+V3IaKNsCK19R0GxppwNcFAon10QU5cfEo2My5Qrqwo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782705685; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=SiprNqdEdwFtP569voS9cTZjz490zPbpEbgw8q9LKArpNmd3GY+ZYU9sT6/cOu/7MjXhVgwKqLWntaTz4bH4BpPovYQrt62LGh9xV3HZWtJulCDDItpDL1XRqg5JYzmI/2yVFpeso7wcXlrgqD6AvRI5kLQTJnxLVrrm5O7S2o8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782705685841601.5832526897278; Sun, 28 Jun 2026 21:01:25 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1we39g-0001hB-RT; Sun, 28 Jun 2026 23:59: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 1we39W-0001dy-0c for qemu-devel@nongnu.org; Sun, 28 Jun 2026 23:59:22 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1we39U-0006HZ-Ax for qemu-devel@nongnu.org; Sun, 28 Jun 2026 23:59:21 -0400 Received: from pps.filterd (m0279865.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65T2dSI01546748 for ; Mon, 29 Jun 2026 03:59:19 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 4f27084b05-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 03:59:18 +0000 (GMT) Received: by mail-dl1-f71.google.com with SMTP id a92af1059eb24-1370417c0bfso3341655c88.0 for ; Sun, 28 Jun 2026 20:59: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-139fc2ebcc0sm8367088c88.14.2026.06.28.20.59.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 28 Jun 2026 20:59: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= gR7dx5FAHey0hvTHweaG0/Fx4UXE1mDGyZgCKofpSwQ=; b=MkfXMNYPCslDDLiR QPTkanVYX8NgQS0NInkMENZRNCiQgCq5PPvVYk0ESdihIQlUXK8dDoDi11zROJrl HEso62tPNC/yEaBjGEu2NDkimU0iO6qvUZ40mYVekB2aEn7J+ZF26BU2cfBVM1a5 B6/zvNEljJd+1bIFhjf1+q5d9zSY4z1M/Oil+KbDpSYQKKc4nUfIcQB2CEoNBkBQ DF/ANRKsNzO7YBNqYLyx4mIteB4yetc6BWnUMjaYZSn6IpXm2Wa6jOEqiMuU73Kj P26BcEZdUcg3QFoMf1IMsUiXXYh43aWK4NZR8VuHrJEPoNhKGAv9J3qlothwmngL Zk2pyA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782705558; x=1783310358; 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=Gl3lRFTnn8aS6CdOGtFfIKRaYwbVoIri6k7dAyew3D1Fa6ZMihW335KqagegjCB4M8 RPhycywSR6rDo1JEQoTAVNEHQ1bELQ+XBtj+fWRxJMRQkcjTzmxYOyEPzeKTGL6rdmhU nsQWdYDwJJ/nqeUjbjZr8IM7XN50dhyLWoqLOEyBPrAtidmrjwVdVAGeRW1cuxaAH6uR TNgywnAuIibpbjFOuhx745wf7L8xv03Kb2brv3j4eYk6+p2rGL5Q8Ap0AoE2Ug94rufv yrvsh/q69QqBvQOUqwNk3LiRjEKafxL+qzhpi11+LlSt/GxDxlVFj5TLWzZ92pdkrbF6 qi7g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782705558; x=1783310358; 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=X5VNdZWfQj6hUWcNFKGlGpxOGL6ItoaQI7rvGvJ0Yaefw59GdIBAlwXgL9lmhr9d40 xEXj9Fh4KjWqtfL6YqERWcmmsXpzvCJGzSOmyynsHge64LiHcmsn3M0wxFwmCZVDkDZl w+CZaeIjer7BP755nrjemf7XsiWnWMh1Z1Hq1OC2cZ3iRBDqpLZBaTyfhNqWoeJORMof TNZ9IOzMXVX4jWX3Iv/ND2Aq+9d3lkkBT20pmh6LVI8+JuvAI7sJ21lcGcsjtZn6CEUB tjQSYc3d7M0qBDaVUwGf9b3fSsycs7CRIiJ03+mCP7/VO1auyxvGU0FmehpEsdAlG+Tc oK1g== X-Gm-Message-State: AOJu0Yyga7fUAl2KUY0iN3lvt93jG2P6Z/ecfsaHWfB3SG8AfT08TMWl lbfVsp7Co5mBYeTwd3ToUtKb/rr8aaMBnoQiUSABcNHKYRjwPfA+QTd9POAvSzgonzWqt85uNWN XCAGA8wJGlt2fU5/26KX8RJZx9gtFYuUrx7yyXeTxxw+CIAkFSIuL6CORqeVxMXj/0w== X-Gm-Gg: AfdE7cnREUOV6nkNpePNdV4BGJoLBGMK66hWIWTQTVlVInqQ6hgRlEsgoJT27LulyGi tLMDqFtdlZhNQJ4xQCQmBZ7ayILU+UhtPG6fja/MouNLBnNxGlRceg7xs7A2itADiySGgMQQncC t/RlXnyo7sKTG+qxR4BQZqyb4yphUX6ew9BhR0jV7CYgswRrOCSNED4kc3jh0GyUo0RzmC1MIQe /93m3YhUln76TrDhWFPUfkcrxW/EkGQEEhDFxsi/v0x6D/xpOBKemADZc82GB7bJi30CJ7WWtQZ 6EymSq9UiZClvKjRuxBNkjaAi8R1kNHiwOvyM6KypTKnD7kwb7AzHpA4tGsPY5wPQj4sakOWTNp +uI7q494iEsSurQ0ewDSrvogBqyJa5Rki4v+OunJqVhvGbOcXLNZlYgtCJyw= X-Received: by 2002:a05:7022:981:b0:138:40b4:6cf9 with SMTP id a92af1059eb24-139dba1b972mr12538276c88.19.1782705558073; Sun, 28 Jun 2026 20:59:18 -0700 (PDT) X-Received: by 2002:a05:7022:981:b0:138:40b4:6cf9 with SMTP id a92af1059eb24-139dba1b972mr12538240c88.19.1782705557577; Sun, 28 Jun 2026 20:59: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 v4 24/77] target/hexagon: Define register fields for system regs Date: Sun, 28 Jun 2026 20:57:37 -0700 Message-Id: <20260629035830.1520296-25-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629035830.1520296-1-brian.cain@oss.qualcomm.com> References: <20260629035830.1520296-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Authority-Analysis: v=2.4 cv=ObKoyBTY c=1 sm=1 tr=0 ts=6a41ed96 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=mmKuwxttERDeH49ycpoA:9 a=QEXdDO2ut3YA:10 a=Fk4IpSoW4aLDllm1B1p-:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDAzMSBTYWx0ZWRfX0seQTDh0EEyb fHsFUHwCYYvqqmKxLesKM2hFE5EOcJpdJv7RYGV5TQe7AwQnW652k3wwWSoZ6doKgvNDSd/xQu4 Vm1F97LTJOLfCkBWsjN8YmRhpug2qqVgc6xml9zlcOdWn+NHoJMEgj37+fhTISTD57sXINUTxx5 yp5ODRXpYkvvrytRVt1breCxxj11IV5iYjKlHLcQZYsy00QBQ7GvAZs23wb/fANmU+34HdUaLnc SrLcCWxbgvOI6AXjSAgFwFxtLgljwSJJk07s95d2Y0dJOY5URQGWm0JWXD5ro6NJFJzwWYqwRQh vqI9p+SsUjqksObL5+oDOxDpO6gegT/xeeZu1DdF0hZ5l5QtEW52VaE0vLMIHN86IQyrxzPZ+0R yjBJI89+FUv3aY739iER+SZbz4bUg4C+130ypXjzu7cHwHgzg6Uy5c0Siu8evz3x9Vub9ZEUckc EBAB2kPpKoEgHm8oPgQ== X-Proofpoint-ORIG-GUID: qB7R_IbZr0A3S8PcyeSFwpoPF5V7-NW7 X-Proofpoint-GUID: qB7R_IbZr0A3S8PcyeSFwpoPF5V7-NW7 X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI5MDAzMSBTYWx0ZWRfX05p134scvmgx emiWi+p49d9peRVMKpAfBiDygXB9fIG/lbCB62jmL6s8wSanF3av0I8S+8ePoIuT4EI99azvLXo iIBmvvGbLYFN5YHmGpU3VOcVUPEZhNM= X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-29_01,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 spamscore=0 lowpriorityscore=0 suspectscore=0 impostorscore=0 clxscore=1015 bulkscore=0 malwarescore=0 adultscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290031 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, UPPERCASE_50_75=0.008 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782705687084158500 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 Mon Jun 29 06:52:22 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=1782705666; cv=none; d=zohomail.com; s=zohoarc; b=k42WaR/zu1IWAA8FFgZdfw+eMHdY4wIPs2/6hf79c3tBM6bnuJSe5JlS8eT2m22ILcmjI2v5mTVrTOD5jsmV19afXgm9enTKjG0IfaLRMFSOCDWnh3HykScSSxJYHvWTYWwKXE5fzbadjpKh+Fr+iIbLDrzn8EFOfMGlNxQTTng= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782705666; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=ed4y0FQPNgse63tdftd+YKzSK885YFyrmUpxArH7ql0RuyMWrerN6JuHWUaPpvwOocckJEx9lbSzPVhEUrYTt7Ir5xBVE8C2KdukiFEmXV0bqoI/WX7V/DUR74dOLZPDApGhdjDoPI5fm/kylkOF3wI290u+uQ0NRbT/F0Mmkiw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782705666448634.3652819498162; Sun, 28 Jun 2026 21:01:06 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1we39b-0001fC-PJ; Sun, 28 Jun 2026 23:59:29 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1we39W-0001eO-Vp for qemu-devel@nongnu.org; Sun, 28 Jun 2026 23:59:23 -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 1we39V-0006Hz-EY for qemu-devel@nongnu.org; Sun, 28 Jun 2026 23:59:22 -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 65T2cfEx1503809 for ; Mon, 29 Jun 2026 03:59:20 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 4f27t7v82e-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 03:59:19 +0000 (GMT) Received: by mail-dl1-f72.google.com with SMTP id a92af1059eb24-1383723dfddso4473609c88.0 for ; Sun, 28 Jun 2026 20:59: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-139fc2ebcc0sm8367088c88.14.2026.06.28.20.59.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 28 Jun 2026 20:59:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:content-type:date:from :in-reply-to:message-id:mime-version:references:subject:to; s= qcppdkim1; bh=iyq7LBA9ReIYZhusAxIzcfXUYATt4rc1w494jGlIN/c=; b=mv 4FmcivuRIyG+VowobKoR+whguNR8i6LDkIi5p0nH3RuSPCiW6Mb9ZP1ITOe8LN7i rsvgrlWgZ1DhFiZwatFhkuqCKa6hXvya0kKFpk6e0DmVJPd2VHijXBlE3VyRLFiQ lkjgPhiCVwlS1FXNCBMnBkQC6/evlSSwzjl790cbnY0xuXKt8qy/o8LJS0hwTVYK sAHDDLfduCqQXAP0rpruTvXl10ddrIXaYEmnbpUFzVLZDpXP++y7vTeZYCy1X0qA 30OLWsRBX731WO4vIn30XwzFltx5KLcrBR85xwoPXAgY2J2DQx/kJvpfmlBoJ+XY zM5dBxrCFg+PtpJpWoIw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782705559; x=1783310359; 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=SbNLOvCvqhydCvq+KGhwApI2imnigtVnwO3sITPxIfaGd1mUtDTIYEbFcz603VDPUc i0rJV6cHtgueEQlVpLvqnN0ZXte0CI66Ab2SjcaxeTBUIf3sGIG+paIXdQAdlQ/fu7wt 6/8Skck8GC0P3KPMlosMgxfmA6kEgr5DAVO1tV0nIQiLdT/OGqwA4BRIVv/uHl/yPgOq 7SvRneDewP1SjtcHoDisfcu7cl5V4kIArXWTFVtuJj0BlMQiuzYGm0KloXXcfniZAqOY bzvL+O7LOiXEL405mIso05d+rAn/nrIPeGM0H835IPXbUIXptT/VE4LJcP9GH1ZU02u6 A9jA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782705559; x=1783310359; 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=CyZT+33KKGET9dluxdL1F/bTTkoNOWyoMnEl00ALXNwKQXbFuUNai/rgpejHlsTijA 21PfPO6q9N4d5IxUbw/RHDmF7TE2KSv1djpmmhcBhRmQzSmP3SiZRjk/6qVJl0JRsksU NALtU/i77Tf/lmzCX1XjKZBhZPHKeX5BgiuCE0aBc/LUH6P+Nhycf4K27IJzl+0Fd1eN HhgPLUa2uABvAkw8vhW2pnc7hD+DoTA4fKrWyFVHkavzb4L/7oVZ6dEW/KGoSLm2sppd AY4+ZnYm0bHv0qoi+lGgY1b8S7BQp4KX5Y/JYeFha+s5pKPqYu7oihxfkv3NuxPwS/as 7WOg== X-Gm-Message-State: AOJu0YzRc/dr/JJ+mePXCKPm/P2AuC1ZkePwxE/CE/zN5ZXk3EJ3bl/r GJLAsGRiGeCjBD508SmL+/s41gBfa5Ddm+fbOnRRzqDJw9zQ1yyIWnF5IPBpePFIkuAZQJixJ0f ZM/D8Aj+B4v3jHilPfi0F6XJdt8cqsJw44m0dDFhNE6Zt4tZN5BJQE936GpWQ/fqytA== X-Gm-Gg: AfdE7cnt7/qRMXY+vCHU31J43wkNRvg8rTeagTvgdVkQMdjVxbznSNNLOLixTLfwIaV vj1n0VvNl3qXPQOjEcupb9880M26EogeI6FuYSAa+sawSN1KvnfbHHQENleT5xM7b/MHDfwc8/9 qigBt8wlNeVUQBQze+8hv/v4eP6N/gY68y6s8VuczTs6+PVqHGoy2iJdXSYMT96RvizAZWDl8qI AWOC6iB0vWQ/qsC5QyCK1qlacD1Fsb5ykJakv+FgVKxMrnaE3Pb49uLORiEbAy0i8mMQkpzRAdT 3TOAHB3ZIL4eLoRsXEXXAVD5VaBrR8ha8aB/zMXPTVV+JgOGcGq5dQy+nIPiTmuyEZlTNa3Ycya Zr4JY0ViKMZ0k6t2OyPNTAuvIn0x8UA+xarNiAVu7wWZLU+6hhaiC9h/vgZE= X-Received: by 2002:a05:7022:117:b0:137:f958:c072 with SMTP id a92af1059eb24-139dbac82b2mr12326264c88.20.1782705559293; Sun, 28 Jun 2026 20:59:19 -0700 (PDT) X-Received: by 2002:a05:7022:117:b0:137:f958:c072 with SMTP id a92af1059eb24-139dbac82b2mr12326256c88.20.1782705558833; Sun, 28 Jun 2026 20:59:18 -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 v4 25/77] target/hexagon: Implement do_raise_exception() Date: Sun, 28 Jun 2026 20:57:38 -0700 Message-Id: <20260629035830.1520296-26-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629035830.1520296-1-brian.cain@oss.qualcomm.com> References: <20260629035830.1520296-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDAzMSBTYWx0ZWRfX/t0TcMolypb0 KIkrP6AfrioAt82XlLyRtw5wB8nGSZLpAgA0oEykTvFBBw9aYywhlIZdI/Sj+EBcLdnGd4cEV3W tTtI/wqUcTAkSoBrW2UnHN9iuEDQgHIbNXi2paZv003YQBLRgmYgo2dECegxDpHZ8DEYelT6b1a NQvwUFpAKJjgKuXBaWGIrqsslkKVW7148LWxrRF5BbfYi8wt45c4QD6K3iPKuvhtdr659bNyDHL CgQBT0L+YIQnCs0nR1G29avzH4zrW+bjfSZnJoJtxhZuSSVw/E38EEgsplUP/CzyChn5fbfoK2C lwTY6ZfmKpzPRmkUq2FzTE30+N6t3YkCDeYlcttaUgnVN2U59CKNnbaYaf2WryxyMpbdYxM8LDe IjlZzjrClkmhkvcaXlzxmJ8d8QBM2TLacILur05Bx2/l1dmD5WtGjMJPg0YiqrWw7Ga3mqjPkBx qGn0mMFA0eUghy1pAOA== X-Proofpoint-GUID: dO9nIB1SkLpZmOCq4w8MvvSZF7Mrh8rZ X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI5MDAzMSBTYWx0ZWRfX9cPxZ35L8Zcg fR+mjt94ZXxG6rApOMrLr1dBjbo/zQC8tbjPWZEERpWwYyojjNz42TKuiZOoNTaO6qkvqwYAzQ9 WVMJ6xe/Cso9xZaZX0u2z5lkpt85HMY= X-Proofpoint-ORIG-GUID: dO9nIB1SkLpZmOCq4w8MvvSZF7Mrh8rZ X-Authority-Analysis: v=2.4 cv=BdnoFLt2 c=1 sm=1 tr=0 ts=6a41ed97 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=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=KKAkSRfTAAAA:8 a=EUspDBNiAAAA:8 a=hK29HtBGQMdOITfcgGsA:9 a=QEXdDO2ut3YA:10 a=vBUdepa8ALXHeOFLBtFW:22 a=TjNXssC_j7lpFel5tvFf:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-29_01,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 phishscore=0 clxscore=1015 suspectscore=0 bulkscore=0 impostorscore=0 spamscore=0 lowpriorityscore=0 adultscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290031 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782705668005158500 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 Mon Jun 29 06:52:22 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=1782705862; cv=none; d=zohomail.com; s=zohoarc; b=NsWqFFsDLUXHo86VoRcBmVFa5nUCctuodT5ON9tnnkCta3jJeEAO7VZnpVvYp+T3IqFtgevpjSZ53M5iUacP7/1BhopJLZhYZju2Aw6x0VlcpBf19pjL6z8Ww+pYSeVbORqKjIHOellSfqaHTTJZE1IyJry2uC6qoIjnIRsojvg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782705862; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=SMYZDYiUGejwU6Mad11x7nCVYujld7nQh+MefWVhoDU=; b=OJiTwIBLzy/Cb4gEMjW5Jt3Z+uNiqAmth1TuknghfGB+md029ijlfi8WHHbKM9Dvil3i0X/ZDkTTgOj52DlE+HZxH+D3wziOBONtYX19nZtJp9uXkzbZJG25qRpsL6vdaPHPCGbgQBBtB7eT4yZDqfx0QycyFvd8xGVMroz3wo8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 17827058627878.954671234481225; Sun, 28 Jun 2026 21:04:22 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1we39f-0001gG-Sx; Sun, 28 Jun 2026 23:59:31 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1we39b-0001fI-5M for qemu-devel@nongnu.org; Sun, 28 Jun 2026 23:59:27 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1we39X-0006IX-H5 for qemu-devel@nongnu.org; Sun, 28 Jun 2026 23:59:26 -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 65T2crn51543569 for ; Mon, 29 Jun 2026 03:59: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 4f26tumact-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 03:59:22 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-30c011c7cb9so7133283eec.1 for ; Sun, 28 Jun 2026 20:59: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-139fc2ebcc0sm8367088c88.14.2026.06.28.20.59.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 28 Jun 2026 20:59: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= SMYZDYiUGejwU6Mad11x7nCVYujld7nQh+MefWVhoDU=; b=YoAovZwitnoMlIfX CwlN3KzvKwiGhZNpTycuwZVxFme4oNGb56zSuO3JCaNPsi2WBcx+30vI+5i+70js 1aK2UZX6u+Xn63TvROoaCjoHvKOv8gH8CnIidc0QH6/mrWtcrqoQ3mRuhUDALEBO 3g+UUpWQpMKfuC0BtScLf0OJ98BNDm3NmA4bIaVl1on9xbjww6vVxG0j0e3hMQ73 c/y/wMFFwfX23llAaHKGDbJx81iJZTzSFuwnTwxJm89mgj5/ZcDvgY4Z9Dl5sk8X PkhRaVW8MTwCOnbRzB/J4/6vBeuGRFuhIqn2Qf3R0McKoeWuyH1auTQeigIYxMIX nZUHUw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782705561; x=1783310361; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=SMYZDYiUGejwU6Mad11x7nCVYujld7nQh+MefWVhoDU=; b=AO+/IwQV82buH1+VbyupS+Vjh3pTtZlxF1Kk1i89XApnKdF9tK7o4dtcXiNE2slMuf Bk6hsm9cdFVTW8s1tkRKeYqRGwloN/VRbKChHn+O68OU2oBuhUHF075WX0F3fdvhOzQc 0CFBSv6Dkd4FeVPX/duK3VO6WMjrYOouEHmoEkXtcKHNFi1sJfb2xDELxXYqvE9su2/U hH8sRBxxw17J4I2xjIh165o5U5fE0JoKVy4s9rnWQsQ7VKbLFAgE6ww08GHILt6wUjC+ QgkQPcKGV0uRYGIa4Sa1E8BimN+zQPtK2+J64lJyf/qBmhv4FpII/quv4fC0v11cv3SU K3Jg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782705561; x=1783310361; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=SMYZDYiUGejwU6Mad11x7nCVYujld7nQh+MefWVhoDU=; b=d5Z+/lG9Z2MFH5hhH/WlnzHW/8dw1K+UvwTPJGAyy2ExuOI2M8EYFra2v2AUbB+i21 8lBhvag2LAI33o0bude3hJo4GPpTEwqTeEPcNPlh1MStbHC49fWPcSvz3Wo+PutxXRGJ a7C71pIaGsKjcZz39bTOovsmTSMYh3pMbkQdvQCyMZ4LUzrEZvZL0xaWo80UaBtCrjZa N6f2rb/DmYdz+52BISG4rr0IOgYewXa8oxcIr3hYoz4/ov4gsj06kceaCCYv5r0IbaD2 rndGFmhG29qVquwfvbyyOFSAgxyZXQhRvI7acR9eg+SILYV+9x8GnEHNQmYheWWSzt17 17Hw== X-Gm-Message-State: AOJu0YxEpiRarjn7e+PXTd1n6RBsEy5qp+K4qa53NLoMqSy5ViMc+3R5 Gw/NmNpxGKTmJ72YUU5hGw0BLT84Lf78D4Qytd7KV+lOM0ntIIIW3aNb5CcAk2xqU8FLi8oC5Q/ 3GbN3woRAbDJdlEtm2uwusTmbK+f/ETLxM1Uqq3PAWMLk/sWCUuB5TSjHqtjlt8oz5w== X-Gm-Gg: AfdE7cnpn17EMEYYNG2Nc9UaPEuXljavNruptEsHJelrqTTdaQUHVdyxY56cpctSkVy yVrA6UOoOXBimoiwUtep62l7wgtwFc4f5oaj+M1HHAx95M3pXRwrc7T6lQwEE0SvfahsuQCZ5sJ w6D15qVOyBPCnuxcDJundSTIBtX/jCmWxRx9PT3aN9sRMxXGlyn6HdFXiak/9EwwigaIXg84v+v pvHzsJBrHtRFKb/LaHPWcDr5ejwqfnOKs22QJgv/sFjhd15RCw5C4Y0DUw+6FMpPkqCKuUshjlB 0SU4pwa2NUIQCNkdygXRTeHNFacH/OzGeuwKSZFENuKKZ1l2g2GcJIuG/vl0onAVTkxbl+6VMDU PaGNPfCBxjANePO9v0wjeKQWH8V/jpNpptaAk/SuZED2FiZujuxZdaFNnAKI= X-Received: by 2002:a05:7300:7308:b0:2dd:c066:bf7 with SMTP id 5a478bee46e88-30c84e2074cmr14977847eec.11.1782705560848; Sun, 28 Jun 2026 20:59:20 -0700 (PDT) X-Received: by 2002:a05:7300:7308:b0:2dd:c066:bf7 with SMTP id 5a478bee46e88-30c84e2074cmr14977822eec.11.1782705560151; Sun, 28 Jun 2026 20:59:20 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v4 26/77] target/hexagon: Add system reg insns Date: Sun, 28 Jun 2026 20:57:39 -0700 Message-Id: <20260629035830.1520296-27-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629035830.1520296-1-brian.cain@oss.qualcomm.com> References: <20260629035830.1520296-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: cqZYciEjn4CEeVZ2hQVyHrzsG6JTGckX X-Authority-Analysis: v=2.4 cv=A8Rc+aWG c=1 sm=1 tr=0 ts=6a41ed9a 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=eoimf2acIAo5FJnRuUoq:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=XudKOxRI_tdk19a2JVQA:9 a=QEXdDO2ut3YA:10 a=scEy_gLbYbu1JhEsrz4S:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: cqZYciEjn4CEeVZ2hQVyHrzsG6JTGckX X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDAzMSBTYWx0ZWRfXxkO0OHp6jBk8 /gv7pA/NQCXoFPhhbBFSRqNHAvsP76ofYri3Qun7cFbrYWkdWeibuEG6gcfK9m8Sq9N+K7meo5L zj8iib+3xT6DACmHUOZSEZQnWb/dPCP87fV5GsYwTIBttVEhJ2U1KKZBRNOrk71JyCp3jMKlBMo ZLQJV6HLiJdgiwJFnO1eXoT4369kjGj5TWiS2TXIEG2EHSGbUP9MhtA7n/nl8WKXKVs0f7YNxkp 8CjijEh7uEYt+uBwX37DqjLtNJjsIqBqgQsZ68nCGEESQGXxhrD2SJQRqcLgZAU27fLd24mfVJ/ TAaEe8F424RGRmTqsayuDKUGBuU5Mislwk2CU+gv3cjCyKQxbH157xuxhndhoqr/LQunkDde2ns tUbgdoId270J5H8HL1xk/nr5jkGnx24uXHc8gpQkvV2soQpdcATEjXofOaBHeXH4hzge1Fp+7V5 5xW+X1TWeJYYLxHwoEw== X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI5MDAzMSBTYWx0ZWRfX+1yfOX5uhy1Z deo5nJrrylmP49CVgJrg7+Uht+H6tLKeyUUt0rebWOHj7r4D7TclItkrKPw4NLKdRUU3esN699j lW8ejXnBXHKXeBxDXTR9WUHTknu2Dgw= X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-29_01,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 adultscore=0 clxscore=1015 impostorscore=0 priorityscore=1501 suspectscore=0 malwarescore=0 phishscore=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-2606290031 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, UPPERCASE_50_75=0.008 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782705863929158500 From: Brian Cain Acked-by: Taylor Simpson Reviewed-by: Pierrick Bouvier Signed-off-by: Brian Cain --- target/hexagon/imported/encode_pp.def | 128 ++++++++++++-- target/hexagon/imported/system.idef | 243 ++++++++++++++++++++++++-- 2 files changed, 344 insertions(+), 27 deletions(-) diff --git a/target/hexagon/imported/encode_pp.def b/target/hexagon/importe= d/encode_pp.def index 0cd30a5e857..04e911f59c8 100644 --- a/target/hexagon/imported/encode_pp.def +++ b/target/hexagon/imported/encode_pp.def @@ -382,15 +382,18 @@ DEF_ENC32(L4_return_fnew_pt, ICLASS_LD" 011 0 000 ss= sss PP1110vv ---ddddd") DEF_ENC32(L4_return_tnew_pnt, ICLASS_LD" 011 0 000 sssss PP0010vv ---ddddd= ") DEF_ENC32(L4_return_fnew_pnt, ICLASS_LD" 011 0 000 sssss PP1010vv ---ddddd= ") =20 -DEF_ENC32(L2_loadw_locked,ICLASS_LD" 001 0 000 sssss PP000--- 000ddddd") - +/** Load Acquire Store Release Encoding **/ =20 +DEF_ENC32(L2_loadw_locked, ICLASS_LD" 001 0 000 sssss PP000--- 000ddddd= ") +DEF_ENC32(L4_loadd_locked, ICLASS_LD" 001 0 000 sssss PP010--- 000ddddd= ") =20 DEF_ENC32(L2_loadw_aq, ICLASS_LD" 001 0 000 sssss PP001--- 000ddddd= ") DEF_ENC32(L4_loadd_aq, ICLASS_LD" 001 0 000 sssss PP011--- 000ddddd= ") =20 -DEF_ENC32(R6_release_at_vi, ICLASS_ST" 000 01 11sssss PP0ttttt --0011dd= ") -DEF_ENC32(R6_release_st_vi, ICLASS_ST" 000 01 11sssss PP0ttttt --1011dd") + +DEF_ENC32(S2_storew_locked, ICLASS_ST" 000 01 01sssss PP-ttttt ----00dd") +DEF_ENC32(S4_stored_locked, ICLASS_ST" 000 01 11sssss PP0ttttt ----00dd") + =20 DEF_ENC32(S2_storew_rl_at_vi, ICLASS_ST" 000 01 01sssss PP-ttttt --0010dd= ") DEF_ENC32(S2_storew_rl_st_vi, ICLASS_ST" 000 01 01sssss PP-ttttt --1010dd") @@ -398,17 +401,15 @@ DEF_ENC32(S2_storew_rl_st_vi, ICLASS_ST" 000 01 01sss= ss PP-ttttt --1010dd") DEF_ENC32(S4_stored_rl_at_vi, ICLASS_ST" 000 01 11sssss PP0ttttt --0010dd= ") DEF_ENC32(S4_stored_rl_st_vi, ICLASS_ST" 000 01 11sssss PP0ttttt --1010dd") =20 -DEF_ENC32(L4_loadd_locked,ICLASS_LD" 001 0 000 sssss PP010--- 000ddddd") -DEF_EXT_SPACE(EXTRACTW, ICLASS_LD" 001 0 000 iiiii PP0iiiii -01iiiii") +DEF_ENC32(R6_release_at_vi, ICLASS_ST" 000 01 11sssss PP0ttttt --0011dd= ") +DEF_ENC32(R6_release_st_vi, ICLASS_ST" 000 01 11sssss PP0ttttt --1011dd") + +DEF_EXT_SPACE(EXTRACTW, ICLASS_LD" 001 0 000 iiiii PP0iiiii 001iiiii") DEF_ENC32(Y2_dcfetchbo, ICLASS_LD" 010 0 000 sssss PP0--iii iiiiiiii") =20 =20 =20 =20 - - - - /*******************************/ /* */ /* */ @@ -488,13 +489,17 @@ STD_PST_ENC(rinew, "1 101","10ttt") /* x bus/cache */ /* x store/cache */ DEF_ENC32(S2_allocframe, ICLASS_ST" 000 01 00xxxxx PP000iii iiiiiiii") -DEF_ENC32(S2_storew_locked,ICLASS_ST" 000 01 01sssss PP-ttttt ----00dd") -DEF_ENC32(S4_stored_locked,ICLASS_ST" 000 01 11sssss PP0ttttt ----00dd") +DEF_ENC32(Y5_l2locka, ICLASS_ST" 000 01 11sssss PP1----- ------dd") DEF_ENC32(Y2_dczeroa, ICLASS_ST" 000 01 10sssss PP0----- --------") =20 =20 DEF_ENC32(Y2_barrier, ICLASS_ST" 100 00 00----- PP------ 000-----") DEF_ENC32(Y2_syncht, ICLASS_ST" 100 00 10----- PP------ --------") +DEF_ENC32(Y2_l2kill, ICLASS_ST" 100 00 01----- PP-000-- --------") +DEF_ENC32(Y5_l2gunlock, ICLASS_ST" 100 00 01----- PP-010-- --------") +DEF_ENC32(Y5_l2gclean, ICLASS_ST" 100 00 01----- PP-100-- --------") +DEF_ENC32(Y5_l2gcleaninv, ICLASS_ST" 100 00 01----- PP-110-- --------") +DEF_ENC32(Y2_l2cleaninvidx,ICLASS_ST" 100 00 11sssss PP------ --------") =20 =20 =20 @@ -502,9 +507,28 @@ DEF_ENC32(Y2_dccleana, ICLASS_ST" 000 00 00sssss P= P------ --------") DEF_ENC32(Y2_dcinva, ICLASS_ST" 000 00 01sssss PP------ --------") DEF_ENC32(Y2_dccleaninva, ICLASS_ST" 000 00 10sssss PP------ --------") =20 -DEF_ENC32(Y4_l2fetch, ICLASS_ST" 011 00 00sssss PP-ttttt 000-----") +/* Super */ +DEF_ENC32(Y2_dckill, ICLASS_ST" 001 00 00----- PP------ --------") +DEF_ENC32(Y2_dccleanidx, ICLASS_ST" 001 00 01sssss PP------ --------") +DEF_ENC32(Y2_dcinvidx, ICLASS_ST" 001 00 10sssss PP------ --------") +DEF_ENC32(Y2_dccleaninvidx,ICLASS_ST" 001 00 11sssss PP------ --------") + +DEF_ENC32(Y2_dctagw ,ICLASS_ST" 010 00 00sssss PP-ttttt --------") +DEF_ENC32(Y2_dctagr ,ICLASS_ST" 010 00 01sssss PP------ ---ddddd") + +DEF_ENC32(Y4_l2tagw ,ICLASS_ST" 010 00 10sssss PP0ttttt --------") +DEF_ENC32(Y4_l2tagr ,ICLASS_ST" 010 00 11sssss PP------ ---ddddd") + +DEF_ENC32(Y4_l2fetch, ICLASS_ST" 011 00 00sssss PP-ttttt 000-----= ") +DEF_ENC32(Y5_l2cleanidx, ICLASS_ST" 011 00 01sssss PP------ --------") +DEF_ENC32(Y5_l2invidx, ICLASS_ST" 011 00 10sssss PP------ --------") +DEF_ENC32(Y5_l2unlocka, ICLASS_ST" 011 00 11sssss PP------ --------") DEF_ENC32(Y5_l2fetch, ICLASS_ST" 011 01 00sssss PP-ttttt --------") =20 +DEF_ENC32(Y6_l2gcleanpa, ICLASS_ST" 011 01 01----- PP-ttttt --------") +DEF_ENC32(Y6_l2gcleaninvpa,ICLASS_ST" 011 01 10----- PP-ttttt --------") + + /*******************************/ /* */ /* */ @@ -547,13 +571,23 @@ DEF_ENC32(J2_jumprfnewpt, ICLASS_J" 0011 011sssss P= P-11-uu --------") =20 DEF_FIELDROW_DESC32(ICLASS_J" 0100 -------- PP------ --------","[#4] (#u8)= ") DEF_ENC32(J2_trap0, ICLASS_J" 0100 00------ PP-iiiii ---iii--") -DEF_ENC32(J2_pause, ICLASS_J" 0100 01------ PP-iiiii ---iii--") +DEF_ENC32(J2_trap1, ICLASS_J" 0100 10-xxxxx PP-iiiii ---iii--") +DEF_ENC32(J2_pause, ICLASS_J" 0100 01----ii PP-iiiii ---iii--") + +DEF_FIELDROW_DESC32(ICLASS_J" 0101 -------- PP------ --------","[#5] Rd=3D= (Rs) ") +DEF_ENC32(Y2_icdatar, ICLASS_J" 0101 101sssss PP------ ---ddddd") +DEF_ENC32(Y2_ictagr, ICLASS_J" 0101 111sssss PP------ ---ddddd") +DEF_ENC32(Y2_ictagw, ICLASS_J" 0101 110sssss PP0ttttt --------") +DEF_ENC32(Y2_icdataw, ICLASS_J" 0101 110sssss PP1ttttt --------") =20 DEF_FIELDROW_DESC32(ICLASS_J" 0110 -------- PP------ --------","[#6] icop(= Rs) ") DEF_ENC32(Y2_icinva, ICLASS_J" 0110 110sssss PP000--- --------") +DEF_ENC32(Y2_icinvidx, ICLASS_J" 0110 110sssss PP001--- --------") +DEF_ENC32(Y2_ickill, ICLASS_J" 0110 110----- PP010--- --------") =20 DEF_FIELDROW_DESC32(ICLASS_J" 0111 -------- PP------ --------","[#7] () ") DEF_ENC32(Y2_isync, ICLASS_J" 0111 11000000 PP0---00 00000010") +DEF_ENC32(J2_rte, ICLASS_J" 0111 111----- PP00---- 000-----") =20 /* JUMP */ DEF_FIELDROW_DESC32(ICLASS_J" 100- -------- PP------ --------","[#8,9] PC= =3D(#r22)") @@ -738,12 +772,19 @@ DEF_ENC32(J2_jumprltezpt,ICLASS_CR" 0001 11isssss P= Pi1iiii iiiiiii-") =20 DEF_FIELDROW_DESC32( ICLASS_CR" 0010 -------- PP------ --------","[#= 2] Cd=3DRs ") DEF_ENC32(A2_tfrrcr, ICLASS_CR" 0010 001sssss PP------ ---ddddd") +DEF_ENC32(G4_tfrgrcr, ICLASS_CR" 0010 000sssss PP------ ---ddddd") +DEF_ENC32(Y4_trace, ICLASS_CR" 0010 010sssss PP------ 000-----") +DEF_ENC32(Y6_diag, ICLASS_CR" 0010 010sssss PP------ 001-----") +DEF_ENC32(Y6_diag0, ICLASS_CR" 0010 010sssss PP-ttttt 010-----") +DEF_ENC32(Y6_diag1, ICLASS_CR" 0010 010sssss PP-ttttt 011-----") =20 DEF_FIELDROW_DESC32( ICLASS_CR" 0011 -------- PP------ --------","[#= 3] Cdd=3DRss ") DEF_ENC32(A4_tfrpcp, ICLASS_CR" 0011 001sssss PP------ ---ddddd") +DEF_ENC32(G4_tfrgpcp, ICLASS_CR" 0011 000sssss PP------ ---ddddd") =20 DEF_FIELDROW_DESC32( ICLASS_CR" 1000 -------- PP------ --------","[#= 8] Rdd=3DCss ") DEF_ENC32(A4_tfrcpp, ICLASS_CR" 1000 000sssss PP------ ---ddddd") +DEF_ENC32(G4_tfrgcpp, ICLASS_CR" 1000 001sssss PP------ ---ddddd") =20 DEF_FIELDROW_DESC32( ICLASS_CR" 1001 -------- PP------ --------","[#= 9] (#r8,#U10)") DEF_ENC32(J2_ploop1si, ICLASS_CR" 1001 101IIIII PP-iiiii IIIii-II") @@ -754,6 +795,7 @@ DEF_ENC32(J2_loop1i, ICLASS_CR" 1001 001IIIII PP-i= iiii IIIii-II") =20 DEF_FIELDROW_DESC32( ICLASS_CR" 1010 -------- PP------ --------","[#= 10] Rd=3DCs ") DEF_ENC32(A2_tfrcrr, ICLASS_CR" 1010 000sssss PP------ ---ddddd") +DEF_ENC32(G4_tfrgcrr, ICLASS_CR" 1010 001sssss PP------ ---ddddd") DEF_ENC32(C4_addipc, ICLASS_CR" 1010 01001001 PP-iiiii i--ddddd") =20 =20 @@ -781,6 +823,64 @@ DEF_ENC32(C4_fastcorner9_not, ICLASS_CR"1011 0001--s= s PP1---tt 1--1--dd") =20 =20 =20 +/* Supervisor CR ops */ +/* Interrupts */ +DEF_FIELDROW_DESC32( ICLASS_CR" 0100 -------- PP------ --------","[#4] = (Rs,Pt)") +DEF_ENC32(Y2_swi, ICLASS_CR" 0100 000sssss PP------ 000-----") +DEF_ENC32(Y2_cswi, ICLASS_CR" 0100 000sssss PP------ 001-----") +DEF_ENC32(Y2_iassignw, ICLASS_CR" 0100 000sssss PP------ 010-----") +DEF_ENC32(Y2_ciad, ICLASS_CR" 0100 000sssss PP------ 011-----") +DEF_ENC32(Y2_setimask, ICLASS_CR" 0100 100sssss PP----tt 000-----") +DEF_ENC32(Y2_setprio, ICLASS_CR" 0100 100sssss PP----tt 001-----") +DEF_ENC32(Y4_siad, ICLASS_CR" 0100 100sssss PP------ 011-----") + +DEF_ENC32(Y2_wait, ICLASS_CR" 0100 010sssss PP------ 000-----") +DEF_ENC32(Y2_resume, ICLASS_CR" 0100 010sssss PP------ 001-----") +DEF_ENC32(Y2_stop, ICLASS_CR" 0100 011sssss PP------ 000-----") +DEF_ENC32(Y2_start, ICLASS_CR" 0100 011sssss PP------ 001-----") +DEF_ENC32(Y4_nmi, ICLASS_CR" 0100 011sssss PP------ 010-----") + +DEF_FIELDROW_DESC32( ICLASS_CR" 0101 -------- PP------ --------","[#5] = Rx ") +DEF_ENC32(Y2_crswap0, ICLASS_CR" 0101 000xxxxx PP------ --------") +DEF_ENC32(Y4_crswap1, ICLASS_CR" 0101 001xxxxx PP------ --------") + +DEF_FIELDROW_DESC32( ICLASS_CR" 0110 -------- PP------ --------","[#6] = Rd=3D(Rs)") +DEF_ENC32(Y2_getimask, ICLASS_CR" 0110 000sssss PP------ ---ddddd") +DEF_ENC32(Y2_iassignr, ICLASS_CR" 0110 011sssss PP------ ---ddddd") + +DEF_FIELDROW_DESC32( ICLASS_CR" 0111 -------- PP------ --------","[#7] = cr=3DRs ") +DEF_ENC32(Y2_tfrsrcr, ICLASS_CR" 0111 00-sssss PP------ -ddddddd") + +DEF_FIELDROW_DESC32( ICLASS_CR" 1100 -------- PP------ --------","[#12]= ") +DEF_ENC32(Y2_break, ICLASS_CR" 1100 001----- PP------ 000-----") +DEF_ENC32(Y2_tlblock, ICLASS_CR" 1100 001----- PP------ 001-----") +DEF_ENC32(Y2_tlbunlock,ICLASS_CR" 1100 001----- PP------ 010-----") +DEF_ENC32(Y2_k0lock, ICLASS_CR" 1100 001----- PP------ 011-----") +DEF_ENC32(Y2_k0unlock, ICLASS_CR" 1100 001----- PP------ 100-----") +DEF_ENC32(Y2_tlbp, ICLASS_CR" 1100 100sssss PP------ ---ddddd") +DEF_ENC32(Y5_tlboc, ICLASS_CR" 1100 111sssss PP------ ---ddddd") +DEF_ENC32(Y5_tlbasidi, ICLASS_CR" 1100 101sssss PP------ --------") +DEF_ENC32(Y2_tlbr, ICLASS_CR" 1100 010sssss PP------ ---ddddd") +DEF_ENC32(Y2_tlbw, ICLASS_CR" 1100 000sssss PP0ttttt --------") +DEF_ENC32(Y5_ctlbw, ICLASS_CR" 1100 110sssss PP0ttttt ---ddddd") + +DEF_FIELDROW_DESC32( ICLASS_CR" 1101 -------- PP------ --------","[#13]= Rxx ") +DEF_ENC32(Y4_crswap10, ICLASS_CR" 1101 10-xxxxx PP------ ---00000") +DEF_ENC32(Y4_tfrspcp, ICLASS_CR" 1101 00-sssss PP------ -ddddddd") + +DEF_FIELDROW_DESC32( ICLASS_CR" 1110 -------- PP------ --------","[#14]= Rd=3Dcr ") +DEF_ENC32(Y2_tfrscrr, ICLASS_CR" 1110 1sssssss PP------ ---ddddd") + +DEF_FIELDROW_DESC32( ICLASS_CR" 1111 -------- PP------ --------","[#15]= Rdd=3DSss ") +DEF_ENC32(Y4_tfrscpp, ICLASS_CR" 1111 0sssssss PP------ ---ddddd") + + + + + + + + /*******************************/ /* */ /* */ diff --git a/target/hexagon/imported/system.idef b/target/hexagon/imported/= system.idef index 7c6568e75e4..9e85bed0a6e 100644 --- a/target/hexagon/imported/system.idef +++ b/target/hexagon/imported/system.idef @@ -25,31 +25,230 @@ /* User->OS interface */ /********************************************/ =20 -Q6INSN(J2_trap0,"trap0(#u8)",ATTRIBS(A_COF), +Q6INSN(J2_trap0,"trap0(#u8)",ATTRIBS(A_COF,A_NOTE_NOPACKET,A_RESTRICT_NOPA= CKET), "Trap to Operating System", fTRAP(0,uiV); ) =20 -Q6INSN(J2_pause,"pause(#u8)",ATTRIBS(A_COF), +Q6INSN(J2_trap1,"trap1(Rx32,#u8)",ATTRIBS(A_COF,A_NOTE_NOPACKET,A_RESTRICT= _NOPACKET), +"Trap to Operating System", + /* + * Note: if RxV is not written, we get the same as the input. + * Since trap1 is SOLO, this means the register will effectively not be u= pdated + */ + if (!fTRAP1_VIRTINSN(uiV)) { + fTRAP(1,uiV); + } else if (uiV =3D=3D 1) { + fVIRTINSN_RTE(uiV,RxV); + } else if (uiV =3D=3D 3) { + fVIRTINSN_SETIE(uiV,RxV); + } else if (uiV =3D=3D 4) { + fVIRTINSN_GETIE(uiV,RxV); + } else if (uiV =3D=3D 6) { + fVIRTINSN_SPSWAP(uiV,RxV); + }) + +Q6INSN(J2_pause,"pause(#u8)",ATTRIBS(A_COF,A_NOTE_NOPACKET,A_RESTRICT_NOPA= CKET), "Enter low-power state for #u8 cycles",{fPAUSE(uiV);}) =20 -Q6INSN(Y2_icinva,"icinva(Rs32)",ATTRIBS(A_ICOP,A_ICFLUSHOP),"Instruction C= ache Invalidate Address",{fEA_REG(RsV); fICINVA(EA);}) +Q6INSN(J2_rte, "rte", ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NO_TIMING_LOG), +"Return from Exception", +{ +fHIDE(if((thread->timing_on) && (thread->status & EXEC_STATUS_REPLAY)) { r= eturn; }) +fHIDE(CALLBACK(thread->processor_ptr->options->rte_callback, + thread->system_ptr,thread->processor_ptr, + thread->threadId,0);) +fCLEAR_RTE_EX(); +fBRANCH(fREAD_ELR(),COF_TYPE_RTE);}) =20 -Q6INSN(Y2_isync,"isync",ATTRIBS(),"Memory Synchronization",{fISYNC();}) -Q6INSN(Y2_barrier,"barrier",ATTRIBS(A_RESTRICT_SLOT0ONLY),"Memory Barrier"= ,{fBARRIER();}) -Q6INSN(Y2_syncht,"syncht",ATTRIBS(A_RESTRICT_SLOT0ONLY),"Memory Synchroniz= ation",{fSYNCH();}) =20 +/********************************************/ +/* Interrupt Management */ +/********************************************/ =20 -Q6INSN(Y2_dcfetchbo,"dcfetch(Rs32+#u11:3)",ATTRIBS(A_RESTRICT_PREFERSLOT0,= A_DCFETCH),"Data Cache Prefetch",{fEA_RI(RsV,uiV); fDCFETCH(EA);}) +Q6INSN(Y2_swi,"swi(Rs32)",ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NOTE_AXOK,A_RESTRIC= T_PACKET_AXOK),"Software Interrupt",{DO_SWI(RsV);}) +Q6INSN(Y2_cswi,"cswi(Rs32)",ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NOTE_AXOK,A_RESTR= ICT_PACKET_AXOK),"Cancel Software Interrupt",{DO_CSWI(RsV);}) +Q6INSN(Y2_ciad,"ciad(Rs32)",ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NOTE_AXOK,A_RESTR= ICT_PACKET_AXOK),"Re-enable interrupt in IAD",{DO_CIAD(RsV);}) +Q6INSN(Y4_siad,"siad(Rs32)",ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NOTE_AXOK,A_RESTR= ICT_PACKET_AXOK),"Disable interrupt in IAD",{DO_SIAD(RsV);}) +Q6INSN(Y2_iassignr,"Rd32=3Diassignr(Rs32)",ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NO= TE_AXOK,A_RESTRICT_PACKET_AXOK),"Read interrupt to thread assignments",{DO_= IASSIGNR(RsV,RdV);}) +Q6INSN(Y2_iassignw,"iassignw(Rs32)",ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NOTE_AXOK= ,A_RESTRICT_PACKET_AXOK),"Write interrupt to thread assignments",{DO_IASSIG= NW(RsV);}) =20 =20 -Q6INSN(Y2_dczeroa,"dczeroa(Rs32)",ATTRIBS(A_STORE,A_RESTRICT_SLOT0ONLY,A_D= CZEROA),"Zero an aligned 32-byte cacheline",{fEA_REG(RsV); fDCZEROA(EA);}) -Q6INSN(Y2_dccleana,"dccleana(Rs32)",ATTRIBS(A_RESTRICT_SLOT0ONLY,A_DCFLUSH= OP),"Data Cache Clean Address",{fEA_REG(RsV); fDCCLEANA(EA);}) -Q6INSN(Y2_dccleaninva,"dccleaninva(Rs32)",ATTRIBS(A_RESTRICT_SLOT0ONLY,A_D= CFLUSHOP),"Data Cache Clean and Invalidate Address",{fEA_REG(RsV); fDCCLEAN= INVA(EA);}) -Q6INSN(Y2_dcinva,"dcinva(Rs32)",ATTRIBS(A_RESTRICT_SLOT0ONLY,A_DCFLUSHOP),= "Data Cache Invalidate Address",{fEA_REG(RsV); fDCCLEANINVA(EA);}) +Q6INSN(Y2_getimask,"Rd32=3Dgetimask(Rs32)",ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NO= TE_AXOK,A_RESTRICT_PACKET_AXOK),"Read imask register of another thread", +{RdV =3D READ_IMASK(RsV & thread->processor_ptr->thread_system_mask); }) =20 +Q6INSN(Y2_setimask,"setimask(Pt4,Rs32)",ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NOTE_= AXOK,A_RESTRICT_PACKET_AXOK),"Change imask register of another thread", +{fPREDUSE_TIMING();WRITE_IMASK(PtV & thread->processor_ptr->thread_system_= mask,RsV); }) =20 -Q6INSN(Y4_l2fetch,"l2fetch(Rs32,Rt32)",ATTRIBS(A_RESTRICT_SLOT0ONLY),"L2 C= ache Prefetch", + + +/********************************************/ +/* TLB management */ +/********************************************/ + +Q6INSN(Y2_tlbw,"tlbw(Rss32,Rt32)", ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NOTE_NOPAC= KET,A_RESTRICT_NOPACKET), +"Write TLB entry", {fTLBW(RtV,RssV);}) + +Q6INSN(Y5_ctlbw,"Rd32=3Dctlbw(Rss32,Rt32)", ATTRIBS(A_PRIV,A_NOTE_PRIV,A_N= OTE_NOPACKET,A_RESTRICT_NOPACKET), +"Conditional Write TLB entry", +{ + if (fTLB_ENTRY_OVERLAP( (1LL<<63) | RssV )) { + RdV=3DfTLB_ENTRY_OVERLAP_IDX( (1LL<<63) | RssV); + } else { + fTLBW(RtV,RssV); + RdV=3D0x80000000; + } +}) + +Q6INSN(Y5_tlboc,"Rd32=3Dtlboc(Rss32)", ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NOTE_N= OPACKET,A_RESTRICT_NOPACKET), +"TLB overlap check", +{ + if (fTLB_ENTRY_OVERLAP( (1LL<<63) | RssV )) { + RdV=3DfTLB_ENTRY_OVERLAP_IDX( (1LL<<63) | RssV); + } else { + RdV=3D0x80000000; + } +}) + +Q6INSN(Y2_tlbr,"Rdd32=3Dtlbr(Rs32)", ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NOTE_NOP= ACKET,A_RESTRICT_NOPACKET), "Read TLB entry", +{RddV =3D fTLBR(RsV);}) + +Q6INSN(Y2_tlbp,"Rd32=3Dtlbp(Rs32)", ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NOTE_NOPA= CKET,A_RESTRICT_NOPACKET), "Probe TLB", {RdV=3DfTLBP(RsV);}) + +Q6INSN(Y5_tlbasidi,"tlbinvasid(Rs32)",ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NOTE_NO= PACKET,A_RESTRICT_NOPACKET), "Invalidate ASID", +{ + fHIDE(int i;) + fHIDE(unsigned int NUM_TLB_ENTRIES =3D NUM_TLB_REGS(thread->processor_= ptr);) + for (i =3D 0; i < NUM_TLB_ENTRIES; i++) { + if ((fGET_FIELD(fTLBR(i),PTE_G) =3D=3D 0) && + (fGET_FIELD(fTLBR(i),PTE_ASID) =3D=3D fEXTRACTU_RANGE(RsV,26,20))) { + fTLBW(i,fTLBR(i) & ~(1ULL << 63)); + } + } +}) + +Q6INSN(Y2_tlblock,"tlblock", ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NOTE_NOPACKET,A_= RESTRICT_NOPACKET,A_NO_TIMING_LOG), "Lock TLB", +{fSET_TLB_LOCK();}) + +Q6INSN(Y2_tlbunlock,"tlbunlock", ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NOTE_NOPACKE= T,A_RESTRICT_NOPACKET), "Unlock TLB", +{fCLEAR_TLB_LOCK();}) + +Q6INSN(Y2_k0lock,"k0lock", ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NOTE_NOPACKET,A_RE= STRICT_NOPACKET,A_NO_TIMING_LOG), "Lock K0", +{fSET_K0_LOCK();}) + +Q6INSN(Y2_k0unlock,"k0unlock", ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NOTE_NOPACKET,= A_RESTRICT_NOPACKET), "Unlock K0", +{fCLEAR_K0_LOCK();}) + +/********************************************/ +/* Supervisor Reg Management */ +/********************************************/ + +Q6INSN(Y2_crswap0,"crswap(Rx32,sgp0)",ATTRIBS(A_PRIV,A_NOTE_PRIV), "Swap s= ystem general pointer 0 with GPR", +{fHIDE(size4s_t tmp;) tmp =3D RxV; RxV =3D READ_SGP0(); WRITE_SGP0(tmp);}) +Q6INSN(Y4_crswap1,"crswap(Rx32,sgp1)",ATTRIBS(A_PRIV,A_NOTE_PRIV), "Swap s= ystem general pointer 1 with GPR", +{fHIDE(size4s_t tmp;) tmp =3D RxV; RxV =3D READ_SGP1(); WRITE_SGP1(tmp);}) + +Q6INSN(Y4_crswap10,"crswap(Rxx32,sgp1:0)",ATTRIBS(A_PRIV,A_NOTE_PRIV), "Sw= ap system general purpose 0/1 with GPR Pair", +{fHIDE(size8s_t tmp;) tmp =3D RxxV; RxxV=3DREAD_SGP10(); WRITE_SGP10(tmp);= }) + +Q6INSN(Y2_tfrscrr,"Rd32=3DSs128",ATTRIBS(A_PRIV,A_NOTE_PRIV),"Transfer Sup= ervisor Reg to GPR", {RdV=3DSsV;}) +Q6INSN(Y2_tfrsrcr,"Sd128=3DRs32",ATTRIBS(A_PRIV,A_NOTE_PRIV),"Transfer GPR= to Supervisor Reg", {SdV=3DRsV;}) +Q6INSN(Y4_tfrscpp,"Rdd32=3DSss128",ATTRIBS(A_PRIV,A_NOTE_PRIV),"Transfer S= upervisor Reg to GPR", {RddV=3DSssV;}) +Q6INSN(Y4_tfrspcp,"Sdd128=3DRss32",ATTRIBS(A_PRIV,A_NOTE_PRIV),"Transfer G= PR to Supervisor Reg", {SddV=3DRssV;}) + +Q6INSN(G4_tfrgcrr,"Rd32=3DGs32",ATTRIBS(A_GUEST,A_NOTE_GUEST),"Transfer Gu= est Reg to GPR", {RdV=3DGsV;}) +Q6INSN(G4_tfrgrcr,"Gd32=3DRs32",ATTRIBS(A_GUEST,A_NOTE_GUEST),"Transfer GP= R to Guest Reg", {GdV=3DRsV;}) +Q6INSN(G4_tfrgcpp,"Rdd32=3DGss32",ATTRIBS(A_GUEST,A_NOTE_GUEST),"Transfer = Guest Reg to GPR", {RddV=3DGssV;}) +Q6INSN(G4_tfrgpcp,"Gdd32=3DRss32",ATTRIBS(A_GUEST,A_NOTE_GUEST),"Transfer = GPR to Guest Reg", {GddV=3DRssV;}) + + + +Q6INSN(Y2_setprio,"setprio(Pt4,Rs32)",ATTRIBS(A_PRIV,A_NOTE_PRIV),"Change = TID Prio of another thread", +{fPREDUSE_TIMING();WRITE_PRIO(PtV & thread->processor_ptr->thread_system_m= ask,RsV); }) + + + + +/********************************************/ +/* Power Management / Thread on/off */ +/********************************************/ +Q6INSN(Y6_diag,"diag(Rs32)",ATTRIBS(),"Send value to Diag trace module",{ +}) +Q6INSN(Y6_diag0,"diag0(Rss32,Rtt32)",ATTRIBS(),"Send values of two registe= r to DIAG Trace. Set X=3D0",{ +}) +Q6INSN(Y6_diag1,"diag1(Rss32,Rtt32)",ATTRIBS(),"Send values of two registe= r to DIAG Trace. Set X=3D1",{ +}) + + +Q6INSN(Y4_trace,"trace(Rs32)",ATTRIBS(A_NOTE_AXOK,A_RESTRICT_PACKET_AXOK),= "Send value to ETM trace",{ + fDO_TRACE(RsV); +}) + +Q6INSN(Y2_stop,"stop(Rs32)",ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NOTE_NOPACKET,A_R= ESTRICT_NOPACKET),"Stop thread(s)",{ + fHIDE(RsV=3DRsV;) + if (!fIN_DEBUG_MODE_NO_ISDB(fGET_TNUM())) fCLEAR_RUN_MODE(fGET_TNUM()); +}) + +Q6INSN(Y4_nmi,"nmi(Rs32)",ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NOTE_NOPACKET,A_RES= TRICT_NOPACKET,A_NO_TIMING_LOG),"Raise NMI on thread(s)",{ + fDO_NMI(RsV); +}) + +Q6INSN(Y2_start,"start(Rs32)",ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NOTE_NOPACKET,A= _RESTRICT_NOPACKET),"Start thread(s)",fSTART(RsV);) + +Q6INSN(Y2_wait,"wait(Rs32)",ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NOTE_NOPACKET,A_R= ESTRICT_NOPACKET,A_NO_TIMING_LOG),"Make thread(s) wait",{ + fHIDE(RsV=3DRsV;) + if (!fIN_DEBUG_MODE(fGET_TNUM())) fSET_WAIT_MODE(fGET_TNUM()); + fIN_DEBUG_MODE_WARN(fGET_TNUM()); +}) + +Q6INSN(Y2_resume,"resume(Rs32)",ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NOTE_NOPACKET= ,A_RESTRICT_NOPACKET),"Make thread(s) stop waiting",fRESUME(RsV);) + +Q6INSN(Y2_break,"brkpt",ATTRIBS(A_NOTE_NOPACKET,A_RESTRICT_NOPACKET),"Brea= kpoint",{fBREAK();}) + + +/********************************************/ +/* Cache Management */ +/********************************************/ + +Q6INSN(Y2_ictagr,"Rd32=3Dictagr(Rs32)",ATTRIBS(A_ICOP,A_PRIV,A_NOTE_PRIV,A= _NOTE_NOPACKET,A_RESTRICT_NOPACKET,A_CACHEOP,A_COPBYIDX,A_ICTAGOP),"Instruc= tion Cache Tag Read",{fICTAGR(RsV,RdV,RdN);}) +Q6INSN(Y2_ictagw,"ictagw(Rs32,Rt32)",ATTRIBS(A_ICOP,A_PRIV,A_NOTE_PRIV,A_N= OTE_NOPACKET,A_RESTRICT_NOPACKET,A_CACHEOP,A_COPBYIDX,A_ICTAGOP),"Instructi= on Cache Tag Write",{fICTAGW(RsV,RtV);}) +Q6INSN(Y2_icdataw,"icdataw(Rs32,Rt32)",ATTRIBS(A_ICOP,A_PRIV,A_NOTE_PRIV,A= _NOTE_NOPACKET,A_RESTRICT_NOPACKET,A_CACHEOP,A_COPBYIDX,A_ICTAGOP),"Instruc= tion Cache Data Write",{fICDATAW(RsV,RtV);}) +Q6INSN(Y2_icdatar,"Rd32=3Dicdatar(Rs32)",ATTRIBS(A_ICOP,A_PRIV,A_NOTE_PRIV= ,A_NOTE_NOPACKET,A_RESTRICT_NOPACKET,A_CACHEOP,A_COPBYIDX,A_ICTAGOP),"Instr= uction Cache Data Read",{fICDATAR(RsV, RdV);}) +Q6INSN(Y2_icinva,"icinva(Rs32)",ATTRIBS(A_ICOP,A_NOTE_NOPACKET,A_RESTRICT_= NOPACKET,A_CACHEOP,A_COPBYADDRESS,A_ICFLUSHOP),"Instruction Cache Invalidat= e Address",{fEA_REG(RsV); fICINVA(EA);}) +Q6INSN(Y2_icinvidx,"icinvidx(Rs32)",ATTRIBS(A_ICOP,A_PRIV,A_NOTE_PRIV,A_NO= TE_NOPACKET,A_RESTRICT_NOPACKET,A_CACHEOP,A_COPBYIDX,A_ICFLUSHOP),"Instruct= ion Cache Invalidate Index",{fICINVIDX(RsV);}) +Q6INSN(Y2_ickill,"ickill",ATTRIBS(A_ICOP,A_PRIV,A_NOTE_PRIV,A_NOTE_NOPACKE= T,A_RESTRICT_NOPACKET,A_CACHEOP,A_ICFLUSHOP),"Instruction Cache Invalidate"= ,{fICKILL();}) + +Q6INSN(Y2_isync,"isync",ATTRIBS(A_NOTE_NOPACKET,A_RESTRICT_NOPACKET),"Memo= ry Synchronization",{fISYNC();}) +Q6INSN(Y2_barrier,"barrier",ATTRIBS(A_NOTE_NOPACKET,A_RESTRICT_SLOT0ONLY,A= _RESTRICT_PACKET_AXOK),"Memory Barrier",{fBARRIER();}) +Q6INSN(Y2_syncht,"syncht",ATTRIBS(A_NOTE_NOPACKET,A_RESTRICT_SLOT0ONLY,A_R= ESTRICT_NOPACKET),"Memory Synchronization",{fSYNCH();}) + + +Q6INSN(Y2_dcfetchbo,"dcfetch(Rs32+#u11:3)",ATTRIBS(A_RESTRICT_PREFERSLOT0,= A_DCFETCH,A_RESTRICT_NOSLOT1_STORE),"Data Cache Prefetch",{fEA_RI(RsV,uiV);= fDCFETCH(EA);}) +Q6INSN(Y2_dckill,"dckill",ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NOTE_NOPACKET,A_RES= TRICT_SLOT0ONLY,A_RESTRICT_NOPACKET,A_CACHEOP,A_DCFLUSHOP),"Data Cache Inva= lidate",{fDCKILL();}) + + +Q6INSN(Y2_dczeroa,"dczeroa(Rs32)",ATTRIBS(A_STORE,A_RESTRICT_SLOT1_AOK,A_N= OTE_SLOT1_AOK,A_RESTRICT_SLOT0ONLY,A_CACHEOP,A_COPBYADDRESS,A_DCZEROA),"Zer= o an aligned 32-byte cacheline",{fEA_REG(RsV); fDCZEROA(EA);}) +Q6INSN(Y2_dccleana,"dccleana(Rs32)",ATTRIBS(A_RESTRICT_SLOT1_AOK,A_NOTE_SL= OT1_AOK,A_RESTRICT_SLOT0ONLY,A_CACHEOP,A_COPBYADDRESS,A_DCFLUSHOP),"Data Ca= che Clean Address",{fEA_REG(RsV); fDCCLEANA(EA);}) +Q6INSN(Y2_dccleanidx,"dccleanidx(Rs32)",ATTRIBS(A_PRIV,A_NOTE_PRIV,A_RESTR= ICT_PACKET_AXOK,A_NOTE_AXOK,A_RESTRICT_SLOT0ONLY,A_CACHEOP,A_COPBYIDX,A_DCF= LUSHOP),"Data Cache Clean Index",{fDCCLEANIDX(RsV);}) +Q6INSN(Y2_dccleaninva,"dccleaninva(Rs32)",ATTRIBS(A_RESTRICT_SLOT1_AOK,A_N= OTE_SLOT1_AOK,A_RESTRICT_SLOT0ONLY,A_CACHEOP,A_COPBYADDRESS,A_DCFLUSHOP),"D= ata Cache Clean and Invalidate Address",{fEA_REG(RsV); fDCCLEANINVA(EA);}) +Q6INSN(Y2_dccleaninvidx,"dccleaninvidx(Rs32)",ATTRIBS(A_PRIV,A_NOTE_PRIV,A= _RESTRICT_PACKET_AXOK,A_NOTE_AXOK,A_RESTRICT_SLOT0ONLY,A_CACHEOP,A_COPBYIDX= ,A_DCFLUSHOP),"Data Cache Clean and Invalidate Index",{fDCCLEANINVIDX(RsV);= }) +Q6INSN(Y2_dcinva,"dcinva(Rs32)",ATTRIBS(A_RESTRICT_SLOT1_AOK,A_NOTE_SLOT1_= AOK,A_RESTRICT_SLOT0ONLY,A_CACHEOP,A_COPBYADDRESS,A_DCFLUSHOP),"Data Cache = Invalidate Address",{fEA_REG(RsV); fDCCLEANINVA(EA);}) +Q6INSN(Y2_dcinvidx,"dcinvidx(Rs32)",ATTRIBS(A_PRIV,A_NOTE_PRIV,A_RESTRICT_= PACKET_AXOK,A_NOTE_AXOK,A_RESTRICT_SLOT0ONLY,A_CACHEOP,A_COPBYIDX,A_DCFLUSH= OP),"Data Cache Invalidate Index",{fDCINVIDX(RsV);}) +Q6INSN(Y2_dctagr,"Rd32=3Ddctagr(Rs32)",ATTRIBS(A_PRIV,A_NOTE_PRIV,A_RESTRI= CT_PACKET_AXOK,A_NOTE_AXOK,A_RESTRICT_SLOT0ONLY,A_CACHEOP,A_COPBYIDX,A_DCTA= GOP),"Data Cache Tag Read",{fDCTAGR(RsV,RdV,RdN);}) +Q6INSN(Y2_dctagw,"dctagw(Rs32,Rt32)",ATTRIBS(A_PRIV,A_NOTE_PRIV,A_RESTRICT= _SLOT0ONLY,A_NOTE_NOPACKET,A_RESTRICT_NOPACKET,A_CACHEOP,A_COPBYIDX,A_DCTAG= OP),"Data Cache Tag Write",{fDCTAGW(RsV,RtV);}) + + +Q6INSN(Y2_l2kill,"l2kill",ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NOTE_NOPACKET,A_RES= TRICT_SLOT0ONLY,A_RESTRICT_NOPACKET,A_CACHEOP,A_L2FLUSHOP),"L2 Cache Invali= date",{fL2KILL();}) +Q6INSN(Y4_l2tagw,"l2tagw(Rs32,Rt32)",ATTRIBS(A_PRIV,A_NOTE_BADTAG_UNDEF,A_= NOTE_PRIV,A_RESTRICT_SLOT0ONLY,A_NOTE_NOPACKET,A_RESTRICT_NOPACKET,A_CACHEO= P,A_COPBYIDX,A_L2TAGOP),"L2 Cache Tag Write",{fL2TAGW(RsV,RtV);}) +Q6INSN(Y4_l2tagr,"Rd32=3Dl2tagr(Rs32)",ATTRIBS(A_PRIV,A_NOTE_BADTAG_UNDEF,= A_NOTE_PRIV,A_NOTE_AXOK,A_RESTRICT_PACKET_AXOK,A_RESTRICT_SLOT0ONLY,A_CACHE= OP,A_COPBYIDX,A_L2TAGOP),"L2 Cache Tag Read",{fL2TAGR(RsV,RdV,RdN);}) + +Q6INSN(Y2_l2cleaninvidx,"l2cleaninvidx(Rs32)",ATTRIBS(A_PRIV,A_NOTE_PRIV,A= _NOTE_AXOK,A_RESTRICT_PACKET_AXOK,A_RESTRICT_SLOT0ONLY,A_CACHEOP,A_COPBYIDX= ,A_L2FLUSHOP),"L2 Cache Clean and Invalidate Index",{fL2CLEANINVIDX(RsV); }) +Q6INSN(Y5_l2cleanidx,"l2cleanidx(Rs32)",ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NOTE_= AXOK,A_RESTRICT_PACKET_AXOK,A_RESTRICT_SLOT0ONLY,A_CACHEOP,A_COPBYIDX,A_L2F= LUSHOP),"L2 Cache Clean by Index",{fL2CLEANIDX(RsV); }) +Q6INSN(Y5_l2invidx,"l2invidx(Rs32)",ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NOTE_AXOK= ,A_RESTRICT_PACKET_AXOK,A_RESTRICT_SLOT0ONLY,A_CACHEOP,A_COPBYIDX,A_L2FLUSH= OP),"L2 Cache Invalidate by Index",{fL2INVIDX(RsV); }) + + + +Q6INSN(Y4_l2fetch,"l2fetch(Rs32,Rt32)",ATTRIBS(A_RESTRICT_SLOT0ONLY,A_REST= RICT_PACKET_AXOK,A_NOTE_AXOK),"L2 Cache Prefetch", { fL2FETCH(RsV, (RtV&0xff), /*height*/ ((RtV>>8)&0xff), /*width*/ @@ -59,10 +258,28 @@ Q6INSN(Y4_l2fetch,"l2fetch(Rs32,Rt32)",ATTRIBS(A_RESTR= ICT_SLOT0ONLY),"L2 Cache P =20 =20 =20 -Q6INSN(Y5_l2fetch,"l2fetch(Rs32,Rtt32)",ATTRIBS(A_RESTRICT_SLOT0ONLY),"L2 = Cache Prefetch", +Q6INSN(Y5_l2fetch,"l2fetch(Rs32,Rtt32)",ATTRIBS(A_RESTRICT_SLOT0ONLY,A_RES= TRICT_PACKET_AXOK,A_NOTE_AXOK),"L2 Cache Prefetch", { fL2FETCH(RsV, fGETUHALF(0,RttV), /*height*/ fGETUHALF(1,RttV), /*width*/ fGETUHALF(2,RttV), /*stride*/ fGETUHALF(3,RttV)); /*flags*/ }) + +Q6INSN(Y5_l2locka,"Pd4=3Dl2locka(Rs32)", ATTRIBS(A_PRIV,A_NOTE_PRIV,A_CACH= EOP,A_COPBYADDRESS,A_RESTRICT_SLOT0ONLY,A_RESTRICT_PACKET_AXOK,A_NOTE_AXOK,= A_RESTRICT_LATEPRED,A_NOTE_LATEPRED), +"Lock L2 cache line by address", { fEA_REG(RsV); fL2LOCKA(EA,PdV,PdN); fHI= DE(MARK_LATE_PRED_WRITE(PdN)) }) + + +Q6INSN(Y5_l2unlocka,"l2unlocka(Rs32)", ATTRIBS(A_PRIV,A_NOTE_PRIV,A_CACHEO= P,A_COPBYADDRESS,A_RESTRICT_SLOT0ONLY,A_RESTRICT_PACKET_AXOK,A_NOTE_AXOK), = "UnLock L2 cache line by address", { fEA_REG(RsV); fL2UNLOCKA(EA); }) + + + +Q6INSN(Y5_l2gunlock,"l2gunlock",ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NOTE_NOPACKET= ,A_RESTRICT_SLOT0ONLY,A_RESTRICT_NOPACKET,A_CACHEOP,A_L2FLUSHOP),"L2 Global= Unlock",{fL2UNLOCK();}) + +Q6INSN(Y5_l2gclean,"l2gclean",ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NOTE_NOPACKET,A= _RESTRICT_SLOT0ONLY,A_RESTRICT_NOPACKET,A_CACHEOP,A_L2FLUSHOP),"L2 Global C= lean",{fL2CLEAN();}) + +Q6INSN(Y5_l2gcleaninv,"l2gcleaninv",ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NOTE_NOPA= CKET,A_RESTRICT_SLOT0ONLY,A_RESTRICT_NOPACKET,A_CACHEOP,A_L2FLUSHOP),"L2 Gl= obal Clean and Invalidate",{fL2CLEANINV();}) + +Q6INSN(Y6_l2gcleanpa,"l2gclean(Rtt32)",ATTRIBS(A_PRIV,A_NOTE_PRIV,A_NOTE_N= OPACKET,A_RESTRICT_SLOT0ONLY,A_RESTRICT_NOPACKET,A_CACHEOP,A_L2FLUSHOP),"L2= Global Clean by PA Range",{fL2CLEANPA(RttV);}) + +Q6INSN(Y6_l2gcleaninvpa,"l2gcleaninv(Rtt32)",ATTRIBS(A_PRIV,A_NOTE_PRIV,A_= NOTE_NOPACKET,A_RESTRICT_SLOT0ONLY,A_RESTRICT_NOPACKET,A_CACHEOP,A_L2FLUSHO= P),"L2 Global Clean and Invalidate by PA Range",{fL2CLEANINVPA(RttV);}) --=20 2.34.1 From nobody Mon Jun 29 06:52:23 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=1782705803; cv=none; d=zohomail.com; s=zohoarc; b=GELXNcXnLrkLjQnvgtKnnGP+lnMaL1r03Lv+77OmXhl/OWlygPp2BFrFAlheZg8c7IE9/oSmPkQlGTbp5qBQhMWxSSLoFF7UoqROchzor/5LwOMr00cLHA9PwNrMZ9V6rpjAq3W/04naaspPrJEcIkP0BkUVAO3ID4TiJV4UM1c= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782705803; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=A6pOvTDmBcE7a+LcMmkVdenCZuGBQ2uDfc0MDeYWAsJJqfRvtkthXKhlOpEF+ETR66wRO/CE6u/tDMbEU3YoIy0u7WQ3WUtn+PeYc+X1jEwSwt18PpCABMHPL6i/WEG/8+0Qh3htToDev7rUdQ7gAsf68hXqLuPjAwD4AamRBAI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782705802992523.991615114771; Sun, 28 Jun 2026 21:03:22 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1we39g-0001gg-Cx; Sun, 28 Jun 2026 23:59: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 1we39b-0001fJ-6w for qemu-devel@nongnu.org; Sun, 28 Jun 2026 23:59:27 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1we39X-0006Ie-RY for qemu-devel@nongnu.org; Sun, 28 Jun 2026 23:59:26 -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 65T2cppe1504245 for ; Mon, 29 Jun 2026 03:59:22 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 4f27t7v82g-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 03:59:22 +0000 (GMT) Received: by mail-dl1-f72.google.com with SMTP id a92af1059eb24-13980b6561dso7309330c88.1 for ; Sun, 28 Jun 2026 20:59: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-139fc2ebcc0sm8367088c88.14.2026.06.28.20.59.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 28 Jun 2026 20:59:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= /VupIGXlaT55BiO1M+rRAhb74/1Wio7tg5AsFBlbUDk=; b=VQuGL4WBVbt9w1x7 bHOEej5bkecHyxO1YY76JNgXdKNEiO+2HfttxvswOx3JT4HfI2mvzxxE84RA1TA7 rxAE8hhk2PIQcYC0I1i0eGpj/kUUCAjnmCKl1AP74PQY8y3xVI0MW9oiPkr7IVk+ PU2Ak29XtBMORBspApUjAmX695Xxl8Nb81C2xKg2dfVDYPsQSpuMQIF0O6Q9ytcm txp13LeY4eEMGJtmMDizCwas2S+vPJXlMLVyAFKl44xu2wcU1hf7j5Y10a2wD7MY i1YbUbchP0bLWprIxuCYm2UOLs/NX4F1EZ8Pwoc+mzOMmOKOOQVnAOThNpSrKQIA pQWpjw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782705562; x=1783310362; 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=U4vwq/nOiPhyX8QeOwO11GrMpKf2+gGo5jbM512YwIH1v/rHNrv4LAE8RXxrmFG+Rb nwb8++9+Rw7+2o3N0z0qp/GnavOYdKBhd7ywwr66R/hWP9BnK2l+a/Ebblqo+5UcZLWz kFnnpPmp443pLOSvqK+swrfW5gXIkcb+sqT4Y1A3TbWtA1I32dAmRToHpmNbjqF4JLvZ qF2qf5twcH6Rm2C5keEH7cXr8RSwsfmu8hJffSbZ8c97sRjA9GCGOCYq4if+12KsScxA KDtFrQzh3cvzyBuMhqM6BWc/R7DZjbIzDbBdzvMnXtYZVgFaw6xwMDP9sRL1gTV+Ogsv mHWw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782705562; x=1783310362; 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=RmuZspNhV7x+GE4VLoh9W6R9KAwgn3x9DjJT80wowbnzNkaQxqrCkwBIgBvCpaSJgF uXiDG+aV4gFHeytOHo4E1Dluxw8KYnmXPNfix8AV4NHeN/wytj48wG4GhM7VeF0VsYIG A8PsijNlVN7TWP/D6KbnMGMXjuHjbEcR3VYWN3l432UJwL4VCEJTlo5c1z/OCxWRiy5t hI7SKj/hvEPAMaHB31WpDTE2++cfYzqTXrhdDQzg82XRLOdLw0xCZV7z80Ck/IzscR8F FI0fL9ZiW9cdBzhXYDykGWoUZHAhpQQqy4Y9IVQJ8hdEzlhY3/Pd3JZRipSlMSUfulsm 6tXA== X-Gm-Message-State: AOJu0YyvLn7BYhjFrARwzu2LHjDNpgk1YLPYYZK5xiC6dgz868O2TfWV NVZDSeaD7B4HfPHOxeOgmImYHge6RtP9LaKck+e+4xYxhMzOpHIeWxXmw/OPwXPPSaOZw1tEnFu oAzWkpfW6KgmPD6F37h7mC4Q8nnxktDT9QeeqyRmQalmcnoVL2T4ulV0EobnUxXSKKg== X-Gm-Gg: AfdE7cm6Fps4iAkYit9KEwnZTQUzbjQyFo2SxGX/AVxwkai0HfwMENjLwW6LEvpIeRu Y3H5daD+5pfXDp4TyZJsbcKE0zdQ17AIzQkPlkZIh1VCnVkmMg3aL9qArrFKav1AdNYmfEmMwGo u0GvJyGpf0k4FL9NPTz7G/Fk9iWTal93wTaGwqyjxaFErmJRm3Z10gY6X0MLpz9VpDD2jEUIeDo oOG/RnD1x1r6jZgGeC5oulJnIDHCQaytWqdMxbQ0lgHxWEYTvm2WTU/To1iaeP3tqrbalslquCq N5DagvqKkKY00fmXRr6Acjy5oGPefemLr4RPH0o/S4VY2XHinF6IHbEIchvtORFQiMJe7hI42w4 CNq3JpV54MKv35fDq/hObd/yhtQdoNfI05HOdBW3NyD1XvixU+1m9cw7a70Q= X-Received: by 2002:a05:7022:ff47:b0:137:ae1d:5b58 with SMTP id a92af1059eb24-139dbab1b99mr12298645c88.20.1782705561614; Sun, 28 Jun 2026 20:59:21 -0700 (PDT) X-Received: by 2002:a05:7022:ff47:b0:137:ae1d:5b58 with SMTP id a92af1059eb24-139dbab1b99mr12298628c88.20.1782705561057; Sun, 28 Jun 2026 20:59: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 v4 27/77] target/hexagon: Add sysemu TCG overrides Date: Sun, 28 Jun 2026 20:57:40 -0700 Message-Id: <20260629035830.1520296-28-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629035830.1520296-1-brian.cain@oss.qualcomm.com> References: <20260629035830.1520296-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDAzMSBTYWx0ZWRfX1/CWo7uy38/w RRkmRbY4JXbt0JiguoWVXs+87HRCDOr3cpncyWSt5FueoD3JEl7aCPbm1K5vUDdRv0l+azoVVJX x/8uJahH73sXEutP3VvPaBEbCSiT8ngE1VvPSNa/r2p+KiaKVYqP2qZTA22xBBJROpgSadeuTtl ptuZjC4InX+xa5nB8P1Q9zFlrdSfalL5IlfDsD+VLBLyBD1dlE+gY3uggbiJBQSGCodXwiuZHjp pF/dD79HPWe4LhzGVXRbP7VHpEOKSATs9/iQSVmySJpOpYAdNzTJd+7VESsS33JIF3uvcunuHHH X9ec2vdf4m8cx0awKR4Fsix7tw2qIAhczCThR6cDhTAGDSLc0yQaA3hLKDXK1UhpLUqE/V1wof8 A8VsqIJtq+2EQu9gyvrd2wKwJ1W3/8ptNb3KLEVL2gsLLRHjaJ9WDG79E9BpEgIaG4g8R8ozNiq O6ZtkM3EPXu8Y0RLtOQ== X-Proofpoint-GUID: TSv8gkGVonDWHfPrCWMyM6E2_u-Z1PH7 X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI5MDAzMSBTYWx0ZWRfX3c3gJNVzUDZj vFMCSWsiofUHE9maATLdcRQLGwecVy0P7+7alr7JsROYj7uMQlecZeFjdwxOpjKLWfc+UZEH5t8 4+sMvcfN2vKpKP2PpM1AnmHB4NZTmko= X-Proofpoint-ORIG-GUID: TSv8gkGVonDWHfPrCWMyM6E2_u-Z1PH7 X-Authority-Analysis: v=2.4 cv=BdnoFLt2 c=1 sm=1 tr=0 ts=6a41ed9a 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=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=dSil3A76VgRsV-fRJqMA: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-29_01,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 phishscore=0 clxscore=1015 suspectscore=0 bulkscore=0 impostorscore=0 spamscore=0 lowpriorityscore=0 adultscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290031 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782705803771158500 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 Mon Jun 29 06:52:23 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=1782705589; cv=none; d=zohomail.com; s=zohoarc; b=j26uDho4FkQUoX70XVJOygiP7vEVVu6uL24TdABXSF6aL0mqA7Fol7yzsAyPX53RfGLVsxKBA6KxDFHPG3N5ZBvzRZYGMJZR81KUliQsTvBsChoi/Zo6DSjwlsKKG59RrUjD83IvMkkKNvbheXmVbA0D0kqDjkCWeD3qGiDLALE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782705589; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=WZtVZYFik88x4YsWr7FlaUxzveNi2K6Y74m45RPCzGTqo0+UMNcpkCD7tA1++aE0b5i198jAO+IC8kOKLv1eYN9tPVgfnGinz7hR0WlRlqoi68+wXwFD7IYQ1NEqkf+T5fzjqeNhaxH0/mWAGwA405N77BAEypx5r0Jm3/SaG+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 1782705589628121.5614967700401; Sun, 28 Jun 2026 20:59:49 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1we39e-0001g5-4X; Sun, 28 Jun 2026 23:59: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 1we39a-0001f7-Py for qemu-devel@nongnu.org; Sun, 28 Jun 2026 23:59:26 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1we39Y-0006Is-L8 for qemu-devel@nongnu.org; Sun, 28 Jun 2026 23:59:26 -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 65T2dR2h1544920 for ; Mon, 29 Jun 2026 03:59:23 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 4f26tumacw-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 03:59:23 +0000 (GMT) Received: by mail-dl1-f72.google.com with SMTP id a92af1059eb24-139f77afcb2so3338919c88.1 for ; Sun, 28 Jun 2026 20:59:23 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-139fc2ebcc0sm8367088c88.14.2026.06.28.20.59.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 28 Jun 2026 20:59: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= A6hX7dXQXO1+fIeZgKUska/ZVbxUwMZyizq5wXsBD70=; b=cuyKOSYrnmzQDa7x GqK7erz6n3BTkQlxs0fHeKocc18EIe8vtIH/D4RJWGbHXfFKvfKnKZP7SpJa3WFT U97/IWblvSVgYZfp0qjrQa3fw4KwQkvJD4bT/MA9s873ZKnHRc4p1omKbQD5utos jLjT/vlO3k5Q88JBtH+LJmdLpn8EviSEe+ApjL7ztWqHI+K5GanKhgvzz/d2f3Pz n8MCLDt5Vn01JVki9eJCpGUM+pI1I1nO4pOgNNhnb6DzjB9aH8yIB3YLwLfKeX+H TD0mSbVflW77QLVThWhD46o5wWyzj6r4mBE0gwCBsTbVOykOx+CzAfERLyKMNDIP X7TWDw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782705563; x=1783310363; 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=C9T5nvHigyTkt9H8s7/VV9MiX9K3WTE7AZWjFityOQZlGgIiCR3pa2lnl4rvc46kHh 1ycNbraTJ2UpYXG0XSYV1SO3UslzfBBvZKRhU2NY5YPidjxgP5AvS3L0QciVawTLRjPf IhpJQ/d2Btbd3GQ51Jr3f7IdpfZ9HPuC9fFMlJxWoH59v61ggtlrItiKK2QA2uvjLO3h UZfiwrywETRUdzKxDVedyjUjZIfKlZFS/rbxRZV/7Hx3/a1I+Q6YuN1mu0UYWKY78POl LMCBbWt22dwvr16i+HUIhpOQdgfJciqB1k1Lagv4W4AdN//mpvqUwf8mKxZPhrTMyZ80 iwoA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782705563; x=1783310363; 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=MGnQ9ZsLFUHFI65VeaZ9Pb7nWrIp7puExj+VXPZf6FaDYbzFvpGOb7GcB47uwuL0w6 yDdJ7FEzh4ZxafvbXiL5B72AYE+NlzR6Npp5kR0fhxr/4T4NebbGMQcRMVoKIkLcR9VS RviPp3z252MmkuCA+9hXl+QLtWpG3kP/AyKoP96cYacjH+SV5xu9090l+Z4xIUi/URQB 2wRBpfiEE2J6IxH1+woL1skxBbfiVwWlk9v0cSpV79ZpJFhs7Y7Ca4jsPxHp1bVIFTUw tn7ofjIMYw7N16K79D+XOoLAlfmSWb5Lp6B3/KfOYW0LzYQ7+IgwQKeW7x/zyXLyPjmw vuww== X-Gm-Message-State: AOJu0YykFFREFL4IlcaFzECtkg3sB9XotpYBf7qNBb0mrBgGd8SnBjaQ NHmbcFyC7bj+IkKccs46DckLfrfzfdna9VKIAseMuveLAFGVjfg4asYEd77z9LgiLmEFNWNc16n F7q1LV3A3l/hpPuraRkicS+f7l0j0UNPhGHXwxebZ9LsZ4b77jb9lsg31UT5X3c3M+Q== X-Gm-Gg: AfdE7cm/0oHFAGCG2OLakhC0j30V8Ozwy/2bt9YHnO1kXT8xn3PhusfaS4D6REqJzKQ GPn/eylu+ICzaTFRxiNDDGufII4qAh+TlvKUURANdGBqTBzzlZ5O5ujhMgCZ2jCKgQ5L1CBR8yi duoJyDUVdXhBsrmv23W6/g+I6taJht/xX3YrjYIzPuafOtjufSYEpNzx3HKO9SFUg6ShHg4Y3WF Ed5EtgZLULBFO4QtgxDEptFYfb2uVF/5r40b+j9Vy6PGQ2L1Zpmpmwp4xuidIYNsjx8G9I6X6Mj 4R9umnOwVIjzl+T36rYBPlzktLbVNIi8KUkJ5TmykfgLfrrCpJpulZpphggqaErXWHt8Vn3dOoY 6/1L/98yd96nDdOr/VnenVp5eMQKskiXYeSjMmrlJQFUtD4NYdFeDlCXgeOI= X-Received: by 2002:a05:7022:69aa:b0:139:ed5d:3ae with SMTP id a92af1059eb24-139ed5d05fcmr5642521c88.39.1782705562628; Sun, 28 Jun 2026 20:59:22 -0700 (PDT) X-Received: by 2002:a05:7022:69aa:b0:139:ed5d:3ae with SMTP id a92af1059eb24-139ed5d05fcmr5642508c88.39.1782705562157; Sun, 28 Jun 2026 20:59: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 v4 28/77] target/hexagon: Add implicit attributes to sysemu macros Date: Sun, 28 Jun 2026 20:57:41 -0700 Message-Id: <20260629035830.1520296-29-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629035830.1520296-1-brian.cain@oss.qualcomm.com> References: <20260629035830.1520296-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: wOSOYAzUXhgyGCXSbfcy2OZF40oqfsFE X-Authority-Analysis: v=2.4 cv=A8Rc+aWG c=1 sm=1 tr=0 ts=6a41ed9b 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=eoimf2acIAo5FJnRuUoq:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=jiUnMIOmsb6gMTORg9AA:9 a=QEXdDO2ut3YA:10 a=vBUdepa8ALXHeOFLBtFW:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: wOSOYAzUXhgyGCXSbfcy2OZF40oqfsFE X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDAzMSBTYWx0ZWRfX8o+Fo10r6wMQ BscAXkuw0dBT2vIQKEUVJOYJFasDMSr3N4jyTItDjr2Dv+dpbXtXXNy5IJBEysbAYL1cfNjMLu8 SzeR6/asxvOAxncUwjAMzNB1yVMZtO33OR+G8z/Kd4d7hW6qngI7GbxHhfOS+6ocB4HRqGxcGRc gC1VnbZzA6KqDbgQQPjQpkMjYaiS54PmBRGqc+lTcQTJcq/1PwMTCuhbuBmeaP/FsRsujn/AfQF tHhN/vuXzLpNrf8vYKeZZp58ojoSC2Re0gGKMFDuinPVLgFkFNCDR229rUX7I7+XXiecdcIQtDG F4WSb9J0WtUu6gj1xp8GTrkH4xxJjYLrRbCsOpNGqxod+5N/hVgBSDVwCR77m3wrPJZl1R/iHpP yU6nlkMbilHEGexRoyo2FZbTdiAKJdc5FcT8VfXnXtnkIZQJaDeiJsJhAAP4M3H2hE9PSRqs2zk CkBpEM4N0j/bB4COF/w== X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI5MDAzMSBTYWx0ZWRfX5K1EpktOkSDs MjTWKsS+1uLK3sN/7/0hA84/gmogwxaltFpYFiFnZIZwavl+ndnv4WPq7tW4ofzyImyB1AwjQWZ msITppdlvY5cwpDGg5WDEubAyk5ZMh4= X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-29_01,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 adultscore=0 clxscore=1015 impostorscore=0 priorityscore=1501 suspectscore=0 malwarescore=0 phishscore=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-2606290031 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782705593286158500 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 Mon Jun 29 06:52:23 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=1782706008; cv=none; d=zohomail.com; s=zohoarc; b=n9QbFlxUgNyYefK7+8Qeo777Dp/sLj9WP4FvP4Lw40UzIFlyv13kGPF/5F66fFFoHyWNfwT686tWoY4Sz6jqIIprkdAlkTEoyTYOhvFUnGhFjdoF9toUaxNOf695SzFP6IJClnuxPYmEfS+KXpDB2X2aDRlW/+FAlAt0aTD0WsQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782706008; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=iRLYKk8yU7qhxyWRtdDtgPpbd1VB1wJ8fSQyyqdttyrUajhEydzKmZormao4Tm+g8DpgjDfvisn4P+NGiSzN/LUqgy8QuRL3s0VUta3L0ZbIhesSsuF2jsfF8l/8NTRUW1oKRx6gtMfh2oI09Dp0IDbbYbNtoxhSNA43jYS7Kas= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 178270600884217.010554946471984; Sun, 28 Jun 2026 21:06:48 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1we39u-00021P-6c; Sun, 28 Jun 2026 23:59: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 1we39c-0001fk-Sv for qemu-devel@nongnu.org; Sun, 28 Jun 2026 23:59:29 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1we39b-0006KM-6M for qemu-devel@nongnu.org; Sun, 28 Jun 2026 23:59:28 -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 65T2ctDN1514090 for ; Mon, 29 Jun 2026 03:59:26 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 4f279cm8wq-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 03:59:25 +0000 (GMT) Received: by mail-dl1-f69.google.com with SMTP id a92af1059eb24-137f3465368so2930648c88.1 for ; Sun, 28 Jun 2026 20:59: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-139fc2ebcc0sm8367088c88.14.2026.06.28.20.59.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 28 Jun 2026 20:59: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= SxgjDN8stbE6SIBeFPtrecas0sgHajmcu/RG683JGPg=; b=Ce4RWQMRALHjlolO NtGm3cX4gofOYCPxyfYN/xunnArCfjIHL5I546dwuwNikUNx4dClsNXP/limSPca O2L9yCD39C76CHflu+8j+ekjMtL0Lxtu2CAE3eCzqzNkGNhXacjrZOAVw8hdLrPZ JaHssOEQeoPJsIb3exgVa1qEZ/F6xIZILnTCV9vA4GV7DyHkiJhVtOwZWhibl6Iz SkMqPVx0gHWNMIcofuk0fU0YRe324o7YLze6ZUblVXVFSMnSFIEbsUgDAn0IIHw8 PdzEnZceYeRqSKtClnH3at6hPpwgV+Zr941lKoocbkGD52QG4/p6X+xoYTXBsurW o3ky1w== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782705565; x=1783310365; 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=HCh65J7bHhyvpJ6ugNa8EUUmT9BMlq0KYGwUWpMxbt7kt+kMQ+XFdcIuptaaI5wYY1 In/ZAe1m5B+87ur12F6dGSaSJnkVgxo44GiFdLPar8IE6CjbTjhAuNNtPDN6cAKXzY3M /UDiKoqILA7KcVi/Zrd3fcZYUSuHkXmlsqmalXq9SE2f+Qnwjly4iuRIjR73MfK/BnHN W5M3C3uK7StM2VdMmtt3V8PYcC5fNBjFk3H/57n6HrF821Gr1mcAmpAURyC/x376lcSL pVsPALidKt464aqXQ+XSkWZXtyg46zKolIaALApUPx1S+6MXHqTzrfXmd6yGzrh0tZ8e 2ltw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782705565; x=1783310365; 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=GD2ufw2bqgGrvIIPlYPIBi83PNEZTNUnawCfg199i8PIiVwNKs8GV2dau8R0HfunRm a+7pO3rmaui/XUOjOKBwgUn9wJ8rMBsG4frkOYYDaXHcqiZjRvjBo9LKSh7AsnVC9E/b awjTVgYWVNAPRYd4zzupNkVzdcEzsfUyrjY8QnLMbiPXEDdK6AA2B2ERseX2sxro+Zh2 T90Xm4lpi3XvoBPFmZnAaoKh1RNzB+4vtlp/D/4xjyfxD9MXWz1/Klwj21cnvq/IO9nL IzfN++q9Xbgstj/tiYPBc1UkIzmDEOQ9CMizKxu6SoIwTC//CPWPDS+LEJnqElRkuTAG b3ig== X-Gm-Message-State: AOJu0YwQ0GXkLwk1dWHzD3jCMRNnTtxC5mwRY7v8Suh3LYiQdgQMmjH8 /d2YCp5fYBLD7fgZEQNnUi2fLUv9UJnhbuVgCcTV3Y+4Kce1Lt6nPv1kvq6yoNNu5leqpBXqd5l c/DZG0GPleEujlCJPXaLPCN3cgqrJHdy6tQ4uKzuavr1Hz7PSOItrs7GD0ChuwWLHdQ== X-Gm-Gg: AfdE7clpUI7ENwrvG6g5pHYMxbzmplcQSwI9watah2lfQ/LD2VqNR0DULvHikbWnM9b 1gYfeBEe352+/T8kp12xxrG19y7sN8O8DXPifuMjJpYGcMtMUxjIQ47jmWZjrEkss0PDnKNbHQH 3z5BO6c+y4sXWI5bT/cmfPMq5rzsISL4qLPk835Sw1iPHCfxlVBgZCh/RjLWGzv9IKhEQq7xoJ/ y3aIC+NW8O4G7BkDWO8c0gDh9gTDm5QT0a2gt+uKH5GswQsAXzlVZLWBKF2O1khq+9gZvTIRPkL XufADeKjiXgStonw/jYx/pMol51/cvVnDbp2Q7papWxoY9NjML2ymKhU0OI8bBI19UF6B1ffJZU L88CaP03zj3CKS9zsBzsxdXVkMNFHr68aXHdeLuYpyYSZIAexh/sFqCe+acc= X-Received: by 2002:a05:7022:ff47:b0:139:ceca:20c5 with SMTP id a92af1059eb24-139dbb90706mr11408392c88.19.1782705565032; Sun, 28 Jun 2026 20:59:25 -0700 (PDT) X-Received: by 2002:a05:7022:ff47:b0:139:ceca:20c5 with SMTP id a92af1059eb24-139dbb90706mr11408375c88.19.1782705564485; Sun, 28 Jun 2026 20:59:24 -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 v4 29/77] target/hexagon: Add TCG overrides for int handler insts Date: Sun, 28 Jun 2026 20:57:42 -0700 Message-Id: <20260629035830.1520296-30-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629035830.1520296-1-brian.cain@oss.qualcomm.com> References: <20260629035830.1520296-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Authority-Analysis: v=2.4 cv=evzvCIpX c=1 sm=1 tr=0 ts=6a41ed9d 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=_K5XuSEh1TEqbUxoQ0s3:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=ncxFUDX8U6Z2rYVbhVQA:9 a=QEXdDO2ut3YA:10 a=vr4QvYf-bLy2KjpDp97w:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI5MDAzMSBTYWx0ZWRfX+ZvvI8Pj2Ilr Vimz/OtKyaVGorRzddrym7lRGk0RpXfwXuCBc6zjX+hOkaC7vephmUf1mnfQE6zeS9ro6OKWIso VUEITudg4Ho/jbGZzQVSM1F05Oka3kk= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDAzMSBTYWx0ZWRfX37w7WkGr3E5h R65CFjT7/4LOFb+GQY5IdWIX1pHOTjkhArLg/k29rdqFrbDyP0Jm8gb/zTRnOf32qhwkduc/Liu h/y0vUEFsvA8kJ1/hMJmQKEKkTA9Uvb6ng2eWs53hPT5mfll3kptGeiJplm5uNmcbTee9+uyOGk WBFHskDe/zc/ntm07Z8DttN9NXNSg1RnqeYTlDS2dfrOaZr17zelf0y/A0JZAeCUxhTEZVXdKbv 6q8pc6sHBJsXdjhg3WfOfNkbv90OnGDPjazqV3/41x3H8WLQmye6qN+f1m9j3mL5BU+NRJDNm6n QT9S3vjNG54pHCgHQ58KQNkIxDBof87giPc6LYNXdY7hecrFaw/iwTrzl/DaDRAxlZfUMRdMOeC WOUygRpgn+FUIq1rQv6PNnwY5wwTzy+XtBK3oWf+4yunN3IwO3yroX3vQeLy3c2xAQLDO7doORi LafbXo/jKsAy+LurwWg== X-Proofpoint-GUID: mM0SqfhzAYJqZ0zrJC1qP6PTdMh1fYyF X-Proofpoint-ORIG-GUID: mM0SqfhzAYJqZ0zrJC1qP6PTdMh1fYyF X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-29_01,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 suspectscore=0 priorityscore=1501 spamscore=0 adultscore=0 malwarescore=0 impostorscore=0 clxscore=1015 lowpriorityscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290031 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782706010622158500 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 Mon Jun 29 06:52:23 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=1782705905; cv=none; d=zohomail.com; s=zohoarc; b=k9vKL/mpBpgC9Y7qRk8+57pm6uQtsx8pKkZ9cfzr+x8RTRLILQGOhiAiPCYMGlejf6AbH1iAJjSgLMhm70N4jpHyQPl9TygBuxVMzw5Qo5ERq8iWBdLTo8k+567XmdSiGl5joBlncyVF+/gZ7SIWMqZWhq7fZpEpPWbvrkQD/Oc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782705905; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=i/rXLZc1APYk3nKb27XTFhfucy/JDp21DWWDbkgd3Wxg1iZJihRAR1qG1+1Mw8qwpv5rGtZ/hZRqGGbdSExpgWIDkAXUDtUME2sOtykF6heF3OvnutuTbLTXazs1zPpLrkfYNbG8gYkdXNXQcsJv2xr9N61O/zXcOYomQjefXtc= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782705905284209.77416633968414; Sun, 28 Jun 2026 21:05:05 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1we39i-0001hz-7Y; Sun, 28 Jun 2026 23:59:34 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1we39d-0001g3-Va for qemu-devel@nongnu.org; Sun, 28 Jun 2026 23:59:29 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1we39c-0006LG-Cm for qemu-devel@nongnu.org; Sun, 28 Jun 2026 23:59:29 -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 65T2d5731504741 for ; Mon, 29 Jun 2026 03:59:27 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 4f27t7v82q-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 03:59:26 +0000 (GMT) Received: by mail-dl1-f71.google.com with SMTP id a92af1059eb24-139b70ca7e5so5903616c88.1 for ; Sun, 28 Jun 2026 20:59:26 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-139fc2ebcc0sm8367088c88.14.2026.06.28.20.59.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 28 Jun 2026 20:59: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= N0iAGziQ+4iP1vKIbJyLWLa6evXdgIMUYRbL+wxICtw=; b=A7WakLaFgOALahmj 3a74LYR/uvXEP/G7YuVSgXh/GiP14VB9p7ABfpRF6LGgG17EICo7RtQz178F0mG9 KGuX/iv1FNN/vZKCkN/g+FBnTJpWqQHd5XTkQHWWY4f4Q6Q5xjXsZ7q5qqSFYZxd nlPJu+N5sz4/WcP09deh9XUlJMa8pXspchwdTnB/BSaANXhm3gu97CM3usC2Hal4 iCWLupSu1gKcCin5r/U421Z+2rraUxkBFnctQElCnpuPkJZscUXMtPimTqa2pH1w edct6b9eYaYqmZ6e8m5aD4gugFKAVMSei8I7MZ8yDiR58pJ7ZJnBEnxXaguMt/Xa XHlpVA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782705566; x=1783310366; 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=IdJjtPk0Gh2g4g09187ufhzXfTTI7UzSObd58cPFyvzDQLlz7wwGQALi/9Pz1ejE6e MpgfyHhaPibLFiQc7EXJRGybfl7diUV0ulpcA8LZcz2S5FytwqS5SxQiSyHVbnBYZ2B7 3ODQP30+VbWfOT7fbpETl2bqI9uzh7kDQ9kEcyDO2jelzIp63VqpUv0jW0WdL5WEQJbv Ch2E8zA93OW5pK2lFlVKPGF0N7pXZnKTRovrDg3Ln8ScJarS/dqO1ekAT1WlLp009Xnl sFDNL9yo+hjByESgtfFHcIX0p6/yJibIaRyo0RFn2HzokzUIir4Kl/DUypG7SSt6I4Py 4FBQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782705566; x=1783310366; 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=pBw+ZRjVkxw8KvRFnwop7hWJK8Vr8fSBN125aUqyZbA6y8L3BQjAFzSzhmeKqcdkJR rgugoU0kQzaC/qVc9DfYkU2TJQheWOxzIWbCRe+swKpv+Ww8Fr+Yh4rWr1xLtu+CbJwY bSeocN5ycBLzWI4Md240Fs2UORUIFqJovJOj+zPS4GewC+O/s2WtoVozJ25szX+DRheJ WOb04qUmvRXDqFln2grD1EiKO/1SFHpvMzMTGGCDdoNWn72l8qkszTh33oQpVoE0at+e G2i965aIuN43qZe44Bdu10gKxGaQolYTbKXOyUk0hd2YEDS2O3KegbCZxIFlU8QeFo0y mnlA== X-Gm-Message-State: AOJu0YzKIlg1tOE+Pq+MdcmcnuNDdmFGumLY7BsUEFWUxYYe3BzPwoqH Tf4SuHCeGZLCojVzvqjz7SHCc+do6XEfw6JNq5ljXvzdpD7j5yH1Jl0U1wlyPCVF6VTqkgzvU/5 olqj9rkdl5QPNUKlBl1rR6muwUJaz9Ju9bJA/hayWFakbuaNd8GzifLx/vhkEUWFHAQ== X-Gm-Gg: AfdE7cnL3vem3ZNlttMZ2Ms25v/1nwMJSzses9VfV7aI67Bfszx+4yEyFqUWCRof2wK 4nrg3P6fUs8MaL3zWyzB3FEeE4DltoRCGw8fxU26LihFlr6lNtMcTXggzqc6VKVhDrBEHwqe0Yf Sjcga53PFt6VkaAXnjVBiVU5hjiSBg7yk803ZtT/n3R2GOle4HmlMkD/DFargKHGCp1w5dIZ8zQ nXFjvTaucqzJOHuNgFh5mkSgN1ZUObY9Swj5IMUSPB2vby8ScBomtNTm7Lti1HZmmUV3RyFROHL L4B3XPhWr9GMQJ2VztR+UhqQbEkXUNwy4eMBalYaVamHGSttEaj0P926hgM+pfGenAKlydXt/+o BXOWuuviJPurZm/nC8TVCllggDuy/wqGKFalx7Nrzd38IP/hImXj5YAx3JuE= X-Received: by 2002:a05:7022:6b94:b0:139:f3cd:22b8 with SMTP id a92af1059eb24-139f3cd2609mr4579646c88.49.1782705566297; Sun, 28 Jun 2026 20:59:26 -0700 (PDT) X-Received: by 2002:a05:7022:6b94:b0:139:f3cd:22b8 with SMTP id a92af1059eb24-139f3cd2609mr4579610c88.49.1782705565801; Sun, 28 Jun 2026 20:59:25 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v4 30/77] target/hexagon: Add TCG overrides for thread ctl Date: Sun, 28 Jun 2026 20:57:43 -0700 Message-Id: <20260629035830.1520296-31-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629035830.1520296-1-brian.cain@oss.qualcomm.com> References: <20260629035830.1520296-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDAzMSBTYWx0ZWRfX+3a21tCC7taj VLFzTBfcaeC9bM81YkzA4z3rSvFYVF+MzJz0KTBqNx5Z6nIyslVlkeUBoY11CMD3vBWp8EI59aC iI6nJpZD9uRuWFb/pfH9QhV9uf/hGhAdi/z/eojJRLE0SwCQ6xjvWZfLyf6M0fl4gTmtZ9AdgKE uF/NAdNV8QnQOIwPpMIQZaprNdH6e6MnS5AWwvvDRmRmtac+Z6H7PDCJqBJkJ4qjCIqdZzL0P9u rREapgjex3Zhd1UQ3Q+ME6IjOavYqBOVfF8428kRcbIfLCb6zKTR9gu7QkVmnQxHgIa99/qjBEr 1g1gXiHNlADtbVo0LPoEbegcM4skodaWJu49z9uayH+m4q9usMGIovimaYG2nwNJlo0tEFBp6tr Syvf5IHE2p1d8zE/MUXldK8CCOlulklVJGIiXHSFHOSrzdyiShJNiiWRHE4GrywS9iBBeR+Uc4C D0FNZlPTzSXUJpepjkQ== X-Proofpoint-GUID: yS-rh5HVW-JD-ZdhlkRSaIrrogL6d_Vs X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI5MDAzMSBTYWx0ZWRfX4cgpCq8XEhw2 ZwWEYVideSnNLsvQ0aG4tFY7Sydc7E8HALV72iaUkoU/i879/JlvBNev+zzI8+9HQaZKBLDU05h MFL1sLCWF4KaEdzoz2bmDTp3i07saYk= X-Proofpoint-ORIG-GUID: yS-rh5HVW-JD-ZdhlkRSaIrrogL6d_Vs X-Authority-Analysis: v=2.4 cv=BdnoFLt2 c=1 sm=1 tr=0 ts=6a41ed9f 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=YMgV9FUhrdKAYTUUvYB2:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=t9Y8JitlK4h6-XB8aEcA:9 a=QEXdDO2ut3YA:10 a=Fk4IpSoW4aLDllm1B1p-:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-29_01,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 phishscore=0 clxscore=1015 suspectscore=0 bulkscore=0 impostorscore=0 spamscore=0 lowpriorityscore=0 adultscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290031 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782705906290158500 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 Mon Jun 29 06:52:23 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=1782706008; cv=none; d=zohomail.com; s=zohoarc; b=gGvd3t4Qxy4Jtv2tsWmj4pDuuBpXSAz8tZ9Wxr6XSQgNQt4Vv/J/o+UyC+vV7vc95eU9goMhuHEzCIPcdrA1dUWC5VdV8vB1GFFoJI+svUzCHeiKYCL8l0nk5vQ+ZiI5r+MMo3Re5a8x0wxE5AStsml4df5alsV0NoV/P/MCJXs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782706008; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=B6PoscSDyXG29CNCb4Pq8QIMwK9JlLX3rq6lyQY2hh9IUHdCoOhHxxdAyG8OkTZyJJf9E85J0GfWhY0y5q+wclqWwDZp5J70upBMe+RO8/L21CXDLa4TcpAVZG8GIBVucBdLP6h6Ay/w50Rv/Pd2vDtQwLWKz734BBvqI2xPBfc= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782706007992361.4484615243406; Sun, 28 Jun 2026 21:06:47 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1we39u-00021M-5a; Sun, 28 Jun 2026 23:59: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 1we39f-0001gE-6I for qemu-devel@nongnu.org; Sun, 28 Jun 2026 23:59:31 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1we39d-0006LW-Ft for qemu-devel@nongnu.org; Sun, 28 Jun 2026 23:59:30 -0400 Received: from pps.filterd (m0279864.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65T2cvFv1494752 for ; Mon, 29 Jun 2026 03:59: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 4f27pf47b5-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 03:59:28 +0000 (GMT) Received: by mail-dl1-f72.google.com with SMTP id a92af1059eb24-139b62317d0so12014202c88.0 for ; Sun, 28 Jun 2026 20:59: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 a92af1059eb24-139fc2ebcc0sm8367088c88.14.2026.06.28.20.59.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 28 Jun 2026 20:59: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= 2jO0e8rIhKLjhW5IYHunqKRgXza1ukawimSTttXDmgI=; b=LnbMyLz74kwb7Vhy CFww4cS3a2GImgE3jrVEm7MisBBSGbtqcVDylGHCT3iT6/xVI2DchlXM3RbyMWE5 fOU/9bOZzEpwdQ1OHEeHva+6iU03S1/K91GisRTah9G9YalLzKC2xKODUXl5r96S sQM/ze9usr0T6jm0XvhaT4Mjp7DjraSa2XkhIhzvG58bpnRMcuMy6SHzDOT5yh/P 9yKLJKW83dK4YCXQ2DBzIQZ4Oo4/H32wXEKlO8PEP3q348mJR7aY1Si+s1IUpI27 /8kyEcoq8TvapU5p1+lwIvuGwKsxAtJK9IHvm/GP7ih5wh2za+9+nD0jJmZXYZqn Q0c6Kg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782705567; x=1783310367; 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=IQA7YmzKK8JiU1RsGI3uUQhEjR5QVfc3IFzCtpLmAarjuFiNytsRsLHUr2uZnDVpfx zG7I8oEGHFdkv4O2y/GHaWMg5QkxHAbgF0iP7xfFMlZBNAN21myFFXxV8EjImdrFUBMd WyliOFyqwriXGeW+2HYjoMnGnwnv/JTOjox4hbA1GFsxOKt8C0h4XUlYWtJ2cM0rDpxi IN+Ws3QTVVmRWBYhEjNwKSk9gGYO1Wh+l5yBli/htjcjveP593V/5NTUuiRJxPuXvIwA 3Fo8jygs95GgdDKO8rtJ9/hbV0z1isaHT7SqwQwGZDPPDvhBe0ky2pKKBjW39SN5CGnm w0BA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782705567; x=1783310367; 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=LSmtUsvXU/5VdyCivtY/JJ7WMQS10J7vbkkENpczQAwwDlTBDCr7onZG/JzB0ZaNRH MmDhOBJQZSLOhCmzBWyw6PaOgwVkruBHWK6qWT/gRy5jhcU4Ymdlb4DpubBeuJMZK0uw OqRKzMHDzuN9kLPTDJJ7OVVAIbBfGBdC6u8EprAsS4KmmMnXFUiVin1UH7kniyY813PY ce0k04a2F8tcQYtEEyQEtTob18h2tkvPajtWC0/CsBn1HCQiCfcHOjFpamJjsDKDuv7E kzzjjODXekC9j6HGstoTMVgpoZPCAG0Tu+gneL90zBQ7ZZFHBIEDPaVCSn+wZ/4Gnuxt KnzA== X-Gm-Message-State: AOJu0YxRcbOS7goLkhlV3DmR17MJJizH+eF8mxKjqHlAV6+oyCsEKFlH L47ueCfXQR9eu+HMxOlzb2ZzkkYrnJspz0anJvCBYl+Tn97HDsgd+CCfY/HYHArt/msCBMvQ8G/ lRhuF5apeM+/S2QozXENTPfmmlHQDglCZhk0oaBQH8+twd6HiP7OP9NhisDfbaJVm+w== X-Gm-Gg: AfdE7cmqgzfVN2sV7Dxbu6zF1Gmg/c7EiZ9AQhf1KbtXIAMXrl8DlPp8kkxxq8s17kG lX8QxpegxDEIsG5QsAiy7oUwgTn99W3lDDrEa+m8Iy8cuLozs8rvUaNPS6zFGBvZJynyy3PnuNF P38ypiKSh3+KrQm14JjyCErHh1gz0IkgBHuxJLMeQoTuKcHCy61LaB7be1CcultDOpqKpgMDilQ RX2NMNyLHqTLcDfQiUSIjRkReWpOVv13mORq+U1+eK7PkZTxwuNzcFK2f3CoIyA6o+/gY5PSyku oSczGpRFMKGhVgPiktTi7Xc11Pa/tbhNn4XJFEwU+kfFNFYCfO4AybECXjnrbaISxB/16nbFlf0 UWbBH2AF6bLUPL3L01sapjYWdToR/l6ovrXdh2qTcspkx1a/oGUNneEMa2/M= X-Received: by 2002:a05:7022:ba5:b0:137:fad9:397c with SMTP id a92af1059eb24-139dbab9c93mr12646727c88.12.1782705567458; Sun, 28 Jun 2026 20:59:27 -0700 (PDT) X-Received: by 2002:a05:7022:ba5:b0:137:fad9:397c with SMTP id a92af1059eb24-139dbab9c93mr12646713c88.12.1782705566969; Sun, 28 Jun 2026 20:59: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 v4 31/77] target/hexagon: Add TCG overrides for rte, nmi Date: Sun, 28 Jun 2026 20:57:44 -0700 Message-Id: <20260629035830.1520296-32-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629035830.1520296-1-brian.cain@oss.qualcomm.com> References: <20260629035830.1520296-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: AW1haW4tMjYwNjI5MDAzMSBTYWx0ZWRfXwvC6fs9YtPv1 KD0pAe4uchuDr5RyYz9Ut/dV+QQNJZFyZYaI9UvJrRXrwkqVwrhhb8UvRSW4PNsHiSrTrJPnL1v v1jRbhCDvpEfxdVMERfslJNMg+rOpUw= X-Proofpoint-GUID: lfFFIbsjZ3Ksfum-OyAbzbVBn-MWhT0Y X-Proofpoint-ORIG-GUID: lfFFIbsjZ3Ksfum-OyAbzbVBn-MWhT0Y X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDAzMSBTYWx0ZWRfX1q76oNqzbuwa 15E2FHpqRxjTapc/oyFnuTTAZ1N1N4O+QcJ2IktmHFaIYejFE2Er3XVpolLXyssgDhznzLxraDU GPd+5EKMzl12UG5JNJf4EVhk4Vr23/YwPuwPbW/81QLqHf1D3QWI+Qu+uQf3jXREAmGnQ9ufuoT ejBhpzKvr0ZiCH4EwGD5qiGE6dlJ/E8VT030XAr+voNw8pWzFt1QA79nHKOVjPVdQcSGjXoNgfH 4w3zv064h5TT5UYO7/O3pzN3pYW2vSvqoR+YTc8RVDHYCMwuWVleF6GsrpHKXG0M3vCuPHbWrtj +AyQxavo4aj7nKIjQUaDzIHbGWFyhBH8MR5JNmFoc18rQTTp8VqLmIf/fvezlkXTnCXRdhdmYNc +USpnWX7lMAx5TWTgC+EKmxvKOnXd+mw/me2pB4YMK2LY964Y2BSyh5Yzpf8BGRJtqm3WLpUG0g 4JxA34DPGxmKcJnquIQ== X-Authority-Analysis: v=2.4 cv=R7Mz39RX c=1 sm=1 tr=0 ts=6a41eda0 cx=c_pps a=bS7HVuBVfinNPG3f6cIo3Q==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=DJpcGTmdVt4CTyJn9g5Z:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=QG2uPxDT_WX1JUO730YA: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-29_01,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 adultscore=0 clxscore=1015 impostorscore=0 priorityscore=1501 malwarescore=0 lowpriorityscore=0 spamscore=0 bulkscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290031 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782706008575158500 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 Mon Jun 29 06:52:23 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=1782705591; cv=none; d=zohomail.com; s=zohoarc; b=ccMFu9cXuB9kgYTKLZ8KqBxNihfvkulAMHxslIwii/aOACB4OZ5MjEFteYBEUhq2ApCujP9xP3XyWeJPXV2XJPXnAJXjo8QcczY3ACedMYFcqt3vQcC2aLMmNT/nbdmRvab4+98l5NeMbzUtEkwkzt+ZmNCZDUCZzr21IFAobUo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782705591; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=J6Izewl8mFHTkb43a2UVNZ05/AGDnQwmQbly4v+h2GNmEf45oSEvVHV5tvOVfIqJyxoyZMLc4mk1YEOzubfzaVXWPHw3T8BNtw71nZmRkccy4UKR9br63TUQrEnxABJIP8TJVbd6/zbb3ZIaP+a7fp3OQ74ra9iH4+gb23syJk4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 178270559186889.13838806988747; Sun, 28 Jun 2026 20:59:51 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1we39w-0002Ab-M4; Sun, 28 Jun 2026 23:59: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 1we39r-0001vp-Kg for qemu-devel@nongnu.org; Sun, 28 Jun 2026 23:59:43 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1we39p-0006Lv-B4 for qemu-devel@nongnu.org; Sun, 28 Jun 2026 23:59:43 -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 65T2dEB71515113 for ; Mon, 29 Jun 2026 03:59:30 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 4f279cm8wy-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 03:59:29 +0000 (GMT) Received: by mail-dl1-f72.google.com with SMTP id a92af1059eb24-137f3465368so2930722c88.1 for ; Sun, 28 Jun 2026 20:59: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-139fc2ebcc0sm8367088c88.14.2026.06.28.20.59.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 28 Jun 2026 20:59: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= ydI56hjj1K3zzOwtbWnVUpF9xkvs46kCuETc/C2W1YE=; b=mAcQCEYklxAyzGot 9fOSgF1mAEhyVds7pL9sVDLfGnCNPLbcvKCkh9roQfi5o0/rKg9sPq86E874SS7+ 1Y+TAIyZvYOD8nzms1b4FIBQbRmDEZqRBJAo10AhM//WB1sdr8qOAJYwdNJnMxUE 1vlnPgwM7rFO74nw1wqWXvmxdDsoQFjiHkb7ru4onId26e9j3QIW0G+IkT8P16Sn /BSCrjAM0XcuJSIYMWtX2NnJ2YhaDWJ4EH1vLFz4Z5i6cIhir8GiNLeR1SebJ/gh +7eresgr9NdNp54A+UovZ5ElxCpoc5vfTEv25ElY9jUdIaVO7+rp0tftMJDv588n 9AebSA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782705569; x=1783310369; 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=fUeyfwny7QN6ZfTMKdz5BPWrgOFjT8GsJES+ng2cbvfIUXSgULDeWomB4V5uyZ2151 vfXCgzSE4MAUDFWtD4K+8/243SeT6DioE4dbF+2/ScIJl918SOyb5n6YjOck2wIAC4xg S+eYyUn2CdJfOEvL442k4EK27J5BNKSZYqjxkPnl/ODzBSBnleMJEvCsEEab4DJIvNEj JnqjGNVcB9GrnpsSOfarBGnkeoUA6wyYfjEDkubsjfg1P8G8K66w7ApYfu0DTDtIxKVz u5MzcKho5DtIohdYffWg22bNNANhnFiJ+nGiQ07Jt90tEKBD2Ox/NWhVyOobSHwvxsqH 6HcQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782705569; x=1783310369; 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=ADFJ9ekoiD1GeeSIj+I3vNr/eqay7WPRiIcaLO8Hcn1O46kqAXxVlJ7KyNi/VNzEud rxUVx/tVCmim2iJCshlh6hnPdrcG5bqjxuo76M6pV0fmB98CR54X/kqJZhRlDfoMNVWe DyIIttgkfd3wyxojoPPKSh5eaMSad1VRQ4GsnjFdOxOXeRApDwkixB4lgCpRLGeAwdMC rZNRZrlLrps17DZNyMlaBXTX13YvqAK1lIpaNdpt/k/4Nw+hhYt639cmqN0aCnQvZOFH Re8lCgd0HUuLIMhiml7NnI0jzbnHT/vXpjU6DDqSq2V+TSgfJEMWQLifLCa3vu8sWWXN ff4A== X-Gm-Message-State: AOJu0Yxo6AqZOmYUAJgsqMWeuToz8dV6zdS7+3v+3dpyQJO5UEi8l0Bn KqTUh3icpbw5VouvCHHbYsgYqbuCP9S4FMrGxc0uIYAy+wgiPeFXfZpvcp5PPPM7Zh+P096tCOR uCgIRYxLt4YwTbiLyHYQjrHBGRWVjEfdmYiIwM4XuLk2bH6v+vVopDXKOhz08MKUMxw== X-Gm-Gg: AfdE7cmM/7iIyUJkIaW+qQ2QBj8365F9vTf9fj4GIuOtiDeFlYlrUn+9iJqFiDnz6rR f+EG9ruLRFZtzluWqU43E0o+Qj8ZF92Jtvb1v0IOyBrXOHgj626bMPwUP8EZnpV2/vaEZbbZK/L DPKX6lhL3ckoo0iI+5nzrFfmLvG+tgc7kngqJWGHn29QYrZTVpnBW4RfACaJfx4JELDJ9JjUjBQ 3jCwDiQaVZy+STISB5Xy5qm7VN6AH0YZv031ezSn9Zay6DMeQeFXG+MhwZYkKpNdnh1kH0SNAOn 9wUWa5Div3Ksit0uGg1ZnV4tVpIbcCkZXBk0v7iwxkLWo51Yw2TQoEXoIhm1BNaEGCpD+x9UYy2 x8u/lPQI4o55IIfBxocWlpYMmNqR/SaIXdEHfMN30bO4pqNvK2/mPYYfZfH8= X-Received: by 2002:a05:7022:492:b0:136:c77a:6509 with SMTP id a92af1059eb24-139dbbac287mr11183434c88.25.1782705569194; Sun, 28 Jun 2026 20:59:29 -0700 (PDT) X-Received: by 2002:a05:7022:492:b0:136:c77a:6509 with SMTP id a92af1059eb24-139dbbac287mr11183409c88.25.1782705568650; Sun, 28 Jun 2026 20:59:28 -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 v4 32/77] target/hexagon: Add sreg_{read,write} helpers Date: Sun, 28 Jun 2026 20:57:45 -0700 Message-Id: <20260629035830.1520296-33-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629035830.1520296-1-brian.cain@oss.qualcomm.com> References: <20260629035830.1520296-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Authority-Analysis: v=2.4 cv=evzvCIpX c=1 sm=1 tr=0 ts=6a41eda1 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=rqZXtLhFGwB6yMrbUaoA:9 a=QEXdDO2ut3YA:10 a=vBUdepa8ALXHeOFLBtFW:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI5MDAzMSBTYWx0ZWRfX5GZj6N3SEKfF QzgICKV+sKR3kVYQhAPWVpHM4yAvxDjCT5qciLkklSJn3VZbI8DE1hIdR8R1tLMZO7thEsmGsgd x9V3QoBvaOG8kR8aSfqW1PzshFY91jI= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDAzMSBTYWx0ZWRfX/eqVO6nYic3n jD9uwDT9MgQjDida3sPNtyoFUiTLr8OmA22m15FnEVIuHRDrVwv1OLnEvH1A/VBtfWCB/abjjN9 ekSaW+JVm9hZaSnHUAoKsOFEZDOEYCc0xp8ZkVdd4/tQwdHXwwR5xEiZ4Et+3L0VnehDX4vzGRA qm6/r5ZhlC1fr5fqkex9GXyIQcgWggk4i/udBUSrzy0lEmc5eWqo4TGQv5Mhbw9oH4dGWwPlZmG BZq+ppDynBmWwx1oFF890NyY8Nt1nXbumwf8sKkw0J9qn+atmN65MNtySJoHohSlOAMSMDLRMtq l5x4mjcjWaPHeh4ZT69M33j9+DZ7H+GjrXUmMlTjO/JpMwitafn+H6lz8F6c32NR9kk88NdQ+6k o+j3FbIXtt/sNpmXtt1563roJmla3u+inkTsh8MwkrIx/35+rxf2RKS03wA/i0ky1c+RH7BxZ1K uaxYm33iLqNfuRBpcoA== X-Proofpoint-GUID: fBJSAKRVD0sCgYf647kH71ENQatQsUM8 X-Proofpoint-ORIG-GUID: fBJSAKRVD0sCgYf647kH71ENQatQsUM8 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-29_01,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 suspectscore=0 priorityscore=1501 spamscore=0 adultscore=0 malwarescore=0 impostorscore=0 clxscore=1015 lowpriorityscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290031 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782705593413158500 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 Mon Jun 29 06:52:23 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=1782705842; cv=none; d=zohomail.com; s=zohoarc; b=IOLkhAkJoNiMchZxYpo8CdveofuLa1cem3nrYSAGBhu03zAfqjsIfl1PouluEt4aqRa+mnbDTjvnUKFpZV7gzn4MGABdLX2hj4Oq8FKuRYFRFJiz7FwHTfzl73hmMAjdoQlKyN524AmxH8h+UnVU1mfMi54VimjHTfw4rIeToI0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782705842; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=d0qioUmCq53PsozILYHibkEx11ez5EYKF81RgKbcI1izfBzG0p5DbHrt0VixYe8CuUdvyAmM0LPxBAiQdny1bSu73hE2VcQ0v258thxujwoarb56I4YjLBMOeiuH//KgrdFKErmwXv/vw5wUTPEGov4tEBDm3JaMAI+C2odSAZ4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782705842804719.5100361278892; Sun, 28 Jun 2026 21:04:02 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1we39z-0002Wg-PW; Sun, 28 Jun 2026 23:59: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 1we39u-00022Z-86 for qemu-devel@nongnu.org; Sun, 28 Jun 2026 23:59:46 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1we39q-0006M8-8K for qemu-devel@nongnu.org; Sun, 28 Jun 2026 23:59: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 65T2ctfC1545696 for ; Mon, 29 Jun 2026 03:59:31 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 4f27084b0r-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 03:59:30 +0000 (GMT) Received: by mail-dl1-f71.google.com with SMTP id a92af1059eb24-139b70ca7e5so5903863c88.1 for ; Sun, 28 Jun 2026 20:59: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 a92af1059eb24-139fc2ebcc0sm8367088c88.14.2026.06.28.20.59.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 28 Jun 2026 20:59:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= xnSW3oZuwood08ngSSOR1Dm8XpJbybm5vIaVrHhZrro=; b=LdpjrWDbrDUXzAGa X2SvYYQEvk49oTXCYGUY6d1dnnHq7wlcNwe9629IGHHtFBe7s1uH9AqDkRZ6546J KXJXQkhIPSi/f4AmMNWKRWBEDAPv0/c1sxBHlqEPBjSZQCnSNqVZR7G/LYBAwUPi lMsp7e47X5rns5FNrhZpUyvgsGnfz9KAKvhTAdZlFvHPVYNNSmr2Y1EBbAJkjnUm jVqjkTDXUkrA+BpoaHrWwJN1IBpUSE6iaKuEhKJ49wicFE3ACkueE9wE7u+GbZ7F 1cMlspHGM/I4BGgK7X4U+YAkiSXs/atSCQOfo4Jo+zloDBhfVNqRL9lV8E+Z2n8G g7Y35g== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782705570; x=1783310370; 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=IzshDc6Y6yYElydzS6e7y3e80u/ul5RKAW4YWDIkxhQ78GrjyRtO0KLWWRzQkBG0sJ CyFLtPUdSdFyjKXhUQ3WYRKpO6b1ED6CypPiGScGb2xnD7EBkebM9SJFCDGsiCOq7IFU qJDzA8kaq4hn0irQ9lifmJpN2qcuCKhL4StDGmG5p+8nE5T8h3ZuL4DIpx56BFdM+zSy P3KYWHfTG+ndXkNQHYD9Foo8RUB7b4I7F3U5LxsCUBhODs8OJfgQ5IMTL7zuDCFYYTzy k4F6ppQ4wv0sdJ0RrKKe084yYGFsYdpM7yO0JG+iZEczgl7tICQhyroDPUw2GR5DlRui t/PQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782705570; x=1783310370; 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=I87pYRO7eIsEVOAKJoYJqc5KfCZ/NAstG5MfasvYjFlVFTGr85O1XLwO559D3+m+i+ bDdb9tnK5LZqtY/FNz6i2MHP1EDQx6YmEMxRRFp/lkLSRPhhc8srvfz9sK46h7yit+4v fDxinj7GXFBT9fQVmMSnYsy57B8q38d9c09MdSkCROfXBMjwWLKynv4ZE3Jg7hbnveoV XS8L+dijuEiKhI8AE/ca7fqsOglezm5KsPv1P6H1T7zbt6WvPr4UzQCPTJ+zCJcBVJ46 ByNP66A7uqnjsVImPwAo7KPlpRPO/7FU0VQugqSiqXE2TFXeWJ2chYrX/Ql9oK8F3faC sHyQ== X-Gm-Message-State: AOJu0Yz6TEvpmH0UrxslpdUHon8jM4E6xumlRYYHVaCYeWaQKRWJfzOp HABEQisiFwcYvAyDAzDfnsDRFkTGBrFa/3TxGYv2uHW3IdV0PPvP3dSgMCjXl6FFvGmn13mAKos NMuStvctyCZLXpjRWTfTHLrxzyqERbGu7FvrRh5mK9S8ucmHdeU/srW7T35sXvCsnlA== X-Gm-Gg: AfdE7cl/aqykPzavjXPCDSDRWMXnElTXhnuXpPeVKaJO/MbcbROA5wCTaDhNKcF4ySE E1kYvMRSR4QDiyQkeIQeTEXJLV6aNo6SF7Hv3MTW2LYkTVyjFfXlOkF6hGKepOelb8VgBLejEfD KvGjGYIyTJvOupJHIfOJeZx2rd3+/BhGP7VInMugFFMvf43KoUVYZ/pqpuYNbPdk/BcYD1bqTRY EYJbnOeUqZIu1BDP9+7glCD3rdhj46/PbAx4MA5ueH37+HUtxZNzeV3Ch6M/VPW314NcDfEijkc Ru0Nr6L9BloP06vHVAFCT0DECMBhClDsUebBSix72eLUPF6Y9UShIG3wjYBPGTecNiHNCdf1BQ+ HvS1dF8zJLJtj7edFxq+jcXmqARclxqyNsF3tm10NtZTn/yuJOyFday83hFk= X-Received: by 2002:a05:7022:318:b0:139:89ad:8de6 with SMTP id a92af1059eb24-139dbac9ceemr10949916c88.35.1782705570150; Sun, 28 Jun 2026 20:59:30 -0700 (PDT) X-Received: by 2002:a05:7022:318:b0:139:89ad:8de6 with SMTP id a92af1059eb24-139dbac9ceemr10949897c88.35.1782705569514; Sun, 28 Jun 2026 20:59:29 -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 v4 33/77] target/hexagon: Add representation to count cycles Date: Sun, 28 Jun 2026 20:57:46 -0700 Message-Id: <20260629035830.1520296-34-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629035830.1520296-1-brian.cain@oss.qualcomm.com> References: <20260629035830.1520296-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Authority-Analysis: v=2.4 cv=ObKoyBTY c=1 sm=1 tr=0 ts=6a41eda2 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=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=gmA5YO3DfmenxuRff1QA:9 a=tsLLKIjAKpJP5df9:21 a=QEXdDO2ut3YA:10 a=Fk4IpSoW4aLDllm1B1p-:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDAzMSBTYWx0ZWRfX3x4k7t3xZhRQ atQV3vVo0ycnIUHBTqXollZmUoBYre1O4m7LvPzQRTxI3d/xUgfjBHVoYTGkscwD6hJDkpjwT5A fLoPUUeWRRfN6gli2cZ3zf4pZTg47F1PF6JzCZzXADSmjnvJsGQwsTI0JIOy0u06qt4TeF5DAmM Vj/DfJff23G2ookAdAo4kLsyfIOkwjHxUc0n7ODJfVgxgwvOrYN9M0E3mpJ8WOt5FGRo3iicHPU vhOHqXI/HbnseQlh1A8DUTLAfLDdndJoTcYVWwZxEMskUwLGm2J0R/grCJwjTprkI4QrOCYwidG 2k40fT9iC2o9CFu/Sg8UjqDXuC4mgaQ4c4Jfy7QMGHsNJZ2FBC/PuENPZgzsAuIekAFR2uGml9X gmj2TnUpsv7CuJiZS48pX7Uf16rmO59rVmCQVNhyCkVJXEO/bvbiSQ2XepuY1zb7tj3v10Y1dGo oi6O+9FDCpNrCVSwPCg== X-Proofpoint-ORIG-GUID: UUFCQ69KJclWLaUvZeBZ3u51GmUN0d2H X-Proofpoint-GUID: UUFCQ69KJclWLaUvZeBZ3u51GmUN0d2H X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI5MDAzMSBTYWx0ZWRfX3EJTOQ72ffTV 0FGzaKgQEty91XR8yDykDmy1M5gpHjQB64x1K1oGUrDf2G7MiQ2DsLRwqJztDkWu7DgQ9qUV6dv SNNpULWCrNUSLSjVzCInBF6OlEJ/tLs= X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-29_01,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 spamscore=0 lowpriorityscore=0 suspectscore=0 impostorscore=0 clxscore=1015 bulkscore=0 malwarescore=0 adultscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290031 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782705843821158500 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 Mon Jun 29 06:52:23 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=1782705820; cv=none; d=zohomail.com; s=zohoarc; b=CzDKjATHE9mWx0MQlCIWneiJNtT1PmUMUW/JrJF54cjmC0IhBBUfGrpKgt4SD2EG6su7rHk2ah65/PhbPZaqvDKp4UDekX0c1+zi3SbsuWEoYUJX5Xxu0yEUQGQpHLvtIXAR6pP3rc9Jyv9xfgNViX0MDGki9UIl8aj/P200Ehc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782705820; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=cplTaIKAkaOQ82anVzWOMI6um7fD04MU+DBI5e1k2UsASv1vRZ7/zWQUNvnDW5uxqRKYYGGf4FjIhdpLmtbTxbpehGr9D+zjPrKcmyU7SOKmlLpoI+gdgRvMHPDUht7K7h7y9G0MpfcH7GkLDI9HrNqlD6qECoRScHzlVTyZZPM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782705820239315.54789637708825; Sun, 28 Jun 2026 21:03:40 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1we39z-0002Ua-H8; Sun, 28 Jun 2026 23:59: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 1we39u-000239-Av for qemu-devel@nongnu.org; Sun, 28 Jun 2026 23:59:46 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1we39r-0006MM-Rb for qemu-devel@nongnu.org; Sun, 28 Jun 2026 23:59: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 65T2cnuF1539263 for ; Mon, 29 Jun 2026 03:59:32 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 4f270a4ddb-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 03:59:32 +0000 (GMT) Received: by mail-dl1-f71.google.com with SMTP id a92af1059eb24-139af2bd2c8so4831513c88.0 for ; Sun, 28 Jun 2026 20:59: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-139fc2ebcc0sm8367088c88.14.2026.06.28.20.59.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 28 Jun 2026 20:59:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= dY/1s85TBUfEZ6DKxNXbQLtO9YNnO553PDpX0fAztOM=; b=KD9GkpLOzfVifX3X ReRh9svH5WnB+3ByQOmWFWEzQASA2Rs/2dyLfq6mXzfwmJJvaVUNCNPDqOg0rl+9 arzIISyFA0BgBmcyZDO7iGVmEt11j8it1E0NMcx2FQx/LkzkBB4qbZXdSXGgtLP5 aEBgiaWfLMW7phkAKQ4Y9TADd+qI/zXCqQEycB0wAZ3MMQZFOe7TqGTFwhICrUXY 7U47tAWBxMDucpWewDNei4cZipjvc0SdnkQ71zexesttIb5J/DLXg10yS2RjhGkR hEBCzEBoTV1yf1/vJM20NPr6VMs0+FxgwAOCtg8U1PtjVjaciER+wW+42gE1M8gP Pm/fkQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782705572; x=1783310372; 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=GeM4XDVzcE8y+JRdstoOEQeqmPoiAKsAEDTT0Ia7zB9GPRgTXBcvrHGtKAtKlqC9YI SsXmTLDQCdevc/yLf1mR5L0rbSzzCtl+DhHnCLV0g5I4h27CA+vK5tlx8gcF35qLuJYc h3lalvYG2KwyoyXQq8F3b5gnHqrH/FOAfiO2s7HZKCX4qCGtvaWH0EE71LDbQz15DuQ1 0LokUcdmb9eidx8q2a6nHSBK+6NDWF3MZO1mS7JhUA6qY6FlCWuXL7Bsr5I14SfFFZby XcReAvMLAiPEnHqCu8kWnM9/kpOPVm16UDV+vvgE+fo+S/kTF1VTtCD3XE5dyIp+1YXG PVvQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782705572; x=1783310372; 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=hZtkrDf48erZjOaMh1aZJPdltX4hnn5uYXK+4iYWxyiCh9y4BJm+lTjodSyffJVjjC XUUzBG1vOsshy/BdXgTqHWdm1HhG/XWiHlJ4v87GWXL2Jo41s8/NdZGYIAQvEA/85Bpd 8tKg+NdwC4ZZ+SSWBJpFH2pPY7UCR+ppkIxdz6Wng0AZtPGWY6QqswpJOIMBAZphzrnG iFOc0H9sW49DKGDGso7rjl69DUqTFMzGiRJ4lnir+WYTf3EnTgpZxRHQBxZ+2GdubLvy 8FVMhWgUY03+3EoZ0aKSYpmPDx/PVvAlWwaIDxTpHqSHt/TkLTZxki7LYJsmkFoebEDF nErw== X-Gm-Message-State: AOJu0YyKRgP1Yw+f0VZ6I/hVfbzJ+6unxS+LiKlFAzEZlR/qRcGu1EFj p9FpATI0x1HDsRFqu8F2/AC+8Gj/XCCWfX8jn7W9n28qMALBkNq64QXWpR+EMoZavh9az5xtuTt Mg4UO5kAK6BHtma8IuvTd5/+dROswf4F+tInKtfA77aeC2fCtZbtrSiEH//2LiPWFxw== X-Gm-Gg: AfdE7ckdXKAovnI4wC3Hza/MCBJ+BReoO1SSE0DhF6V2EsdsZRpqU3BQ79SaVV+/o7s pHu8pT0Z9RJXlDTgnWVxdXYvuBdgGXSGqohNNibi1l/q/wqLEtHWB4tzpfr3/RJHOhDKsFXQLFF I5uaNjs3V1LR2cD2I2v2tOgV7tuMehXTEIxwFfJYgDG7cxhvy+d8FhS3ED2fj2rOC7bFUG9TXJn xIbjTB0XFBRCHenUWpQ4j9ROBlXi8C9q3Zb4ro7A28qjaXHDIIAYO1ks6a+/p8ci7bq+FarM/Wx TqLQOoUlph4NMpw2hKdZ9tEEWpn3b0H699iEcbVpMIoJY2w+BIQT3MO/bE0+FtOXF8MOnPOb/xZ HAapeAy7PXOJuc0GxJNd9/AVLuEOQjnoTm+iD8H7l+Gu3ID1THPyWQcpmdKg= X-Received: by 2002:a05:7022:923:b0:139:ed5d:7564 with SMTP id a92af1059eb24-139ed5d9492mr6331437c88.43.1782705571833; Sun, 28 Jun 2026 20:59:31 -0700 (PDT) X-Received: by 2002:a05:7022:923:b0:139:ed5d:7564 with SMTP id a92af1059eb24-139ed5d9492mr6331415c88.43.1782705571341; Sun, 28 Jun 2026 20:59:31 -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 v4 34/77] target/hexagon: Add implementation of cycle counters Date: Sun, 28 Jun 2026 20:57:47 -0700 Message-Id: <20260629035830.1520296-35-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629035830.1520296-1-brian.cain@oss.qualcomm.com> References: <20260629035830.1520296-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDAzMSBTYWx0ZWRfXwhjJtOI36fTO y42uFXnXNzYpZxB8vrYll6BLr2mrPtgi/JppjSX0v29kKTVVyX/FZUU+NkM5z7u/vEvlH4MVZJ1 Dym6xBTifeATo0YfOyfSEPVB+S5hysHSOhgR2wRllUqPxQ2alBpHAx4G7GJW5EkjY08KmdX/cG3 gvnnri+LTm0Vr54+RT7iTvw9hwNpRLSGvqOaRJE0GR5WjpAw6pDiGhNnWZsH4qcgNGLRM0LzqOu mVIcIkEZ4rOxbJYtOgce3lIerA2jylqNkAsOJj63p7S7XEnijlyS0sQIsLfE3ZQ1uoknf7EFy3R b89VGZH8CBwQEV2NqM8lgfc0m/UBwVVkverJ9ndnGVhdOfPplCm2V/LOYcHhgtuzuPHIbyimWqc vj+omweCJp0uBO+SnZqEvmFFXGKl8uWeWIxweX7RzKFSDwlpq8kpRUq+X060VSYiZVLVSlYuQiz cvsnhs7ezPbnNNVxHkw== X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI5MDAzMSBTYWx0ZWRfX80az8om0Gugj EOmjPq/2f+GmsZT9NODyaB9fQX+j+H1NVT4IaEzv6u2cAMojIIAAoOlbkRUpyC9aLsnzrtsNKtg 0rrWd9KHNhcknlJIMgZU+yGAI41G+VU= X-Proofpoint-GUID: MKgG8BAMlq1KSrAFNLKPdacoAOI1ZtAR X-Proofpoint-ORIG-GUID: MKgG8BAMlq1KSrAFNLKPdacoAOI1ZtAR X-Authority-Analysis: v=2.4 cv=Fe4HAp+6 c=1 sm=1 tr=0 ts=6a41eda4 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=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=Bw4caLd0n_0OF-yX4NUA: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-29_01,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 bulkscore=0 clxscore=1015 priorityscore=1501 impostorscore=0 adultscore=0 lowpriorityscore=0 phishscore=0 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-2606290031 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782705821822158500 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 Mon Jun 29 06:52:23 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=1782706005; cv=none; d=zohomail.com; s=zohoarc; b=ltCxxrQU7KbIPkqxvvVwrzaYIZJn1Vvdp10z5FCgbTR+7ko7Rf9TE4whpncxoou3V2H9rEQEt4qHV+0c2Gdgu3otcp1LobzdgKxulQ2Q+PJTQPiCNUb4twk+lcMdJd7wo4LQLN+YDfDAsU3fhc3EnAXxbdP78Gp669MPDQlhvzY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782706005; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=F8RDUfEt3HEvXu/BA3sQp5olpKDbVMDvQfLilazCck02HnJdG9xONFyB1loVI8zlRDdWV4diIZmq1fNkv2zQckOH5QKfSIZp9qLq9bTHT34qRXYf1ZFf4Rxc+pl2pmPwgWYo7I7N90774WJIDJM2F2QB/JvktQhixbzBtdMJOjM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 17827060056371018.3657978424055; Sun, 28 Jun 2026 21:06:45 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1we3A0-0002Yo-DN; Sun, 28 Jun 2026 23:59: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 1we39v-00025s-KH for qemu-devel@nongnu.org; Sun, 28 Jun 2026 23:59: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 1we39t-0006MS-CL for qemu-devel@nongnu.org; Sun, 28 Jun 2026 23:59: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 65T2cmBu1514032 for ; Mon, 29 Jun 2026 03:59:34 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 4f279cm8x8-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 03:59:33 +0000 (GMT) Received: by mail-dl1-f69.google.com with SMTP id a92af1059eb24-139fe708181so1159091c88.0 for ; Sun, 28 Jun 2026 20:59: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-139fc2ebcc0sm8367088c88.14.2026.06.28.20.59.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 28 Jun 2026 20:59: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= MzvUFKvc+sUpWvc2016FnOxj5PhtBZkyxIiMWx3S09s=; b=a3IOOFbdX8QHqyGt vgLST8+N2+9NLAfm87uU2g3lFrfaHf+kKJLqom61QLT2OYQSJlii5eUUt9kQZGM/ ChBRWbU6/IoBWgDoNLtG2CAMe0paVCzmTyfSnI4xxPZ8mVIyxUtTAwFEBCWD2SqD scs1iKlpKrD7pOblx+8eA+MKtE8nXkQHm0CuCsChdI0JRCbkMeG2FvZ5r9+XbiEP lV+YUEcJaRfI4faH7+OFVMtb5iVItGkOImtpvSBJHuDfXOqkjxvm4hbsEn4WTh/C 661RCB3GbRz5UV0LHjH+lEZv7sAc23Y0Y3acar0l2lYMaudd8BzgI8m9P2JbK3mP fyZk0Q== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782705573; x=1783310373; 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=H/BMfyyfMsTeQjeQMuorTl2KLAViMCm+rXetswsOMypHwhfL/yXgnp6ByJpqXD4JpU yUsRf0l/GRbvxBDChNIDf2YjyffwvZnTrfsm//48Dlm8nVc1V2YlGTQiFPfZuCB6hvJX kjF7OGyrFN6Bl0gB36cY84xpPK3AvPG4E0dm3T8I5mQeZzxdEZzflUdWN0bYBEIB4fDm fi2F5sn17wMIbZrTgRkGUgqac64K8zOEiKVitFJBvbp1PlyNxx9VhlpBsd1NofoQ6Wx7 UvLAwDVqtz6tc0Gkf/Msbj2zGfXmBnwA5MWt9awRHUn6CO76aj5Gb4BcP/YZfPzBFGNb 062Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782705573; x=1783310373; 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=j/OJssO1leBHvJIMXEOZzeJNq/vFxkQ0n+ussm3FMkr/Y9O/Gu9dP0MVkJ1xvcunaR kLMhqOl3CUFTaLIXqucqKRj2Ls0TkQjrPWtveGTvYrH/9/g9d//3k21vvzrufWCCCkoP bZbK7pSa+jZhypcdI8gymMbCfKmBtQJAHubYnZ0EvtgJ3rCG5UGOeOiFnTsM6py5Y0Qu Fw17MP1PJWU9f+zVbf32YSq653l3V2Vh8BYimqmviRQ6Hmk4r9LEn2/MuaxZ6wWKU8MG DIJvkq7YnCjczAnBvM4XqM5CTVH0l4TvBkjAJGPYS9VtCZ0w62MaLXaPW3YkxCxLRhGt xgWg== X-Gm-Message-State: AOJu0YwrX5N3lfMqc/hhe5fe7P73VxVJb6wU3bKN/RqOK31e0fCFGvY8 ixDnsqMuwj2KAlUE+Dpbnbhwd15tfRlj+zd5ASKeaw7aKebfF3npFY5K8wP+YNP2M38UeKjJrpp g0VWFq1dOsuuDvOs3Noh9nR+gW+rWqY1KLPOJHC+Or4lCUqR067HfAfV9i5FN1quM8Q== X-Gm-Gg: AfdE7cn4lts1gECN8dG1kntIVoUw02kHz8Ui7AZamtHMq7h9WEGpErtniBS3H67+W/o SX3Tl5MR1PJEeeHmw/jZR4c3Zut3ZPuylmvCsXmmqBOrWyAYrygnr9uKSIhFt3eXryDtMGnWET2 63PMcNr5OuwuRon3JmYVL5oSey6hn58csGtRbncW+vaKDmM6SkSFG9QnGi3T1DnkTNdnzjApU0B a5A+39d9gPGJkO3m2JJwjIjTaK6K8hxbrqhSuYSnXMY2q7osIGnXzkVXScI2y+CqFmxop/ciDrv yXjHv021l2WuVHURbhPwBs/hgjEI/1mm/h0L5YUUapSV7b/I9f6g2FFghkMvS5bdOl0RwbF7j6w Q8gRmixjn5FkHrVe7BBRxODTJFx0IULz4Kgx05fqtSnvCavbD+brllGDPh/0= X-Received: by 2002:a05:7022:b86:b0:135:578a:cde2 with SMTP id a92af1059eb24-139dbac7ddbmr12472105c88.34.1782705573277; Sun, 28 Jun 2026 20:59:33 -0700 (PDT) X-Received: by 2002:a05:7022:b86:b0:135:578a:cde2 with SMTP id a92af1059eb24-139dbac7ddbmr12472086c88.34.1782705572720; Sun, 28 Jun 2026 20:59:32 -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 v4 35/77] target/hexagon: Add pcycle setting functionality Date: Sun, 28 Jun 2026 20:57:48 -0700 Message-Id: <20260629035830.1520296-36-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629035830.1520296-1-brian.cain@oss.qualcomm.com> References: <20260629035830.1520296-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Authority-Analysis: v=2.4 cv=evzvCIpX c=1 sm=1 tr=0 ts=6a41eda5 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=_K5XuSEh1TEqbUxoQ0s3:22 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=OF6xqQKflNrgTLtdKXcA:9 a=QEXdDO2ut3YA:10 a=vr4QvYf-bLy2KjpDp97w:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI5MDAzMSBTYWx0ZWRfX3eU4heX0RSzQ WiW/p35sliTuXoIO1aewqnDuUXqaGLnopYdsxCPhMWQWF1llsipCBZgRvnDAyg9bldVQesvh3aq cS8QjUuz2Acs8s3ReCcFUB3NJkLaM6s= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDAzMSBTYWx0ZWRfXxvIKw6xzxU8K 3giIJrO4/AsGaIvuRAn/chmOyEgAse4KYr6ml4+9goBg1sSMZnybSgn4FgsWl/YwPaYMr3Jqxuw +33pfW9KyVui7W+uwY+CqYGEFsQRkvh+hzMTRvrthmJUzhagAtVbfIR6TZLlaIMAO/S83aKaeFs u1OpqEeO6fdMeBmTxxJ4hpnpYwv8EiDCAJqKfkeEgJJ6KG/KoHsyULbbzaRMxhGt83v4/bUO46P tskxglpEH4lNcUWfdl8i5P5hyhI0jMLXy4RSwqAxPmc9jvxUEFA1xXDihmU1YL9QHVEgw8x/A2v roE+nmWwsdSKU7CDRbiWWQEy2i0x8S4oeMotUpdx+y6NZezxkDSiz3FfjZGwP9ff0Gln7URx3UN eQorhhA90WR7SWISKafnoTTmdrhpgYdNNmvWq4vVgE4Ko921UyTKxaP+O5qlmeZTatPIMd80xPx ID4+h6z3LcOQKlOxKUg== X-Proofpoint-GUID: Ds3G_7ldjMPu4yeckPasnFobbpoOzb0g X-Proofpoint-ORIG-GUID: Ds3G_7ldjMPu4yeckPasnFobbpoOzb0g X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-29_01,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 suspectscore=0 priorityscore=1501 spamscore=0 adultscore=0 malwarescore=0 impostorscore=0 clxscore=1015 lowpriorityscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290031 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782706006640158500 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 Mon Jun 29 06:52:23 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=1782705804; cv=none; d=zohomail.com; s=zohoarc; b=Xxf/JSV5oJSFQLZQk+g2fhw6c0TDAH3I6bC00ui5MtG+P6Oul7Xhd1k7TLc8JZQOGk4q0a6bOj9+l9S525vXuiS7a9vK23H+Fv4ea3BCJMc4/ZFXdL1yHZK/xdjOHFSw9CaIUXthFE8nqoBP86dYKchp+De+yhB38OhKP/VrNHU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782705804; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=WaEAFWaZ7HsFiFD53Rm1dFgi9tJscN2sh190IAM63kEtzswa9JBRHc5iFCXBGMr0A2UvL+cnBYGJttlvYU4Ju/i2SALyVaKDX/aILX2PhcrWKp9F4c1iqqjttzh6Ilu0bDvthYOfT+6brDPgr1ge8WE5Rl4gABz3l4hPgV1MG6U= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782705804431670.8116689004768; Sun, 28 Jun 2026 21:03:24 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1we39z-0002Qx-32; Sun, 28 Jun 2026 23:59: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 1we39x-0002Cs-10 for qemu-devel@nongnu.org; Sun, 28 Jun 2026 23:59: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 1we39u-0006Me-P9 for qemu-devel@nongnu.org; Sun, 28 Jun 2026 23:59:48 -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 65T2cfP81503812 for ; Mon, 29 Jun 2026 03:59:35 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 4f27t7v834-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 03:59:35 +0000 (GMT) Received: by mail-dl1-f71.google.com with SMTP id a92af1059eb24-139871a52c2so4054855c88.1 for ; Sun, 28 Jun 2026 20:59: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-139fc2ebcc0sm8367088c88.14.2026.06.28.20.59.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 28 Jun 2026 20:59: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= RwPVW3CwUQS2/lnObn+K7hYU+7Hhy6ohC8oxC7MFC5M=; b=AggeNnT93sGlExb1 AwRuGR5g+RDwJ6vn2Vd+xfLYov949i86hZAGYsXzexUXr/4IDcI9/OCJRnE2DVim Duw9+uXqFI8EOsQ90lhQVQZ/cqm2R547EgLRAV/UA2eIy1BPxTXgA3KRw+KbJ5m7 fPrqxkAaKS0LSOtkLJtatRJ4TJsFSPNkfUTDQBAM0K2ThWgqX2POk0WEslQjd+2I BmwR16B2Qt153zIsFetfrXt/MOwRj56AU4+EBEBG5sOcRPaOfkj2n8RhQN3Y5BnN rS7i+w4mbkrm9QEpPLw2VSRsm+Jbd0ki9b4iKGDeh5gijK1+WGzGoc3ThEvZWMY+ yy+ROA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782705574; x=1783310374; 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=M/Cz9G622i3jVdtOFNe51BFLIX/Sfehx4bEkQQNqQkPv8tEj88mRVh3/bFCywC9aaH Obzqzt6xC7B64vrWyychTPS2cJojk8aODapNW5fvoTw9mlfpNxjjb+b5zih9VugHNHMd ilwI7MO+G8mWhRER7+EM0maVneInX0LjFaPfzgB0ai3+iddC3gECoxJXoLoxo7wLw41K QpgoH6ojplsE4vI4qP1XFw3FXltIqqX7epx/X71VxAb05X08CPUMZCZ14h7FuqO9L4cB bbPvMR+Y0ZfjAfDdF9BzJ6Q+v0fLVdqfGOoH1Nn/KpckCXcMjBzU0rk84rjuCwWgE98i m2Qg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782705574; x=1783310374; 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=Q0YBX/BYMorFC2nod5/VYFHEgSVkKMLRfE0LVzkFZ4M4EsJuePwzVkJH1VqQOoDkwl tkzB5dJtr7RslKmpvvo7p/+DvEH7n+y4AOq2UfqUPebKNw9aTUBwcSUvhRZ4l/mJToxT M42MdNX4neZFc4tIb+xWOJo65byfrQ6sIzbUI9Pbb9D6OMHoubKYCD5zS9D9D2G01wqn smzLh8pFZkfwTsnmN6YbjJoA0IGZJ16y6RMGhEhWWswS3MxR9x+HdndiWiXsstt7ZTat 3hBe36MeBxIEWzy8FZ7Zfqlfb/fQHt7VygGAurZ/aYRUqslUrR7DLJSm0CqjwJ2jPO1p xO1Q== X-Gm-Message-State: AOJu0YwPk2kSH33QJAIo1nQtnA6FIkgYgE+Ag6K1pjrbAYJJ0zWF3U7h WxC4zlFMY9BleimTERaMlp1Jzy2QQWRxzs3oVSFPzGhPsmJ7YqV655+I5kMFo91ziJr7UsqsIrS rp5i75Kad+s/OIZknEkBZyDyFruUnVqy8fn+f4xcY1w9RxSydz80nYjTV3E7o12mzdQ== X-Gm-Gg: AfdE7cnpajjx5+d4oPkrSlbUOB3DpCMb9o3QqpRtsRhCsb27ebvuQ1wTgtTnrFRe0Ew L1jrRq96M7x2Tm18bbGueBCn4MJUp23kAOUwB9ahWDXY7RkbJplRbSBvDtcywXx8O+B/b6XCD9G VMqYj7Exu4GmY9KCvUkoCagP5tE/N2h4LMAalyAb0+e9p7oM+YFWQrUeCWNpleCckiMohDKjf6l ohJlFx8pASn7GGavIXAGimG8XglgInk11NlMDB3DWTHgX9D1tgphC7eqtHIteWTlaY8ymjhDH1h M3R2rCLJkc6ZtU5zxByXZlYgHhzOjhb9vG9XewQDE6jTJ+fpS1d+5pOX45Lu/+/oE3ZHIsVSBp3 AgCc7IArpaTIne6UcmwU34GKcFvBmpdArjj90Q5Ae/ZzY0WedZ8PBMlEP7Qc= X-Received: by 2002:a05:7022:523:b0:139:ed5d:5ca5 with SMTP id a92af1059eb24-139ed5d5daemr6454331c88.46.1782705574396; Sun, 28 Jun 2026 20:59:34 -0700 (PDT) X-Received: by 2002:a05:7022:523:b0:139:ed5d:5ca5 with SMTP id a92af1059eb24-139ed5d5daemr6454318c88.46.1782705573892; Sun, 28 Jun 2026 20:59:33 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v4 36/77] target/hexagon: Add cpu modes, mmu indices, next_PC to state Date: Sun, 28 Jun 2026 20:57:49 -0700 Message-Id: <20260629035830.1520296-37-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629035830.1520296-1-brian.cain@oss.qualcomm.com> References: <20260629035830.1520296-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDAzMSBTYWx0ZWRfX7iCSXDz8tQit zQYgg7zvhpkyWTPbtVKyshMjT9P5iTV1C2phG+HppNAQVp18keHPseEVCAbhYnjkC+F/OJqD8U5 QiIkEGRjKmVpECjB/qqWWd+97/1Brgu0TUb5cRtMbL7ekx/YuDO4payxRoNge+9zdPDlAvBkZA0 6A5WFNPUa/G6CZtksJqTptHMFxlT/rl4ssUgDo25uuLrV2X/Y04+r4WDt/zgSY6TAZj7zkFLlFE kNKIdS0crRB4yCpWYCAkk0Qfik1wR50zUFHYB9KuQHtJgUt8yA+In0vc2V4XBjAiaTfMCfapx5i OSPpxlzW6T+ZmRt1KJWbIfBPdlVpnMzF8yma9V5YcDXZBC0XVug4VQS9KrWTc3d6QDRXWg3RQZV Rernge7WryKsQiiHiiGh5OfE2GXleG4yxGRVD9o3JZrAm0+SjDbY6urnxMLzRa+bhggasdA4wc8 2sVmCkp50/GUW41olkQ== X-Proofpoint-GUID: ywteU_r2VcdDzV0KB2HXuKKMhRjdNKtr X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI5MDAzMSBTYWx0ZWRfX6WggmrXlxT5j svb+GbMEctP+z0SRV3Vy/pNHi+HjwOcp70O6jqmuYvImiMMk8PCXm3V7LKRvSR+XkllIgPasC4N xrEVGAkUpanpSQk5W9jCuKvDZbJYF5o= X-Proofpoint-ORIG-GUID: ywteU_r2VcdDzV0KB2HXuKKMhRjdNKtr X-Authority-Analysis: v=2.4 cv=BdnoFLt2 c=1 sm=1 tr=0 ts=6a41eda7 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=YMgV9FUhrdKAYTUUvYB2:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=StfCoqezVcLOyubjZekA:9 a=QEXdDO2ut3YA:10 a=Fk4IpSoW4aLDllm1B1p-:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-29_01,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 phishscore=0 clxscore=1015 suspectscore=0 bulkscore=0 impostorscore=0 spamscore=0 lowpriorityscore=0 adultscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290031 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782705805686158500 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 Mon Jun 29 06:52:23 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=1782706009; cv=none; d=zohomail.com; s=zohoarc; b=eKq49RM+c27fDt1nSBfkOBf9grMY/bH3YpXjRrtOH3TlU+igbMUKXQDrPfvSU8mrPnQ1rhvrmmQ6FTIsT6b0KIaVdT/2nWA0RsJusucqexhvc97qvaGqWEK+ZKYtTympWXMStVWqBm/ZOV6ZY7sAH3ArrM/6nRvND5s31rFDQkI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782706009; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=iNai6fKGo/Evzoy9NbleN0pD7xOMvwgEZzXBVLZDSX5/2/WqnLVCUfNiDQ24IODZC0WGcVsp+TtKAdOz8F35JMAIqlONL/oSaEofkM9JjgIrUSJNcz3puMOo8bmKGDI1D5tPfbkx+/Z02B8aYUn4/8nswf9448RRqA4JHcXdH80= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782706009418795.451706445032; Sun, 28 Jun 2026 21:06:49 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1we3A0-0002dg-W5; Sun, 28 Jun 2026 23:59: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 1we39x-0002FF-LC for qemu-devel@nongnu.org; Sun, 28 Jun 2026 23:59: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 1we39v-0006NQ-GN for qemu-devel@nongnu.org; Sun, 28 Jun 2026 23:59:49 -0400 Received: from pps.filterd (m0279866.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65T2cteO1504331 for ; Mon, 29 Jun 2026 03:59:36 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 4f27t7v838-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 03:59:36 +0000 (GMT) Received: by mail-dl1-f72.google.com with SMTP id a92af1059eb24-139b62317d0so12014467c88.0 for ; Sun, 28 Jun 2026 20:59: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 a92af1059eb24-139fc2ebcc0sm8367088c88.14.2026.06.28.20.59.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 28 Jun 2026 20:59: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= T4QeLlBFUTpGlmsbriWoI9s9TWXslg2oBf/G9cVJFSw=; b=HImFqgaxv+pakoTD zzfGMhtAPWdsXmiUP6lxVEDlTJO+1AXZNFrNtDLM+u2k50pGhejb3FT0ARINu1HQ QHM1mIM583cRYUmVPl5lR/AbSeuO6x7BS/fqVP5ccW6JUv3ejWqby7WgOfzcfvrr eUc6GNKwjrJI+2vvF8E+HmRQUrSNiPrnsoc2IfPQAgVCi49zkmwlht449D/dZIo4 tCKXMGAyqkkQbOLHsCj8tSDvmop1ofec4LZfUdGp4kJijkS32Ezjrl1t6D2vCenq IWDKpPQFDZ0SQM1qe87nemMjHPyuHusQ6m3oy2Nbvr1IjBe8qUNue1DcG7YdpmIw KDJZdw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782705575; x=1783310375; 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=HMLtoKia0MWGx8bECTvt4dvjNCCllqRVwA1yFfyJ+nJ+wALR5il1hPzXd6ScXeagnW LRBN9Avejx8MBAg69OwnFEsBcpyCEnwbTSpi9ybW5g4HoNXskKKBWGMNcthwhNtY25cW 05F5aDNcmrPXGRhWJvOCtm1i3GqXHXosKhw1iYSI2l/0xI686FN3OmbT57M1R8FJdgw0 roMx6fjwzHDf1XSDAUoZy/mLxHmtg60MAT5DGeSotgl4POhxx6ROF71h8OjaWlCTfioI ZbCyf91acnUJLaC/+auRz05f3GIDbCQSvn7HI+M5KtolBAdF/VLjho5Kn+OIDFCzfNpB NCQg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782705575; x=1783310375; 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=GtR2NGPjqUZrQ7snrZ6CF40P69PtEJdTCFZk4zLiLmiRnRr2y1qOd1Bw3uiycWz3/3 4yEXzukO2+DdxrNLyZGQ7CT5DYukMT6uuTM9YbEzpf3pyZVS8pmbKMKgqlpBDE0MSjFj GOIfIMk3HlJDK+wFM3gzd+0moyju3v8Pa5/lp+K9QvEDQ7DFTNLwKfqRm/ksrupAV7+N l7a6rExOa4ge73y1vGT7rJvUk3M3M9PZ4itqkAWw6yN8cJ6NK/oi8KUGOZU1glYD8eq5 XUVWHl/dQXC4irUCgtjM4nwsHZgD1mXutrqqiCjuxlxRNPYbWIqsSGbm7Qd3D6WgNgUL QlYw== X-Gm-Message-State: AOJu0YzupIoibApSeSqx2GmloNBKKg4yVeIHbRPWPinwvWfCv7ygHuvN OtVr85ikt4+53xla4jyQijQcoTwKiiU3d18cgz+nAAYYs7PYFQw0FZJ6Tw5SBiimNKS0uJ5iOEa K7eGdMKhhzDInI/2OddzMNRNcawrUwSVyO/jmFnncRbiIEQxVCsY0yH60/EEumuGbPg== X-Gm-Gg: AfdE7ckzRnGTD5jwYv07Ou+BdM4mDCxeFqjuUV/JoFVzwfenkCrSN+WT+9VfqNUUjJx 7yiBvypuc7MMnDAfdcOqK5s8/htbcPB1S+qyj+cr44mOfcJOXbU0godX7KKerhYlbChSF2CvKxg /8I85ic9iZeZJRMckqpI9fOXYqoiqYjZ7Myz+DkiQowgbXYmBwfoBIPbxkcwmJgzTpEwKIh2RB6 6LsUhpOgAab+4KcM2Tfht+CSaBOf8kvAHaBdSfu0IpbvipdbhwokrsCVGqDeTuRXET6pHV/4OIQ 13tZ1RxnheraakCx1M3Aq/CcjuRwvjejGYF72/UjF1KsKjEWJddWvjd1G7/WG56fM+kzActmcaT TQipzJmOGETAzQw5wOYDcPsAmgvOyfY0UWgRDQ1soXtDZWZWxtqdWksG6Rk0= X-Received: by 2002:a05:7022:6726:b0:134:df7f:910d with SMTP id a92af1059eb24-139dbaa7145mr12695118c88.7.1782705575513; Sun, 28 Jun 2026 20:59:35 -0700 (PDT) X-Received: by 2002:a05:7022:6726:b0:134:df7f:910d with SMTP id a92af1059eb24-139dbaa7145mr12695107c88.7.1782705574989; Sun, 28 Jun 2026 20:59:34 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Pierrick Bouvier Subject: [PULL v4 37/77] hw/hexagon: Declare hexagon TLB device interface Date: Sun, 28 Jun 2026 20:57:50 -0700 Message-Id: <20260629035830.1520296-38-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629035830.1520296-1-brian.cain@oss.qualcomm.com> References: <20260629035830.1520296-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDAzMSBTYWx0ZWRfXy/XG4+OGXbUc dGmC8Sdol1cXhO02LlUy8sM6y/RN6vMWtTWJ7XuV3DgtL9wAGI7dJ/uGC55BedxXsh4ivmVbwPo i3GBfKGV6/IDlfqdPWDhjnUZ1Ybd2FGN3ntmaM/Cih1RiN0Zagc6LCiujoyE6heH9CF2kro7kHa jIDHvSYOdIuzHa9Eu9hWkfK0zpanwA5cMIYz8Dz1Fo4XzPdW3lErwVa9m8pJmqw7b8k/ng2uNhQ JTIF40zd4HmoVKEpVmtbnVj+f9aWx1udUrMDyliTQBO9W+Umvbm+EKPi77fAnnXY3biy7fsZ4Ea R7ptr+JmrZhqzwiuXwNTLt8sChlK6u6j+Pg4jVE+sW9kvx2rfwgCO1+gx9TBNQgr371vKQfyinH KEp65lvGpTCiStUdJStHSobRy0Ya+ZlwEDaF/CHdgzq51ODSSDIIngiE85VCS316e+xusV5cQdh hIODB8sQlH1vfRETpkQ== X-Proofpoint-GUID: ESr1qZPPw3zrrzzv3oYUWEa5rQAORbzS X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI5MDAzMSBTYWx0ZWRfX4VxH2CDRdxN6 /9vhFhdHC/jmNbesKke/IGIQrAjJ1Z4xDSKUrv0fxI0hb2sbbMLRsAHRZq2BpjmBWqH/CZOAtxm w9o6ee1JTuzvlTFAKF1jCjT7/9F/TeM= X-Proofpoint-ORIG-GUID: ESr1qZPPw3zrrzzv3oYUWEa5rQAORbzS X-Authority-Analysis: v=2.4 cv=BdnoFLt2 c=1 sm=1 tr=0 ts=6a41eda8 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=p_7iY2stt2bzV07uMJkA: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-29_01,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 phishscore=0 clxscore=1015 suspectscore=0 bulkscore=0 impostorscore=0 spamscore=0 lowpriorityscore=0 adultscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290031 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782706010653158500 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 Mon Jun 29 06:52:23 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=1782705797; cv=none; d=zohomail.com; s=zohoarc; b=FkjBC69Cg47CA6/7pDX4mMRfUsHhEXCM8v+UGX8NfuKuMGqTpUKbUAds0mAEJHL69OrRxgC13MudnN1QlvN8I1F0yVDBa998Rn3p0HD26pvJ+mCZokr+nE7uEdwA1fywoe0zYWZyegSAm4D1ODlKZYPpymk2Q4flTGo4KcVUPFk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782705797; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=OTIeVdTMI24bIQv6e+b8bWKXla1fphFxI7kj5iwuD0+u2qnFz6pHNn7tEU44wRUk4KnkbU8LlQYsLx6KGbFURgecNkpW0LHCsORZwI9UImxwpZxDs+8vtFo6DfZXAhcEvRHd2pwwZ8NUyA966q+8ygturVBjOxI3Mv/OFHXKXQ0= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 178270579759636.97713173163254; Sun, 28 Jun 2026 21:03:17 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1we3A4-0002p6-Eu; Sun, 28 Jun 2026 23:59: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 1we3A0-0002cS-O6 for qemu-devel@nongnu.org; Sun, 28 Jun 2026 23:59: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 1we39x-0006OS-Ns for qemu-devel@nongnu.org; Sun, 28 Jun 2026 23:59:52 -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 65T2d5741504741 for ; Mon, 29 Jun 2026 03:59:38 GMT Received: from mail-dl1-f71.google.com (mail-dl1-f71.google.com [74.125.82.71]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f27t7v83b-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 03:59:38 +0000 (GMT) Received: by mail-dl1-f71.google.com with SMTP id a92af1059eb24-1384427c3efso8557798c88.0 for ; Sun, 28 Jun 2026 20:59: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-139fc2ebcc0sm8367088c88.14.2026.06.28.20.59.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 28 Jun 2026 20:59: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= 7mMKASCyM5y7fHIpILH7Fqqeizn/+r4LwxCWOb6jddk=; b=caryGakvyCLI4GUq y8e4BV5nBQzWsGj1yCI4S/aN0fzqz+2+BalbKr4hFnVDaw7mdDXN7lSgtP+1kJxb hxHJzsPlqyAsh0kkoaMJis835bMiKRDwSgcjg24MSelNtJSI6DrLTjGmqmJEZpjv QQtW3M+jfexMdkuVBUxAOQikIytjtx4Vz6kzPkc8+/vpkuAqwZCHGKMNrCToJ3RL zczrrP7XJM9nuceGLC2p7AHgUsRj1xBHJzamsmS6rUD4K7ituLzKV9N71EUmGe5l GoQgtkctAn//eZULML+S44fhwJhZg2YKOBPLpBLalmvPshPxE96XmEMwC9UoDXYl aAHVUA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782705577; x=1783310377; 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=CprgES6tx8BA+Rw8nuX7XeGyCmrTGlXo4haXZfyA9Eq9uuK819iJIC4t+VNTSU1fuf Kh2M5eJc+TvEEwcsT69WluG0PQWYVoKnSB3TTA4I5vHrUx64BN+Ose1y6SksfG/+edvL c1v+O46VbjVpqoq42pXiZ/NDvvNu9wn8UT2wX5HCNCOz0pqEMA7i4dobDnFjY5tdqIsA p/7I7WRaacHvjbEDn0RaYb3Cg1ub30EeFzB2Azy5kx0brGyLfuA2GlghwjrGezcCgiho zg8QQ1tSS7jKKYxyeZ4Ibb/HNz7bTF1MgSv9sU30YHZ3xZ8yJcaik1mVHfJxixilxXnM Nexw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782705577; x=1783310377; 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=i1e4xaBlVtz/ulLb0Q1kCIQWb7XqYZN2nsJn3Cd6LQmk+OkzB7z8T+5KuBmyR93l2a jmTTcM24cqM7AjSFAWCCNlf/Jm2mt4ZxCS3d1ZRIrgKurm9qYMK0fKaSWeZ/D4rzW0kz 1HgcL5/SHn80LrOszoZyfxW4ycgF6UPpCHcKOv/rQu3kTLFDysUv1h7Md85zrP/gg6Ei AfIYjCcugwoP+vkZtPNU/cvyuQov0o5dDiaLJiYN43TFiTCSvmWYaBVWDU0ZsNDe4Vel RjeggetZ/hWHX9dTq9ylu3SAt+cknfZrdK0UmMcd7uGwdavUHs6Ma/WEqyFR8RdpPLf0 WwVg== X-Gm-Message-State: AOJu0YyHIIz88qWpXTuTnYuuOzf2pPmDtuEHq+aLmeWrGwWxdI75/7lL /ncfIT4Hpn1cd+kKfe9IoefVBPEwvtaWuSGRMtUxFckdeaoLcCsMtkqg76t8lE3yCYPVe/JbGLh VQjEYrQrTs/OuJViUP6MCBcvH5t3iFUFD4Whioannjavo+LXfeSrOF0N43+Vo2bGB+A== X-Gm-Gg: AfdE7clDkR7JXcRRF4Zrv841YKvMWYuz1DYH58G77Zhei6FENF6+LOwDs0rb6vm35QB pIClieCdXWGD96UsmYsVa84PwU+Ncv/WSlHKgsiNi687tjUrMb6lAtNcdfHtnghedtZ/QMmWfcX HUCKkwfCNxJm8A5j498Z6bc5Zmu1Lfl2XfDvgDudnufmyaUCcI/FocVKBOz3jF85L3bk8skZalr My87HoU2Y0IYYGKdHFN4KdPq+jna3XeEsOK7bz72UKIwKUqPhM9JMtvruPbPU9FU3ZVeC4XVYYm 1MA9gyxZ0NbWTVrM1qGjQ5LSygKBLC6RzfTDw30Ld5fmLdUMC+H758VMjf2gGTYUSSMmUm64c5t a+Xpc2KaWD5WYmYqVscSd/pDXQZ1EHVUYgUUw1fKtvoLJ51OlPrHVg1k/eZk= X-Received: by 2002:a05:701b:428f:10b0:139:ed5d:3b8 with SMTP id a92af1059eb24-139ed5d0551mr5282905c88.49.1782705577200; Sun, 28 Jun 2026 20:59:37 -0700 (PDT) X-Received: by 2002:a05:701b:428f:10b0:139:ed5d:3b8 with SMTP id a92af1059eb24-139ed5d0551mr5282890c88.49.1782705576533; Sun, 28 Jun 2026 20:59:36 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Pierrick Bouvier Subject: [PULL v4 38/77] target/hexagon: Update TARGET_PAGE_BITS, stubs for modify_ssr/get_exe_mode Date: Sun, 28 Jun 2026 20:57:51 -0700 Message-Id: <20260629035830.1520296-39-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629035830.1520296-1-brian.cain@oss.qualcomm.com> References: <20260629035830.1520296-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDAzMSBTYWx0ZWRfX6nl8hnja880z mUtYnRd4Awcx1KhbT13A8/PYPW8IC0D4Zd3kqrpB4Ocfr2DQcB302bBbZZscRjJpPp/g6Nhlhts IF9IA4eis5SjOWohzQjG5zDuFQkJ1H0AygTN04eUbxapyQkqPpVZJS2iiOuV1JrDfFjBAEx4CKq WWgs+YVZckajRz3K5G3CwB9uvs/P6KgxSaBE87ydSo/AV6npAHyYldczY0amvGR08p9X1ForI1g x/5LiOOkJZsKdCKsk2hrwptkkvCq6hP9uPA4uA0Kxl6EvrTDSA7wVxLj0ahEex5LyqlXtvrYm7N FqpkrsHLZyV3brpB2DI4xnkiyJEIfxD9NKZPS53sgbeg7eMlFts11b0tLBR3LrYRcaXws0IO1Fb 95V7Kik0a9sT/0jBqAFX3EHFwgtn+jpzy7Dd30Cbr1erxTFQZFj1VaQy+cu6dTCx3/zyKa/ooL/ +6RpLFsvOFezc5uJhOA== X-Proofpoint-GUID: wNHl7Juh4y-DBvABQ9sMUftj6HRbFKHq X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI5MDAzMSBTYWx0ZWRfX0XXsY3oKExH6 N7nUjoTUdFTdHBiGyyScctHXpAGueu3McJzg+/uZ1vOFexw3+rHJ9ndS3H1NTSzzZ8WNfCLNHKG PiZw4H+cnA6RW0jo/6k3UzOUw0Gb2jE= X-Proofpoint-ORIG-GUID: wNHl7Juh4y-DBvABQ9sMUftj6HRbFKHq X-Authority-Analysis: v=2.4 cv=BdnoFLt2 c=1 sm=1 tr=0 ts=6a41edaa 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=YMgV9FUhrdKAYTUUvYB2:22 a=EUspDBNiAAAA:8 a=1eS9DRoYkSOUxsN_X7IA: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-29_01,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 phishscore=0 clxscore=1015 suspectscore=0 bulkscore=0 impostorscore=0 spamscore=0 lowpriorityscore=0 adultscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290031 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782705799792158500 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 Mon Jun 29 06:52:23 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=1782705803; cv=none; d=zohomail.com; s=zohoarc; b=QNHyAW2Qd+lRnhz1SWvsDppWnn8k+ni5ai8wEKDsXsKco/mnCTtqbFB+wapvNbhA2ygGaH+Z0HEgQ0Sj0o341Hl9IqtViu9gGPBEoCGXbphERF3rUXGuP5yVK/ljuSw+x9kIEckQHVCvK4ZD1M1EeE/Ot/Sclc1kHyFuSrI5jSk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782705803; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=ZnizGDtLyyXsRdv7+NQksMAP12YuhI+9rFeG/Y2yPhTRs+OEv4U2cSQSAoApMijI2GGbSaUbvhdbI3/rgLTT4UGw3wXXjBwENcykiUFwR3FxvPewHWO0NM/NKmN0rpU+Ae6yI7hVAtg+AWyxwSnelUEP5Vlxkg2HyBPXjkVITCU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782705803770693.6882724614698; Sun, 28 Jun 2026 21:03:23 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1we3A3-0002lj-OH; Sun, 28 Jun 2026 23:59: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 1we39z-0002Wx-Pm for qemu-devel@nongnu.org; Sun, 28 Jun 2026 23:59: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 1we39y-0006PR-4w for qemu-devel@nongnu.org; Sun, 28 Jun 2026 23:59:51 -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 65T2d5ZZ1544214 for ; Mon, 29 Jun 2026 03:59:38 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 4f26tumae2-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 03:59:38 +0000 (GMT) Received: by mail-dl1-f72.google.com with SMTP id a92af1059eb24-1384427c3efso8557818c88.0 for ; Sun, 28 Jun 2026 20:59:38 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-139fc2ebcc0sm8367088c88.14.2026.06.28.20.59.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 28 Jun 2026 20:59: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= ohgluABwS6D8saHfHv2eOLCkXGQOTd4JgFhw3pUO1aE=; b=SUk9Fi+eVAdUqeQX pzlecqYNKYf/ob/ssDx6KC8bpjA28QA38LfFMbWsiubUJi/yQW/K/NTl6foECkX/ MxBc6O19gcgaMr7rAT9n/3L27sCyed9Sjj/v5iOKkiJL2j2Tx7guxye6kgHVGdBR o8d7xUIASvYGEI2he1H04lCLMWQcjC67qTQR24DrMS4sHEJzxABeOCPpTV1iX7gP gPOhTCvqb1hHt/uLv0IvNgqlDb2BiD/qGGJvIqeqFUEX7SzjhK1wKlap8biznpMr HUyNVG7BV88N5wm54Tn4xrFH3J1tCMm+4sZOJ5bJEL+yAbg4I3Kioa4AlqA6t+A8 2CHDmQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782705578; x=1783310378; 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=ZhK52mDoVJnOSiZmJDNyRCZ9fpqHLjYFn3z1gEk1cMS3ZLEyU6jR1uYW5NE6BDFjAd qFbd2M38hGM/eiei47OyT8B4gVfh6MQBhZK7jQTZzPGQewWuBvFxuSJCeF3kEx07aut6 JCdA4/CfGv7Who3Qd8ogMMkCkd9YSsBcRaJnNG2Or9cZosXJuRKzGKayyIBgSoYz4as0 Z2u4vDrsVBLZUPYKcFxt379TExuClYT4zc4pzsQBHM1SLwJIFXRLtheOdXnV7n6L49EZ qZc+Vpqa87MPrqejbdGdrq6FWnYSWh1gEpVD73zsuzn6IkaEwaiMoSK8A4wDD8TZc8U8 jFUg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782705578; x=1783310378; 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=gTZ348HAK0jU+zzYrf8/BtUdDrD5On4ryKLmhnRsnT/+QTGrGNnVTvBru+1RKbv3gX HnIqoKavf+oVFXzPVdllm7h7G0Y+WDwrZ8msaHaYVl4dLSLB7a8K+DC+AaxaGEOZoMV3 z6+GhcYopiQiU7f96e2nI/UXO9C9ujGJ89qAPq/6+bTRJ5rbb3hpyL3T3Ya8F1Ix6vep ISgZzddJYKz5GZ1Ir4GqUVOGf/+2XiCzL05OE1sbYuMlkzHwLN8X6ger5rFaU/4VjMC2 FP1huWaVEM4PKwzRK6ppInMAWqZ/HbGXGxkS/nSdK7OdCHLhIbJ97OXKQKE/3HtB6HZC DDPQ== X-Gm-Message-State: AOJu0YwKXtp2zkKcvueYmqeCVnDgu8oVMUCF1ENYDbvu5RrqXsermF2B GGkdMrlg7zUcXSdGvcJMYrDEQ0vNFFxp3yFXUNFvjUag10gSqIKNaht5ZvOJnahQr3FlyHL0Rd1 sNJtKrby+ZUOHlN6QaZzsS2O3xiVgI0zG8BLc/BcCNmDGTnxA0coKl9/V96wnlHdfVw== X-Gm-Gg: AfdE7ckJHz3hC/gPSp/A9a5q1qg1hD7p/DH0YSaEptf5Q2tUiqzrP50X0/c00zB4KnR JQxVFlcRyN52pqYzD1xltoeOHCR7FXM+OvPXkzHdr0tAga+67Cr/7qTqO39bNIDPTy6oHDtVVmZ gPN4G8iLr60QvCBqHQkA3RHbnxaM2cgZB1w/IOsHieE65g+cy4pJ51AsiNH7r0gH7O9SLVQ2ovV +kYJD95jF7iGugLwHu/JH+1Jjt7Gsu+MZBmKT5kxD+Yc59nw65MsHA8galbsjkJ5/jJLtNMAcaY PDl4IXqRL6oHW/CgXgHZjz/kSdIWTcSE8VuwIc1QrB1hcPxIUN58gcE41Hzb8WTlNgXLNy76elA BywRNZYgL6bw5eGEZAhzrImKMdK4GfHURZvVQSWIdrqGcEGUmKDfdKnztcA0= X-Received: by 2002:a05:7022:43a4:b0:137:f49d:3388 with SMTP id a92af1059eb24-139dbb5b144mr13109020c88.21.1782705578034; Sun, 28 Jun 2026 20:59:38 -0700 (PDT) X-Received: by 2002:a05:7022:43a4:b0:137:f49d:3388 with SMTP id a92af1059eb24-139dbb5b144mr13109004c88.21.1782705577548; Sun, 28 Jun 2026 20:59: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 v4 39/77] target/hexagon: Define f{S,G}ET_FIELD macros Date: Sun, 28 Jun 2026 20:57:52 -0700 Message-Id: <20260629035830.1520296-40-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629035830.1520296-1-brian.cain@oss.qualcomm.com> References: <20260629035830.1520296-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: utmRqlFzHS3DVUJAUU5VNPp_WbkBEPTm X-Authority-Analysis: v=2.4 cv=A8Rc+aWG c=1 sm=1 tr=0 ts=6a41edaa 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=eoimf2acIAo5FJnRuUoq:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=OC-ZKJ6AczBSh3OnBRYA:9 a=QEXdDO2ut3YA:10 a=vBUdepa8ALXHeOFLBtFW:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: utmRqlFzHS3DVUJAUU5VNPp_WbkBEPTm X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDAzMSBTYWx0ZWRfX9GXfkoZX0w3n RBGpY0CNyqp73VSN7jvjFag7zq5QzumI5I9eA1JcJEv5kSxYy0fqa68wk/FMyLl3+vUSnjO4l7f abzFB3CsJ+LM8dJS8a1vdyX4NrhmQv4UajOgB83PuU96X2pwDAH9eATUM3haL7HnMzI+6NXYcOI 1LT8uNPTLXC9IoOx89YrnZOClV4SSgMARvIEMzI+c3SSI+8eySWbfQrjAu37Z9TbaVBWLIe5LTw YJmhDzDJCeWUHWX8I4Z3Q7q88TiTVgQKFAwmh2++KzVQk27f2Fc08a/U9haNnafck7Knv4Y80Dq sggASmhkYosPtW6h3kEirQrUa3k9ZX7C+4kN6zvQDNf6Ff/LoI/PphIwEPS7lfh1faH4a0dl6j5 luG5es72u9XrTni4JKK+ry4aRAfh7kXE63eqwhjn6/I3gMdC5m2wqLiAVDykvccz7M3iF/dwn4y aga6RrqHIpUmpLVkcWA== X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI5MDAzMSBTYWx0ZWRfX6zZiSOxfNOD8 HjxrhEhw6PVcCZe97FfsamGHlxN0PpZbzqb5S8znRHML4PR9ZawHe03QR88abL6aEPqB/HMoh21 b66uSVP8UtICNg0+TKp6Xpwujqg/dYo= X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-29_01,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 adultscore=0 clxscore=1015 impostorscore=0 priorityscore=1501 suspectscore=0 malwarescore=0 phishscore=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-2606290031 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782705805647158500 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 Mon Jun 29 06:52:23 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=1782707446; cv=none; d=zohomail.com; s=zohoarc; b=nyXuHxYRbQitsQQJ1G8yi9twoD/lgnHiHEEBkfMg4Kof/U3vyyQ07YFFSWb/WmjsY06VEgsEpj85gixV3fNQ3YKVHx1sHY2+82x7vaVGftpAHr9/QvOzfGuqhaEAGO53CZTEQW9WBp1vqz3s47ixbpZExz/APXAV7izz389Mvog= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782707446; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=mv390eB3+EZKIRbyImD/vGc13+Nd7zHJY+j/k18S2loSvOIO3m/TiDQYAsdlJUDhi1jnCWMEyfIxFMsRe/EOizVPmQGoN6a1W0OAUZLZETmQ2RqDD8FWDGZYanvhTpxe82yj9pjkh2iq3beiMwGO38Zcw1lPvG+eXmeTwq3LKBU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782707446876109.23562582724787; Sun, 28 Jun 2026 21:30:46 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1we3dN-0002eN-3X; Mon, 29 Jun 2026 00:30:18 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1we3cv-0002c6-Jd for qemu-devel@nongnu.org; Mon, 29 Jun 2026 00: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 1we3ct-0000iq-8U for qemu-devel@nongnu.org; Mon, 29 Jun 2026 00:29:45 -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 65T4NKwq1724741 for ; Mon, 29 Jun 2026 04:29:41 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 4f26w6mfmh-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 04:29:41 +0000 (GMT) Received: by mail-dl1-f70.google.com with SMTP id a92af1059eb24-138acbc0e69so14247437c88.0 for ; Sun, 28 Jun 2026 21: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-30d3af0d2e4sm21314609eec.22.2026.06.28.21.29.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 28 Jun 2026 21: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= G8bosUNkIisGhuX8AG1Z5l9LVe/reA0/IE25v64WV3U=; b=msvWLfVITTtM0ajl BtlZ9g7scknmVvd00rux4Pm7OzoEokXC58/h1Xh/4jpQpMzXCXBr2EYd3EPA3EBH VQYX3JTvIvV1Au8iq4vVZp5M0UzHRP+eDbRp/0ooveQoDDS/IiB1s6vTSCpmRDKF jIFIMq58MNkuYT955V+GJuI9OnrpSeyW2pntlQeraAuD7BKHnyQoLLQ/tPSgCY2v gaGe01TZQwkOmjzCwQwXCUrMeMo2aCbtI+ozev4l3BwuiiqSoNTYqCpCHpwQ95Et czBiwWrWJrAGj/w4d4wMqwgEZCL1jwAxO61i+Ufb6yG9UF9xP07wmc+U6z/Pp1Uo D8LJVw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782707380; x=1783312180; 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=EtxE1xekl/+gx4Lyphqn24MX4QXExN1Xk3ybj7h5hxRoCVvYcNcSvPVLhH2bcvIAqF T66udTH2DnHel8aM59QbXCZJ6CfXp4EFYcbPCFchv5UP0eZqPRqPsh8/iuMf3TZkFbDo Q4+kpuk1a7J224ps2U+wzy27F1IzI39tKSPmIgaNOCy/wt+NaGgR/U/fD7ijbxTKPSwA eEp27URetHH5cBfR8LagHZwhieMHUYk7YtQypY+nCK20FDI3U+A0bmYW0nP60v4GOJdL JCvSZbMU8Cu7ODUI95OE/EyPyA1wwC16OA6s0L8wqrCT5M2GlbbZrrtEWxvrznNT3T6g CSmw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782707380; x=1783312180; 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=BppIZ7vtnT1ZhIQNzA3llxjVAZVGUl/Nw6XNN5xjzR6L1lpqEM8m+iJUKnzTzRDIWi BiKHw6RRfLkN0HTvv3gfvBPq9qPE5a+Lp1G93GN+e01cpKQLL+sNoiLpNhxeCPXg5mvD hU5VYH03Anbh7q9x50G6UTUWj3I+pyf9W3GP1Bw7RHYB+Q4RYrSdocTr758KIXkv+9LY R69IVJaT/mcz9N0M8RP/C+vRYVKq92cCNh5pJEbt441OawBKCqKAFKEzKVRxxewczzP4 Cu+p6NEzC/9uB2AfyFhMuyk3jjq+lDTEo0zwoee1+O1VvvPU6Q/4khnzurVNIIKdm5Ew 686A== X-Gm-Message-State: AOJu0Yyf+UBZ+tYMaGY5i3GW0Vj4pmfszI4NPY5gww0GI+qGetdcW0DB ERosnptS1DrjBc//+iM0VQRwP+AdnMI2966VJQk8LN32uL/W9X25JYNFl1ngiFnexBvDivfUo5x 0ZAJNj7nCksUK4y/0mgL1BpLZPZPOKe/87qkWKyjtBjjpaX/J6mL0cHbrEkh8YJ+iLQ== X-Gm-Gg: AfdE7cluOm5yzU7iZIUQ+hMPz2MxcIyRpDsZHNXqlze3L9knDor21Omn5VwQpMsAoYA OwZL0raLl5ByqQTtB5EU0mcXoJrWtPxdJm5cyMP+WVj4QVV+VqTw3k4mSW5hmljc9hEspSERn/D Sv4qdvBND6Rno98p6JTGC54eMThstfZPdeDrGl/ddK1AK3FmShHrnJXLarR9d1A26OAuNISnUwZ SWeU22OwzUxkF858q43IlWO6l8epdt3+aGmzH9xa7R8kkNRY6l3Ho52TMKLx17iID/pBHdvW0UL RJFscwpocZeh1mE158PtqqIjCZbCYCU4ho1+rHC3b/VOE7SJHEC0hIW7cABmSir0cN7JB6zBRTN IiSAb7r6Hc42v4xEs2faZHB+CKflbMhTcdnD76VZzbeuGhK0TUuXL3Vbm758= X-Received: by 2002:a05:7301:1016:b0:30c:7ea6:b515 with SMTP id 5a478bee46e88-30cab07dcdemr8462457eec.12.1782707379806; Sun, 28 Jun 2026 21:29:39 -0700 (PDT) X-Received: by 2002:a05:7301:1016:b0:30c:7ea6:b515 with SMTP id 5a478bee46e88-30cab07dcdemr8462437eec.12.1782707379231; Sun, 28 Jun 2026 21:29:39 -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 v4 40/77] target/hexagon: Add hex_interrupts support Date: Sun, 28 Jun 2026 20:57:53 -0700 Message-Id: <20260629035830.1520296-41-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629035830.1520296-1-brian.cain@oss.qualcomm.com> References: <20260629035830.1520296-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: WIdjbjiStfM5B9xWIszfhlhSRQPe1kOm X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI5MDAzNCBTYWx0ZWRfXwU5utUiqhfV3 xLbzCJ6bvyBWiKqKW/MoFjWpR9UbQ3GJ+zBVNmRUU3JCK2AVAYXSgICkdC4vi4MyBaUbBVgvC87 OBtfBJJsdUUXXqrFESlFwUONulEcWVs= X-Proofpoint-GUID: WIdjbjiStfM5B9xWIszfhlhSRQPe1kOm X-Authority-Analysis: v=2.4 cv=SuugLvO0 c=1 sm=1 tr=0 ts=6a41f4b5 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=yx91gb_oNiZeI1HMLzn7:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=_4Jc8uW0NYDJnYJF3oQA:9 a=QEXdDO2ut3YA:10 a=O8hF6Hzn-FEA:10 a=Kq8ClHjjuc5pcCNDwlU0:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDAzNCBTYWx0ZWRfX0Ost2B2HQY6g KwSPkSGXTCZzy94RUTibV58XGua6TOAcmbXePOf1uIOVIBZKnYFgPgijwhKkx4WWk+bXRihHmRs 7m2BzEkWKv+iQIQRq8j69fOGSMhSNKVCFsMGUL/45vrKNFKoa+aaBkIVG0948/Mf7shL3U51sz7 v2KpvUR+AewBJEoeYsG8714PRJCDcgIcdcHek4fH0eNngd3o6VWzPZV2XrxH5Amvk/Lz+GYiAIc 5MmkYZwHEw2MzZTn59/ZF8hE+z/zzpnFIg44pEED/PLYHEq3ImChwmooxsig5ODG/oVcijCPwsS hz0KFwbqRnONHmXssmAm6GHWmgIt+aEoMrjawzCBS2Ch8n2hoGql6oqkMTqfKaQspTVp8Sf/ebs IUA70/wxvv5miFCz9gEo7FkK9OGb6N3dk1wMtAvuqVaE1+u0nXfJZSSrvjJZu47j4ZmD/XqWRrx Yo9VjC1i0CKs8qgmNQQ== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-29_01,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 spamscore=0 adultscore=0 priorityscore=1501 clxscore=1015 phishscore=0 bulkscore=0 impostorscore=0 suspectscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290034 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782707449130158500 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 Mon Jun 29 06:52:23 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=1782707423; cv=none; d=zohomail.com; s=zohoarc; b=YVJb3SC15CXsqC0YIVyi9kxF8742pL1ZWp/nCO0H9nsj1iJi18r2I/ytswbMykvz+k1vL7BYZXDuZc3SMF5QCsMx4R39gmVzHgx4lmP9kDmdy5g+XwTxzS1L6ufhS892MIUtN/D7JzqCEdxxP73xzD3DtSnLID9hz/WYC1bnqWQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782707423; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=GiZsG8zZj5Lo1sWJkJSZg5cF7J64lLT55+SUX30PGhg+IrKugxRDbTxu3QBqgfSan8zelTUr4E0OhgqA0uI4QVe3xSUBX4Eekr6SUGXXrHbQSuz3ZikjjNH37fMllDt7kUdcujx89NkAERAyW2FLmbc7WhPUcNzM3iVsrn9GwkM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782707423858303.23981746539073; Sun, 28 Jun 2026 21:30:23 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1we3cz-0002ch-Fc; Mon, 29 Jun 2026 00: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 1we3cu-0002c2-RC for qemu-devel@nongnu.org; Mon, 29 Jun 2026 00: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 1we3ct-0000ir-8m for qemu-devel@nongnu.org; Mon, 29 Jun 2026 00:29: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 65T4NNux1754496 for ; Mon, 29 Jun 2026 04:29:41 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 4f27334fab-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 04:29:41 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-30c0a27ad86so6738917eec.0 for ; Sun, 28 Jun 2026 21: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-30d3af0d2e4sm21314609eec.22.2026.06.28.21.29.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 28 Jun 2026 21:29:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= oY8qK4LAUtINTePvitXB1Xfo61hqyHEyBFAF6Gss008=; b=kmUNSGr9gEv7Ks5+ U5WuPUb1E2VUDYegOHujA7U8BZjlCeFRgeZpUSR6bTq0HJjrkyK8cQ1CztUc401W j4YiInY8a+kEQKK4rnkyH0UnFT/eAfnv7Jv+q/Cw/wOGu8lSeKCja79MuFy6mdwP +jEt6Sx+i/o11XwImhXA+3YgsbXxQ2nyJh5D4m4c8s3wCUtO5ygKw2X30E3sOEka jQJfv9E+YO4xnSR+nuP0npNtFH+uHjZFOz6z0Ahi7S+30DENpNDHHHsWEbFpch0t 8sLRiXNAYpb+sqX7V9ONkuqd/s1i6nkzKoYkzzI1FH6rxg9Cr72OssiPAVur5bIs LF+zSA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782707381; x=1783312181; 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=WTMeuaa/F1y5jMaSDaatU51KqQyszNOiKoBwkI/v0aamSKqNP6Q9nM1qpDShg8Yu8S vr4SFdDGUJndcyK7uZVzQqjxoj1D6lMaDK4a6wxaOQyC3oingBRFxQOE5dgUTZ8LuSic cRkkeeUsY7JxnHrnB0p5IDtt5UiPfdlHHKqxzsrOWLwNSx7Sv1huSQji9aBcBj9A98BT 02SrrDXD4EId39k6mNSbCvjJB/vyN0dSms1wT99FjgAsXRO+oOo7vOC6UISfx86UYxSi 9foG+g/uo7V6vPZlZF1gQKLpMZrX07GhwmSVHsj9L5dYc3uGqIj67Cgm7bspjq/VAmRX UDNA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782707381; x=1783312181; 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=C0xeVIxabQs2KygRk14cvGXyYCEMo58k+8u2VYvWK7QMFfiHGgtv037qmqwekeNGwT Nv0JutXeqpN7W4SDJRL64g+u6RURXSXnf/paIV5POLbdolMHDBp8x1fVwGb0vsDjRqqa zbjqb788Y4iZV3mssspOq+HI13bvpPx+eTcn5Dfz2J7juXN6E05SKvAkMPiul4Gon/M+ aEE6KsFaMmgvXbiCSX5PAT9rWDE83YWOWbkTGNT4wX23ZNI4jn545Rihf5NNsYOV8LkZ y1Nvp6Co4LuDBHKk+es4IK9S27RJmumVekQPRnt3ThTkvkZmRgDwgMAPfzq2FGwGR3Zo VGnA== X-Gm-Message-State: AOJu0YxvyPBLfHtIyUCDnughCEEZgdt6wQmynhDQaY6ODk4W/RKmnNTy 0beBKB5H+GTZABEGazrtFzJHmUuXITtz9N2shHXHJASYSCUXmfTxbJOutOXeV1mPyeeLyBfsUkc gTkASRI3eLIVA9aZ0c5vSbgILswIXvR72NIwTTGAwglXuFZoAc8wtGvEtH2h5LF/TeQ== X-Gm-Gg: AfdE7clp913tCip3HeCCMhInCsRr/a0i5mItDMh+HFeVZYTkTwk3cl9QhaunJ+sO6kw UjZ72fkIeULEFo7q2QrsSDXo46a85TUgePuMbCsGelE7cphXGDk/qPB5ffcmfeW90ciE2NrdeTM kO7nAv97CnVGOP9H8aQS4oOUcz2kNTvRKFutnZzms4PKHbKuQxHCv6R5qYhVDjgi/DUQmLQjHRR MNvE5yhaaofFRavZ8WvYWXnwy2wdfhEaMWG2Syr4YFeMfKrFO8o20ox3kap2B4WjJvxfNwHPWH3 srZEq8/Hu4PoG75vnTa6HpfbswEgBcqklLH9Jwajhq3q82T1hC3F1upDOalkHgmpyj7eTnmoMji O6M9mgfnG6z5UUQ/Xs8rn+flinDH2Z0wXaplu8NAJ3ydDwHsCKrwNdt4tY54= X-Received: by 2002:a05:693c:8951:10b0:30c:a62b:d033 with SMTP id 5a478bee46e88-30ca62be4f9mr6621567eec.15.1782707380503; Sun, 28 Jun 2026 21:29:40 -0700 (PDT) X-Received: by 2002:a05:693c:8951:10b0:30c:a62b:d033 with SMTP id 5a478bee46e88-30ca62be4f9mr6621553eec.15.1782707379988; Sun, 28 Jun 2026 21:29: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 v4 41/77] target/hexagon: Implement {c,}swi helpers Date: Sun, 28 Jun 2026 20:57:54 -0700 Message-Id: <20260629035830.1520296-42-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629035830.1520296-1-brian.cain@oss.qualcomm.com> References: <20260629035830.1520296-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Authority-Analysis: v=2.4 cv=F+FnsKhN c=1 sm=1 tr=0 ts=6a41f4b5 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-GUID: wskM1cnEyOB5xrvKOInc4zK65K8leAvt X-Proofpoint-ORIG-GUID: wskM1cnEyOB5xrvKOInc4zK65K8leAvt X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDAzNCBTYWx0ZWRfX4jcv2tcqaihM Kd9WdJhmMlT83aYhMSj15V+BrQxpLPAqfXR9Fk+y9x7+wTJ7x2WeUtBy0fZTY/lGR2Ionc8UUIc +Ut9Xa4lwYcKvlvCgsWhjOMH7YiEt1nMk0X3tJHxXYM6bElXgUmFU88qEdiOlIZaAmzDEymkftT vdlL2GnQKoa5ZOf+7gAR/gYOMZJZUAYqeY+e7LgipX5xRkop9BRLm4fsz7wAndLjkTiUMsHXlSZ O/EpqS1N5jXlanKl5aoetiVQDPKyuw8i2xUCR8pkshdv1TVmyh7l2avJbBhpg2VSn5jshnsGl2o nVC68GtpbNgQnDT7YzObsU/MxD1YoYrHgahy/KCwcMz2W3HT6NPjxfel7+b/Yt1GVX6ZiQtHxB7 Z3OOuthX/ScZ4gCSv9Oyvf21zWK2n+PmrWSf5op93DeOsBSvhtIpm9/2Kmu3+sa4EGoE9AGJpJZ 7HyPm+rYWd/DdIbFChw== X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI5MDAzNCBTYWx0ZWRfX+6dN/Y72WdWY PhmYONnrv4x4oAHZll1Mo7+ZCXoWcxkcGwFoYByTQNSx87umxnmKmOgsyAR5QKrlgKVzTI3DX9B FK9K5SpOB337Ca81cTJnNafPdkEuqDo= X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-29_01,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 spamscore=0 malwarescore=0 priorityscore=1501 adultscore=0 lowpriorityscore=0 clxscore=1015 phishscore=0 suspectscore=0 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290034 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782707425516158500 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 Mon Jun 29 06:52:23 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=1782707423; cv=none; d=zohomail.com; s=zohoarc; b=aPL13FPFClTQ8tOXwIyrgGOqoTEqG9246Jt2C6+iLjproL6z708d3dOl4+ofkzBgeGyn9NTlOhr6PlGLtQ+w7+jjsniS2L7hwcfju3zrbQB9uk9Ii2zZVjcVGdZlJ3j2G/A7n0brE+XpMmcMmSTvb1u0CHPy4F84nI4ZvTyZQWI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782707423; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=Bdywzcc4AxKz59RqQKmFHFtUCZN0MjlU6JCg22uo/fLv2reCklzlHgrsi1GLwftnbXA7ybULLrqINr+JqMhsUTkIyB5cnJHUMiXgqRbyJItDxrgU0JfI0Qars9IbeX6A5CYViAXHNCi+rori8I+B+XPZh8jmwpS+992E/C8Dhm4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782707423554692.8618445820049; Sun, 28 Jun 2026 21:30:23 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1we3d6-0002cv-85; Mon, 29 Jun 2026 00:29: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 1we3cw-0002cA-48 for qemu-devel@nongnu.org; Mon, 29 Jun 2026 00: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 1we3ct-0000j0-Cl for qemu-devel@nongnu.org; Mon, 29 Jun 2026 00: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 65T4Nqbp1778272 for ; Mon, 29 Jun 2026 04:29:42 GMT Received: from mail-dy1-f199.google.com (mail-dy1-f199.google.com [74.125.82.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f26x8mg6m-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 04:29:42 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-30c011c7cb9so7191628eec.1 for ; Sun, 28 Jun 2026 21:29:42 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30d3af0d2e4sm21314609eec.22.2026.06.28.21.29.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 28 Jun 2026 21: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= 4QO0cWAkJ+q+F3pETQo9dtN15DOJjfUdoMf8+Tm9oak=; b=eyA4BJHe29U9hunN 96fmJAcwMH3LSJlMTrbOLVOmnT7nMnrv2RmUYFopwdOeaeUFObEuMYVWgs5dRXXh vlaPLaN30AAnc9G/gdWYlec9KB46zMaf2NIF6Eo0ivYBgxvWhq9Ld79K+nzv5nWL VCB3utFTsrCGVNHh6777n6v8gsfUY02AbhQu60+jcKy657ePCf6vGmFpWDtZPiJY z4UBh9ksvU89FyC/MyLkw/jtG8+frnEJ0xWpQzWlRVRzC2oVRcKJ5rzcT1l5YCd3 sux5Eioby3IgdlvRGERckmmHtQp531Rp6tyDzg5ks49NjXp4uuRJ12jLDydBcPJm NdME0Q== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782707381; x=1783312181; 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=ZYNYjiTJHpHVn9ky8RgvUkBarl5O+8Am/xD99go2km3HHW8nJLyHfy9sIw6HHqcnKZ X7CI7pQl1N7SKBGWjoNP0Rt1JCnfelx40WBTrFzSDp6vUKpuoH71zEm+W/GrXc95O+wY WyvbRYOMr4KzPHqPv+jOL9ofqgHc+sk/oU8AZ1sJcnZYOtU7kuEwAJTPQSnv2/m2vBdj odxAwerkKbCyWSYNHif8aGHIIZV9CAbwRxmoOg1apMK+k+86DKDVxI2k78U/mdcQNqab 9qGQ3sqw2rL6pQq29CIYdTNlo+5IeHHnzKrTpNvoAhYxKmup9oAZkheOXed1U1h6wjth RhAA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782707381; x=1783312181; 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=dKn4w+LQCaZtLhJ6MBRFzzLUuF+9Zt8hXUKqiospOFPB71q4wcBsgcZorFsAomJHS0 3wWpSteun0ROnZKJ8vC5InftGgJ0/BNLWDDSfJzzJUpdUkdv3h0FHb8lUJuUY7jOJ/pr 8XQfhw4D2zh/VCzYD/L0M7SW0UMVwiOGc3iJ2/0I646DPZxMbCU1oJYF8WpJnNAHv/Or fAu94dYKBVF/s8vp/BRTSlDCnNxrdBMjSG60M/l08EJttCKUYVLt5NYE24AgjY5FJEPv EMXbwxuIQ65wv5L5lT2MpfMy7pgVqXYnufPNEqfD9SUI6Y6G/cCyEApLMqkk91v9+7d7 ziAQ== X-Gm-Message-State: AOJu0Yy07tvixejJvrnYKfRnpYbdBiOHInjarhHIZsb83+suB9RZ8s1Z 8QwWjak+bgnhm2sCWcKILqd2MasJBs4vJtbTa7SqYh7vX5qSoLcjUshr/Sw/UdGWVOXyx7ZWe84 +R4PLEeyeJ+Bt/XEQvfzFY8eSum3yLDa8F3WDJ2SJurqPCvBVyjAEjOugIQVEjQeFRA== X-Gm-Gg: AfdE7cllAvVTznDE9L1c0ar2cFWCzodeDRGOKVESF5Hhng/YW1GJdU5s3uvULbwqb3O i2vlk9Tzc3w39FhTBiZfGyd+NhtppOJJygCjqWlLBBIZBLX6yI4X5nRLEziSURUCo3b8pT+wJcg m1JUA7oPDVb6AduudDjcVPIX3HE4VHCuvwVYcpgEwLyZGMv5PG9Y4oRPmqY8Gct5RGCVIvK25QT 6FHFIVl4be8rDinjgG4pjZWhTE67fItTpJ0kBDE07N66WVGIh10Wp3fjZc/VffMwH9UVcrt3wpK rdhhUFuDx6z6oBiuOXuP0+hrcS95JyzCHsNIkqSuc2qTS7x6mSlR0JbJi0W5vhMFlQeFTQHU8Ou bKwRfZ+XacXIPluJCceR6/y77pN/yP/ARGWdG0SbWW30c41xE3T3wSBuaWxQ= X-Received: by 2002:a05:7300:430f:b0:30c:5ebf:63c9 with SMTP id 5a478bee46e88-30c84d9ba29mr16260666eec.5.1782707381267; Sun, 28 Jun 2026 21:29:41 -0700 (PDT) X-Received: by 2002:a05:7300:430f:b0:30c:5ebf:63c9 with SMTP id 5a478bee46e88-30c84d9ba29mr16260648eec.5.1782707380811; Sun, 28 Jun 2026 21: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 v4 42/77] target/hexagon: Implement iassign{r,w} helpers Date: Sun, 28 Jun 2026 20:57:55 -0700 Message-Id: <20260629035830.1520296-43-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629035830.1520296-1-brian.cain@oss.qualcomm.com> References: <20260629035830.1520296-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: AW1haW4tMjYwNjI5MDAzNCBTYWx0ZWRfX2JiM+R44vTWC kWBzPWGeypjahDVN7i5ydyUHGQX0s7I6LMru2zJaiNPT9pbXk/vROQmk6HlXDCnIDCoz8t/XNOL 1tAwJy0kwVVPGOjBlbqXMc4rR9ALdyo= X-Authority-Analysis: v=2.4 cv=D+N37PRj c=1 sm=1 tr=0 ts=6a41f4b6 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=EUspDBNiAAAA:8 a=VnV9S1Uu6eltRR5mmX4A:9 a=QEXdDO2ut3YA:10 a=scEy_gLbYbu1JhEsrz4S:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-GUID: dUlqx8T-zEtef89Bddz_IpYvBE_1oqk8 X-Proofpoint-ORIG-GUID: dUlqx8T-zEtef89Bddz_IpYvBE_1oqk8 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDAzNCBTYWx0ZWRfXxQ/66rHFqEbX 0g2i+xWcKBMMLERM+zvH6xTLP9D8YVXjmKXt86Bx3jAMFf6DHjjYGNTHlX4Wb7/cGYDyac8ZmTW rYkXzMCPcd/v0pV6Hi9jE4CawfnXOe+gJUu59w7r5c4/ZPQmdBnSK1IrZjQxnqE1mu1lR2atiEn dfy4p/AR8RAcRNCss1RH1hv0CfCgtDr9cFJNgXvtBMUY9hp1/LhdKcjSPLXC7iVxgBUUthpAPgH pF/SkhB1yX0vc199cPeef1Vqr1ubXMMK5u/DdFa30p0G7zxysYYP+aNoxLasaSJV9EBT76xOZ8n 8hb4/H8f52p6A8/4rXdg+T0RE3ySsd+rg9/P18MwSa9TEQn+nAQrDwya+0XJaloqz9gkp1OJZdi Z42SNe2h/t+111rDHeMwYVFvFkvQT5ok2mekEviKf0cS/xlSq2fvNHeth/wkPuzF8goFAyJmAWv YIxWiGT2bysUo0rpwgw== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-29_01,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 clxscore=1015 suspectscore=0 bulkscore=0 impostorscore=0 malwarescore=0 lowpriorityscore=0 adultscore=0 spamscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290034 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782707425434158500 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 Mon Jun 29 06:52:23 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=1782707447; cv=none; d=zohomail.com; s=zohoarc; b=cgjXgtxotNGo5cNpWmrryh/CyhfsYphAuXYWZVvW47dhzfNUe1opW3GdOL8APNTIJyc4ZkGO1nnl4Ylkwes/yVXQgzs+MfzQFwkPufvf8FC8p/6s5czbReG7w/KzDttskLjlxVDW47aAEeHksdsArHFebn6Q2ULPqpX3hqHL31Q= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782707447; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=Q9i2cOM5aOXDMzELCc3LX0LalsxQptChGiFZhGOVu9y5+EynFRCo8CBlMlcidY+3v1E6R1yLcCauRpya8e1fuoInaVBExHKdB/7oJsUul4vM9tmI1Ps9/LZ2dqGFvuzU7exglgE5cVzPllt13NVU5StunGpuk7xY99zRRfrBie0= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782707447639737.3243621198646; Sun, 28 Jun 2026 21:30:47 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1we3dh-0002v4-Rx; Mon, 29 Jun 2026 00:30:36 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1we3d1-0002d6-Nx for qemu-devel@nongnu.org; Mon, 29 Jun 2026 00: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 1we3cw-0000jW-Gg for qemu-devel@nongnu.org; Mon, 29 Jun 2026 00:29:48 -0400 Received: from pps.filterd (m0279868.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65T4NKSw1781034 for ; Mon, 29 Jun 2026 04:29:45 GMT Received: from mail-dy1-f200.google.com (mail-dy1-f200.google.com [74.125.82.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f26u74ghb-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 04:29:45 +0000 (GMT) Received: by mail-dy1-f200.google.com with SMTP id 5a478bee46e88-30c9bd8b9c7so3409403eec.0 for ; Sun, 28 Jun 2026 21:29:45 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30d3af0d2e4sm21314609eec.22.2026.06.28.21.29.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 28 Jun 2026 21:29:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= TfVBLrLYsvAhGMAw1f7WT0DQu5QIyyTkxXEQsAXLmCA=; b=jN7VJLB5Sa7CzS52 iIkjDxgMkSKaGQMLUmBYd9XjMI1pwhw6gd5pXVhBQtQudoG8BgOeZNHQ6fTZgEh0 CT1PSmATn3MMWXOuTBj2mPm8h6Mpl7pES0iFRRIQ9ZY59chWHskf00myRcR1tMFt artP2XoGtXzYCsxRc+hicw6umgrC9vINdZwJRLd94UF9wC1bcJd7alof3Z58uQxg 7/mrLDOLdYXienLzu3HLgBlwp6lDuOY8DWbB2nDgqWp+xebNuDiEIlCBDcb1fZ0P Rclij6ZGbCbwbO7AXMuI/c4qNvORIzvmEhJPI8bITZQ+2k+l/uvYc5iJzsH+uvaq UOERlg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782707384; x=1783312184; 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=B9Wa7Ofz8wR0IbjkWQGChjaxyO4lJDRAiRRldDKFNL7SMe1+v07QqhWAxRVaOj7FPu HLUWnzv5xRvAmLyY8yq535yeF3ZdVXYEL5WHp97FehaqC2vDbZC+xvdQNmUpcf/p3ziK D+1ZT7TmB3iyNF+yTB3pvsipNB1gi7Nm5CRHmwE57pYKCUMm1iEIhSyOtGz/GdldCyN1 DRwy+DrAqYWBqfkRvRe9wyNNe0V4RryK3AAOtZc8soYmMUqnK5VvfDb6YRcJFEsmrYX1 BXMqEnQGs6xQHaNwkpqcnQs0vgDckbDka1BJQAbKNAmceZWEibQxClLvNhJ8wYwoccNT NTSg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782707384; x=1783312184; 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=VCV9ZlYMrjcRUdN0m4ZJGK5rI0A4uzI9z5muCI5KMTSouzLjg7CtY95OQeingpcr40 NpSGgNOMZda6zdC+6rrVoiuWgJb06ISXXHk+JbluwVnvABRK3U4jMaxWalNb55aVJ6b6 nT6bhZxBwedZEt2ZqKvg7a0q2Yyi8QJBGlNfqBjrMcyhEmMdMTfyjh81hwYKz+/7gcr4 P8EV88Hqsdur4D5UtHapBzQtrL92386IkTL3+D+dQnc6qxgVBSQwV4LDmUP7y4aeX9Vb 4To8sahznEmityEWWbdQDEbkhfUVod4ns9SdI9zux+Yq+2GTHj5I9H6J7zz7qAhgJ7+F NUHQ== X-Gm-Message-State: AOJu0Yz7VLgNp27aYC5bZsfvw2++nX2sYXd/n+ru+J6MwK8T6rNVJ6U4 xCSJEx471b5jXlvkYusfIaieHJJmTc44mzLpBLdgHgjOU+VABGsEUWk9Nhmm9aG5/K9MLGf+Yfj dvBUUqldoCTKYbThbuwOE6AEaF/8ZXKhQyc1/MiKHyeEAWNm0W+1QfQBHrp/3rg6TJQ== X-Gm-Gg: AfdE7cnMUVOLcKhm//p7I86+gGEbupXvvbPQFhm1xbAYJPqNmqSpb2s2wnQsnSITnin ONUzYP0/pnlf2Kk4ejbVWfsUWmB/gg60Q0AszibKQV6G74rnUJaXmtWyGZn2mMWyN8A3Gb8/coV cM8fghC3go992ve6dcm/lZn7wNMt7YcixdbTw/EeFdnwryt7wRkiv7nRW2f75xV5yDCyR+lcfMU l0Fnsd4pFtPw0L+G561EpCzGvLvsWHQpaPqUjYHKbPse+2c8tVKq3rYq64V6R01q1WRKp6TdnH4 EeCfKdja9utyB0jas+vSoHQz/lrWA9zLhHXUGyLeo983N04rSwm1I2GkVuaoa4kzZQ/lx9sZV7P 3i7fdi7yLebQ4fZ9ZbP+MYyS31GDftCeoIIO00kCtcAKKh4PVqq6e7jku9T8= X-Received: by 2002:a05:7301:5f14:b0:2f7:d419:dee0 with SMTP id 5a478bee46e88-30c84d127d9mr12856421eec.6.1782707384254; Sun, 28 Jun 2026 21:29:44 -0700 (PDT) X-Received: by 2002:a05:7301:5f14:b0:2f7:d419:dee0 with SMTP id 5a478bee46e88-30c84d127d9mr12856399eec.6.1782707383652; Sun, 28 Jun 2026 21:29:43 -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 v4 43/77] target/hexagon: Implement start/stop helpers, soft reset Date: Sun, 28 Jun 2026 20:57:56 -0700 Message-Id: <20260629035830.1520296-44-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629035830.1520296-1-brian.cain@oss.qualcomm.com> References: <20260629035830.1520296-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: AW1haW4tMjYwNjI5MDAzNCBTYWx0ZWRfX2v6Mq/33B+4T v/5Jp1StXWRC+q3W5CDno/0PXXQ9bVr/x8tUi92iS5qAAJ3w6zNNafdUFoIoMiP1JZl27gNYbit F4GIdP7c0U0ewgnCAoyAPtkE/1J35Ys= X-Authority-Analysis: v=2.4 cv=ftnsol4f c=1 sm=1 tr=0 ts=6a41f4b9 cx=c_pps a=PfFC4Oe2JQzmKTvty2cRDw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=mCWuZxMSpaUKZHDxuVkA:9 a=QEXdDO2ut3YA:10 a=6Ab_bkdmUrQuMsNx7PHu:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-GUID: SiNb-TI8ZAacHFH9tn5cZBLgXLKbT4Pr X-Proofpoint-ORIG-GUID: SiNb-TI8ZAacHFH9tn5cZBLgXLKbT4Pr X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDAzNCBTYWx0ZWRfX1fgePX7V9AtD 2lnurxO97YK8fuBOdsVlIJSyw5rdZfBGbuiVg0IbiYUn70p2yjUbb+Aalq3CInVOCQArXpLHpy+ nOGLYNiFMmE70MOLAWndSIfm8sArpCkhddSMX2RiflHrxoFYT/z3p9jUmR+wsZ2uuIlFD1TsJNn 4atKMKDNTohY2mYfh6YhGS/fpK0E5Xw5fSA3UCJ9FDHJsmSui5LSJO3rcHT9EcRvlBkYG93YIIx wG5G4Sa/JtbWRGRnICv3XY/2ysQ5uIT7P9+kZe+TdVqmHJV6GGa+0n1KbjVYAtTcC4Sim+3u97M gpiof8+m9RwruCXC4eSNHMyfNTgB7AfepiJEYhZmNJu0reHSgpREH14t9QF/oLZw0uljgDopNYb gHvro6x+kjpM8qfBsN1b7qA5QISN/m+QApyKnHqbLfktRnhs9efuJ2qktQa4S5eW3cZ3lCF5Xqa OyVJzjPzAVh6EPagLoA== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-29_01,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 malwarescore=0 suspectscore=0 lowpriorityscore=0 impostorscore=0 priorityscore=1501 adultscore=0 bulkscore=0 clxscore=1015 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290034 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782707449166158500 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 Mon Jun 29 06:52:23 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=1782707488; cv=none; d=zohomail.com; s=zohoarc; b=imCz7/ArinZP4LPRNfOSMgBW/hYTifLHse9H0pVMR9uXrTPwQaRRl7P4LAXXoqSUKCTyldldB+Q/HW96wDbH/VaWbkO3Wp7azmAPdIbYts/EaiJb3zzhfgRnXFsMptYGl753CfuZEHQdheyXsXqRtBi0xZLJVu3w1W1qzHIiIp8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782707488; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=S+LQiA2azKOFjBJjvsZHND0fCH4u6D0/4tgngMaGm3dblsN9ITiXv8RB2dWIgT+9dtPQ3Ae+Stbs2vDbeTN+EvV8AB72BQuee+XfzbHWWN9Lc0lwpfDcNJAc2iI936IP3oHHioi3mVgfSrNNacF4b5mDAY+whS1L60q2IkbBrvc= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782707488206897.111262127503; Sun, 28 Jun 2026 21:31:28 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1we3da-0002n8-9W; Mon, 29 Jun 2026 00:30: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 1we3d1-0002d7-OC for qemu-devel@nongnu.org; Mon, 29 Jun 2026 00: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 1we3cx-0000jd-Lb for qemu-devel@nongnu.org; Mon, 29 Jun 2026 00:29:49 -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 65T4NJRb1724660 for ; Mon, 29 Jun 2026 04:29:46 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 4f26w6mfms-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 04:29:46 +0000 (GMT) Received: by mail-dl1-f70.google.com with SMTP id a92af1059eb24-13980b6561dso7392920c88.1 for ; Sun, 28 Jun 2026 21:29:45 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30d3af0d2e4sm21314609eec.22.2026.06.28.21.29.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 28 Jun 2026 21: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= i/UBxztk9FzNckObXXg5AeElk2tIk+IMNK3xdbJ6LSM=; b=T93HbzR4/22pTHGP hSBJjyXIV6jMg4m3WcYHTvKczYpSSvkd19Ao/puN5qrpK3BWiC4kT4HnwvwN6wVL VoV3Tdx2ka+BcxxWm9dvAOm5MbDaoSxmHxhM9YyXBL9diglMrtN2dss/lREoVe+u KOmbJRsdDHDKJBS3OF9zklhaY+llFUCO2a1QK8NPLTAAxygKV06h6t3i+CMZnKrD b0a8PheJfnaKntQEgKWb9QwNrcINcvt/SGeCsfTqKK4Ll+Rkqi9InIVgrpZmm8Ot wA/leIH7o8GDk5SMbWoc+bo3YJckcRCfW57p2Wotw3bwQiLvkSwze6gbGbozCj5u VdfToA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782707385; x=1783312185; 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=TpUT54LIiaeDYhPFU55rEUoy5tHyX/ak41J3dleCH/XwMJER4ZKS96j42P8Wd3gBdx p7/r626sqZ2lpTAuU2MxoPFv1K1CTF/DmJmzbGuD3/FMpQ59ig1Inqwl7Npsa1c5BIKR 9Kouv8zCBeW7HlvBW9jnB+Ea5lie/CcDoF1W24qpeNpuh8H0mh/O6UfZJp/36olIDaTf vCOUfbIqzB1wteiqtt2VQYPP+adIDUHT0wU70hiHUTnhyzLO7V1iwYKLePGICpylyft8 gqG5nc7nNR6yikDDepAqOq5qToiQbyF9urhl0yQH8fefL9KpCAFIQrTsCLIqw/Syvokj gXkg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782707385; x=1783312185; 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=WX0LHGYgH0SHWOheCLqr7n7A5BX/oXXOCZs//AOv35urGRXxmf/zK69YxIiv95oObg yohRUobMDobmVxwmutPBSuep5sAFJKdqJHUUHFWM0DubRaSzGu32zBMeq+D8enR9l2r5 EsMR3t7/MkR5cybvsrHUS8ie8VIIXBgg9umtRVgL5Klw8tbRppOWmp7+VtoHm1OXyK26 Pt/UraPwlgnilgZLEEzRqKx/umpp4AzzTPe+hqiLtJQ2ELVN/7307AcDJcjHJKFJFv/W 1mXTWSIU/E+QhWdBjhBOqA5CbbyFRkXprr5pU8lGFW1yrhBf3FO1Ys+bttGeDBCJyLnl aBcw== X-Gm-Message-State: AOJu0YyGh7DknIN8st6kcpnHhhMq5qQp7w4ZYagohlb4/cmbI0CiVUF9 CjpWo4A1HHIl1M9eaV/5sJjoL00ji1jOq4r1+x8nMK/ScYtreM9kyeSu/JopvIEU6Ct/eovn2pQ AG2NIMWwHJwOXGB5QaZ86Yhhsz7imKZ/VIO4bZa9JsaSUg/NEy+D8zQLtfLUxQkfkzg== X-Gm-Gg: AfdE7cn+QcnmSbCtow205xUQG14/Ddm/3pDprC3zTWMaRz1hcKAu3nU79YH0sPQYNLM JP/0H3VofSe3fTaZcDynnujigutpY8EqbVFxtRYn1sczvDj59GU0fx3Z8VINTzdQbXGhgnIO4hs b8bfBcVFAYkowUuRIq5fwCFnr5sM8fhzfDbmUSMn5Zox4V8940DSMyA0wTUbefweUOm5I/A8RmZ h9sbZlgJaZwpAik/4+Vsxs/5lbVEtkLZZIeaYRK/guTBA1DUYgNqvuGKKh5TYGj/bQ1H+YpdBjI jqVnTerYozzMhyOiv39KNmpkXew9xqaDpryVM5NergMk+GWhyhvy7ewTWe2AjJ4GrtsZ4i27GRM a8k6I5mbG4oqZ7kw5/h2DKVA3CaqpJD5KB9rMZW2Y1MJwt8JOJODJvr9JZQg= X-Received: by 2002:a05:7300:7308:b0:2dd:c066:bf7 with SMTP id 5a478bee46e88-30c84e2074cmr15037409eec.11.1782707385127; Sun, 28 Jun 2026 21:29:45 -0700 (PDT) X-Received: by 2002:a05:7300:7308:b0:2dd:c066:bf7 with SMTP id 5a478bee46e88-30c84e2074cmr15037394eec.11.1782707384537; Sun, 28 Jun 2026 21: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 v4 44/77] target/hexagon: Implement {g,s}etimask helpers Date: Sun, 28 Jun 2026 20:57:57 -0700 Message-Id: <20260629035830.1520296-45-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629035830.1520296-1-brian.cain@oss.qualcomm.com> References: <20260629035830.1520296-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: PoqOocsS-Wl3afSIid_C4kvfp9khR4-s X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI5MDAzNCBTYWx0ZWRfX+6Ux2rMh20ka FfM6uZoPXIQ0fLkPcFSl5QNnNG8pqhNYct76PM9YmtqkJ5rE0F0PAEV5HhxnEvGwMN9KdHIhBJY 4yfB7WwNew4LNzDp0AIvcvoI5zrtsug= X-Proofpoint-GUID: PoqOocsS-Wl3afSIid_C4kvfp9khR4-s X-Authority-Analysis: v=2.4 cv=SuugLvO0 c=1 sm=1 tr=0 ts=6a41f4ba 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=yx91gb_oNiZeI1HMLzn7:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=he7afFXPmx5H4pWyvLYA:9 a=QEXdDO2ut3YA:10 a=Kq8ClHjjuc5pcCNDwlU0:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDAzNCBTYWx0ZWRfX+e8Z+DL3kOrm we8UiJeHNhMDSnHJATIW3aOq0Ow/iUmzSFmJNx+dEfN0aLmU+6eHAjZwysAbpwJvLRxHPuCaUre WKXZp/M/e51MaGjQMI1opw5ILkG6OOmdoilSJGHLw5LRa3j937BP/GY3/BiuiGfE9u1A7UsyIv5 H7qeXdXRX3NmvY7rtswmteSMNak893I34i9uH3g+0/I1IZe0vFcxvTbtDOyk5Kc+DO7EzQEhvgg C0g7RRP+10royqPaMoKKS8oT14Uhiim7WzQ7YXL1MKCaF0oyr5E8ZpYmpF/Byts18S3dI9669Se S61iQIyP2uHaIWX69ArlG88chvFh8134SLqPtyJBzzXD8X6S7fqkHqYPu6OdF5MoyV6vAkzD6n5 zbkCem65bNzOUoXPTp3GwrZ9SuNqymiLWKa7KhxtnsQvkASnr5rAXf5Yiqt2z/ihuHpMtsE3141 fp0dgsP3IKrq7dMzJwA== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-29_01,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 spamscore=0 adultscore=0 priorityscore=1501 clxscore=1015 phishscore=0 bulkscore=0 impostorscore=0 suspectscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290034 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782707489314158500 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 Mon Jun 29 06:52:23 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=1782707627; cv=none; d=zohomail.com; s=zohoarc; b=Yvc7inSJEFmIknHngdlWOdUZG8yl4moa3QvdIl+8uDQqJUCZE5RBEFtCrnlGF1GDKr2MKHaNnVnZMeGdkjUpa7bErZKXN1rH0Fs3VngPucFpX0283E4lmyjucLhcBtV3DLbHikQzDaivuQIJgp9XER+RPOhLC0xwMhh0/DWChfw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782707627; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=fvySbe6yFE25UYj5z30Z7Y+53/rU8xQoPkc8/dq1YSj8qTJPGDge7c3GLUWQo1kjsc/oJ0WLJWBNTNYc/DvvBT+0uvd+zzxrolEkOKZMjRR7C5ZSWJXYn4jGQXr8rwRxHFg8gjx0yswlCVd8YfZPBCYxTOaYANDXL5lwAVhZagw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 178270762756034.82418872034725; Sun, 28 Jun 2026 21:33:47 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1we3dt-00034z-1W; Mon, 29 Jun 2026 00:30: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 1we3d3-0002d9-Ko for qemu-devel@nongnu.org; Mon, 29 Jun 2026 00: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 1we3cy-0000jo-RY for qemu-devel@nongnu.org; Mon, 29 Jun 2026 00:29:52 -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 65T4NHU81787648 for ; Mon, 29 Jun 2026 04: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 4f26tuvfdy-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 04:29:47 +0000 (GMT) Received: by mail-dy1-f198.google.com with SMTP id 5a478bee46e88-30c17f62afdso2540601eec.0 for ; Sun, 28 Jun 2026 21: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-30d3af0d2e4sm21314609eec.22.2026.06.28.21.29.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 28 Jun 2026 21: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= HfSshN2DTXGV0fIztvVhxkGkdYU5fHFXewTdLdv52c8=; b=i2EZZLITJP0QAGrl EsFCDiPbSIhLQ3jnaKyv2W0wz8vWsw1phRJ3/agIlQ8NK59WT/PqqSooDl8ieDIv B13fc2qTX9Y7efm7Mfr45eqruroLaUEQaFFF7rY1api/ZjJ6slUdqRYcUdupr3JI XuWb1vVmvSSFu3WqG/Df/AN/bhMQnee7t3Ni4j67fN7sft4EOaNAKGliFnY9Pvkh 45IB7Zv9R+QkuQMvJBn9TRpddt75F0l1tPYTaZAdt+bfRIwkOMtsHIx6pMLfDbkL /itP7a0T81cDo3F3TIUWwBElpk2cc0tx1DNawjnixiSD/lmLCjDRiodY1/IrlFTH KaguTQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782707386; x=1783312186; 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=jQX7nodj+SYPsY26MWWVzlV8ORdRu1+taj9xbh6Lf3kE5Abs2AkikvQhGHacPWGBBq 9kH1wD38oBRIFPcw7WXucIgEpQhCWpBQCgwkaPj3Q2a3/D6cjLmvRYU7kRiY4ZBJ+ldt rczpCg2IJGJgEXRzkCtEumFw/mx0cJLYnP3NIq3q11BpKw0nIe3PBOH79uqNDA01O961 XOsok+9+xdrvO8lviz782Q1GrWJ/yZbKoQScPWOTxc1v/ZQSm/Y6hLE31GC+OJxpr63N CxoNwwW6I3uO4jd/wnA76UkH1GUx7vk2AhNl+ouEXQmmy0IJ6UWNrGWWCGSX08QG1swR N+VQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782707386; x=1783312186; 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=qjjlpa29/3HI3OQBZ9Q3k7ZTl7V8BLe+qBv2RMCLMg7nsaCNPgAz83E1/KpzfGxN/J QhWlTwDTu2hyvT8sMzS47NI1gUH3+lZV8Sn6LA31wTeRb+PXpnmT6dt3V0lPwG5PwP0u imTdzmYG5l6oFdUcPnAmwxDa5IPdzPBg+qzUpHOLHldfxlow4BNIWXQA/F2VXH22Cwy+ dT3j+sSNyB5bQF2yNQeZgY76jDz4wGPkEBQd2nIX6VG2RYaFMDvoXpiOMxlF6KN/AFhM gyYr+YafKFCFfFFBuvLrYchRW03LDvFm0Ox0D/Dml6DXKXQjzqw3916HTW+978pJua+Y BgJQ== X-Gm-Message-State: AOJu0YwXZtnlTvCtVOamMBVKgTP/TQxAtn8o70qFLpTEzLu8kEafTTva 0vW8yl/25k8J03RH3SlhjAf3r1jB2xmQmT+5fu70YN00LTLfOJ1mlB3cMTYg+kCLWn4TxbB03MA G2DgE3HAXPE6UP1pDFjZT4VpqB3r0eQ4uwvdA+6d3L6qR3aXwgPM5fRkyVeW27xIAsw== X-Gm-Gg: AfdE7cnBOL0xx/erqCAe85QrhZC33O1DTP8DO3JQRdx6IXdX1Ji2iagLG38mi9K8lfa Svk9lY+N4dXL4ocFqDdp1BHJ2XJe8clsRCvRpA8/M4S/70KmQ70v4LD1b3rDDCsTPATNEmwPJrh EVDNKiBEI8krYGBSLHAkdDJ9zWrcHEgYAgPK1PeFt1VrYUZKQt6PzksgeoIdocn0LJH45ApNuRF mXFdrpo3L/WpB+6g68UPj2H5R1kn/rVrCeqigOQl4RFgXLuZ9WQd1DojDkqZ8jTvnI/IJ/Rsej7 OngUr7d8NrOnTdEVy/skych1j7Ng7qeZ5MkBq2TwW5StdwBjcA21g5q13x/M0HrsAcx9e0JVpnH YB0d/SRDP5Od6pil24WxPhKCVAGjqrFco09uKWgMiWd2d9e6Nd1PG+95AGXg= X-Received: by 2002:a05:7301:618d:20b0:30c:9ca4:5cd0 with SMTP id 5a478bee46e88-30c9ca45e3bmr6553517eec.4.1782707386245; Sun, 28 Jun 2026 21:29:46 -0700 (PDT) X-Received: by 2002:a05:7301:618d:20b0:30c:9ca4:5cd0 with SMTP id 5a478bee46e88-30c9ca45e3bmr6553508eec.4.1782707385737; Sun, 28 Jun 2026 21: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 v4 45/77] target/hexagon: Implement wait helper Date: Sun, 28 Jun 2026 20:57:58 -0700 Message-Id: <20260629035830.1520296-46-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629035830.1520296-1-brian.cain@oss.qualcomm.com> References: <20260629035830.1520296-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: AW1haW4tMjYwNjI5MDAzNCBTYWx0ZWRfX41+q7QQ4yD7Z TEN8YSz8NBMUDc8YfTOE52DelkUoMPb3k+ItSuzPOpXC2d/NYblJ9PaL9GTXEqtly3XICVw00Pr txK2WtufeRRNslcvzPYCVnKP4Aqdsr8= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDAzNCBTYWx0ZWRfX0Vyuy2hcQ8+8 ZNUIpmSoEYRtrlQ/q+Vi9L7JNgqPIF3ZQwhTGEK18JXf2Dj5vylD2n+/cSmNLyzXGlt/FKemn4n cX8woY1/HNMfYzJryf27uJxi6GYF8aEEYIbY9DcoUkM2Iq0HIm3GeMGZ7NFGKEGNEdSzc4y1JAR KTDU6MByqUBaDk7vQzIfqJBTTe+bCZ8GySidaOCAFt143NIugCRwdt7Es8oQbwvaX3Pz1OvoHiQ klN7mAZ7WTlMkg9v1Up8sGTqOUvQcn1pDmVAV6RWP1oJD/knk5+dGPE8Ub9vu7yOtc2YwYlMz5H B/2PLKbVs6sg21WE7tL/2GdfN3QKRn+/e03ac1WHbdDZuFi+MersKupHLtt6I0WIQ5j9q4bgo2O 3hOoJFNtJ4S54xT8r9X2K+TFwhnUDWuRwGKmZiJDBbT1SQ3ns6T7+HozyLYw+O6cgrj++Q8rxJ1 nwTqZgEc2jZuF4VyHVA== X-Proofpoint-GUID: 1EOh-UJwko5LBKBjb6dTMfg1eo583V9- X-Proofpoint-ORIG-GUID: 1EOh-UJwko5LBKBjb6dTMfg1eo583V9- X-Authority-Analysis: v=2.4 cv=DY8nbPtW c=1 sm=1 tr=0 ts=6a41f4bb cx=c_pps a=wEP8DlPgTf/vqF+yE6f9lg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_glEPmIy2e8OvE2BGh3C:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=UWtQ3YZIe0Xef7kIUYIA: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-29_01,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 malwarescore=0 bulkscore=0 clxscore=1015 impostorscore=0 lowpriorityscore=0 spamscore=0 priorityscore=1501 suspectscore=0 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290034 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782707629582158500 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 Mon Jun 29 06:52:23 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=1782707488; cv=none; d=zohomail.com; s=zohoarc; b=kUn9V9Sb7S7I9zkh64lpgxlfEvoe7jD0L75hcHjjSXsx+TUqMssNJoD0JAHW9t5dJQcvhuAIXX8J3H2vsCaGCGauIq0JidHFwqnz08fgcpqkAobokti9SjlLKV2LPMBwFWWXpYpEr/eMigtwj/i3aWrpJTh9o3FljTR2fqOPA2s= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782707488; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=V+XGPfLP86TwV+Zu9FK6KvZpluY2UOx3PwBLh+QVlhL1LzoztY7OZLU3+jJUPFRvPaN7fZ5/hs2FLoNb63L+iTezw0qQt4xnoPeVnpBR2Kzscdr3yqMazJgUmiURDK/c1Ry82OwPeFYqJJ3IgHE5OzEUzlA0dbygKAmia1uhvEs= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782707488201691.5345209367399; Sun, 28 Jun 2026 21:31:28 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1we3dh-0002v1-RL; Mon, 29 Jun 2026 00:30:36 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1we3d3-0002d8-Kf for qemu-devel@nongnu.org; Mon, 29 Jun 2026 00: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 1we3d0-0000kB-W2 for qemu-devel@nongnu.org; Mon, 29 Jun 2026 00:29:52 -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 65T4NJI91724605 for ; Mon, 29 Jun 2026 04:29:48 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 4f26w6mfmy-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 04:29:48 +0000 (GMT) Received: by mail-dl1-f70.google.com with SMTP id a92af1059eb24-13980b6561dso7393061c88.1 for ; Sun, 28 Jun 2026 21:29:48 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30d3af0d2e4sm21314609eec.22.2026.06.28.21.29.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 28 Jun 2026 21: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= UbuzJ7YCQZGqOoiI5HAt63RuanuV51wqRpzkdURFyKo=; b=hnowjhamfs643i6O 9PIlqynfZVRCCjMqFe8r6GZ2io31f3f5hInKPdZGuWeIWhubkkevWuklN9Jzl9HF 4Ldfb/V+AQwjqfbV6lcSY4/qXY8LFNpXfflvKj3yTCRlXMz0orTAN8g9j6dhKwPu EQAfX6xXpXOMOrgkjwD37wXfXcp9XEh/xAg+bnZkz05fzgv7cwNqtCW8Xce5yQd4 NoBZOGidnx+lnrgKkUD3wZ+1fFrygrP2ZlgaOSjxICWePKwvvmWi/3TDUktFIm4Z dJRaSgVPo6FTkA17ngvg1VEq3ssmDIUybl+anztCxhJi0sKiBJi83rYpbJ7UuFhP KMB36g== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782707388; x=1783312188; 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=F5Md8WRMFee76uzU3eQFL7XbudSwQ/52BR4POoe4JaYoMmmruTETJ4tXdBw1I0ysIf Au+u7/JZbGZekvlgss5k/tX2nao0chCxkW/nj9TXkizwU8N70ul5kEFZvOfMgL01Xeu0 7Dy6DAXyOF/IfUUK+hLBrUVFasnmSqrQ8Fdu5IbpYnpkk5qpXJvI5av+CqQ31e/vWJ/g pIazNz0yEeYX/Tr8+lPGGZ19QNQpuWCpBlA+qvPmAWGxLPbCj3vZsMcdutNwMWeIRMWd MYvKzLGPfL//7EGrR6QDHS11nr+lL3TntklKA86FoxeD2P9QrpDVpSf7bOI3C/RhMD48 mb6w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782707388; x=1783312188; 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=gMRDDvSSY9C/9ovnxl7tMbi5F2jDChkcqkDjvg1qr+Rw5NSv6onHGVZV7BkzjTfOc0 e2Mw8wdK3NuOiNxVg5vOdvK2H0MYIgz+KSB46ubTz7rCgf+XKtC2NapaOzdDzAIB83Si Xf0L4q1Tqx2iAwpRbfanCegZ+xasYCR3DG/Kb5pnmgFOO2QwuJxTkat8NHTkharDea0q j2CeeIkv/VV/KyCvdojbkoG1WOGfUf2fWhk4Oc3v0bs20aLO/jY/2MC8G9E7QA/aNmQs nE3jEgmPfDD/RXx17rj+VoaAfYp124C9Zjwh2pgEp7LDbP8A9XdGDX/FAOBsJSRLcu6k iNYA== X-Gm-Message-State: AOJu0Yze5Rw0ahRF56igUvjw50awTAsqN/sUUqq9OJ6Psz37fb9xW/BO ulNLOL15xmnKLaqyIEenD+3A6fwLH3iK3QlY+2DssIAH0X/bN6lyqFaMKmEMSJ2Yy5gTwC1wgbr 8rcj6YnScBv789/UoZbH/WeHg9f9hpBgREBuxTRiqg32Qb5xR+QYrtBqGiDvakP8VxA== X-Gm-Gg: AfdE7ckm9P60TFagj6vePh3YaMt6OuGpxLdtLDJcIG4Lo0Nab8ln9lxs2GNI6Z+yZAV 6/H7lSJ3wKk3GyXbAGTYXHl2hbBiStgKoA2PgdIHAk7eEATV8vvBI2dAFoIAM3o4ZWUTIrGKr4a RxYlxZBEVBi0vf7vf8GaBYnFENp/KErEs6W63RkdAAzRtatf+4c3wKh4UsY9QLSTB4WFuFNt2yJ Bpvt4tOYNMdnswzQQMkPmEC+UzhIg5B0eQBI97i/gLPJuVKMDV5BvPicLaPeCYlvDmv4gGbHrX+ Fu6LtvVKQ5RbCnsDqVvI4TfRCkoEBYIHiArwV9fXWmTrzAFE4AoC2cqrIKjnVXxUqAKB7Paz3gL NT2g+7LJPmqPqc069BOzHaGqoJX4+65tjkUQFXr4jqbDBuNhIjSDH2SMhbyQ= X-Received: by 2002:a05:7300:8ba7:b0:304:d14b:b706 with SMTP id 5a478bee46e88-30c85069850mr14128010eec.27.1782707387712; Sun, 28 Jun 2026 21:29:47 -0700 (PDT) X-Received: by 2002:a05:7300:8ba7:b0:304:d14b:b706 with SMTP id 5a478bee46e88-30c85069850mr14127998eec.27.1782707387183; Sun, 28 Jun 2026 21:29:47 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v4 46/77] target/hexagon: Implement get_exe_mode() Date: Sun, 28 Jun 2026 20:57:59 -0700 Message-Id: <20260629035830.1520296-47-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629035830.1520296-1-brian.cain@oss.qualcomm.com> References: <20260629035830.1520296-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: heG-g0ZafeUYlB-cgmWLkPBqFJWSQ3BK X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI5MDAzNCBTYWx0ZWRfX4vZPoDmJRsxA SoGnEl7lwQNZgKcGpI3LgZNUrNfYC9Er7LlC8awGtYHNh35DdC7XPv3PeGDdg+HX7BsDvCfbCnK mszuuHWGb95HfslWxU4+6PBvzBBSAVI= X-Proofpoint-GUID: heG-g0ZafeUYlB-cgmWLkPBqFJWSQ3BK X-Authority-Analysis: v=2.4 cv=SuugLvO0 c=1 sm=1 tr=0 ts=6a41f4bc 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=yx91gb_oNiZeI1HMLzn7: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-Spam-Details-Enc: AW1haW4tMjYwNjI5MDAzNCBTYWx0ZWRfX9hCqkPIB4N+T rIRuPyc/uVTZLczust8wj8AXAP3NoLSDlflGwLUfH4TBhPbZcCafqQoeI4/OSJ1baPJnJzysC/I xs97VoLFioWGBhiQIPeIFwZJHyWMsVW2Q5v3QOKgYI9iisp548lzuw7cMHMLAr6enAl8e3DyNBv MEArYwgFMHawYgosTDkpVJWzxQC1/BedPhvKRDlJmBDbGLqTp9KoYtVoEu7Q0LHOh6d+/RNgumS gYYOKgr9Det9yc+MnX3SM9VUlcjd4mCXAvEcGgP2NOjl0Ri3wNsI/FcQsIdzTlJNSoBWYfzwLvs 1Tk+0Q9s+sRcB+2SFpZ66Dx329HN6g6sJUGCxyI/1z/qFuhrr7xxv5V0ifawqbxGW6V3I5HpoWD vx6ELK1KQ51nJ8hSYhm1Y45cMMYA7IauYeXmWuYzpLUBrnwnKzHbrTr7noa0by9DyA1FYrds+El nOPO4ijvOUaHK+4CZ+g== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-29_01,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 spamscore=0 adultscore=0 priorityscore=1501 clxscore=1015 phishscore=0 bulkscore=0 impostorscore=0 suspectscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290034 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782707489312158501 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 Mon Jun 29 06:52:23 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=1782707447; cv=none; d=zohomail.com; s=zohoarc; b=UiqLiSrkKaQVFmUuSgWiwP60w5o3cHpQgjdgmwzequWsXaCe8kBFJ/E9uFJ75+f/4K6JOUfXsK43FyxFcAbcxMCOwEoIMcxUIBvXS/c7DVmmAItqLgsNqeWuBqmC30/Mq6ZVzgFmSwa0YriQrwLDcm/lmrSg0A1EzrWo6zKdd7o= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782707447; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=U4SZXQIlxhJsHkS3QNa/L0WZEwe0YOaLhNDmNSYMPIjIeSknACpdKaXgD6nxmys2xcFz8FL76TaH1jR4t+a39xWcL64j4KXwhHrkSbiC/g00e+9NFklBucmnekRi+2ViQRpjOJF+6aq7/Y2CMHX+UQ1aPuO2NBtjOPUuLcnepLs= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782707447254127.55229386128076; Sun, 28 Jun 2026 21:30:47 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1we3dP-0002eO-FF; Mon, 29 Jun 2026 00: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 1we3d5-0002dL-DI for qemu-devel@nongnu.org; Mon, 29 Jun 2026 00: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 1we3d1-0000kK-Jm for qemu-devel@nongnu.org; Mon, 29 Jun 2026 00:29:54 -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 65T4NJrP1787776 for ; Mon, 29 Jun 2026 04: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 4f26tuvfe6-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 04:29:50 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-30cb2bcbf7cso2341261eec.1 for ; Sun, 28 Jun 2026 21: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-30d3af0d2e4sm21314609eec.22.2026.06.28.21.29.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 28 Jun 2026 21: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= 4hsqE0JDPfvXJ30nhCZ/CCXuACFuBC+IpE9moxChOvw=; b=Dew+Nd1vc04D/YTc qelmo8AWWHstRNbcf4mXwItwqNUyr8oaWW7o9DnvITaEfJ1miqgmHbV5U6GvwnHr BffyIh20NZvR8qj+q9MWzO0ERdv4Arpv6exxf57uHHyH2iaDPGpQDReH2rSboJsI xdQJhbk9/mP+zrxsbgi8JbO1F8CvhSQieeyg1xO0VAtNPiff2ysAmvkEVvIWkDel gxgzK9PAXSjCCOl3kpp8ZifcDEMwLnjBxcTA8QRWE1B8iRs6JP16/bzj3siqv/z7 Dyg5r+qBfgi7VO+TgiX9kH0OL7X/JOIY0ZmUcozD1dQfNfVg6+MjqznsPD4H7mer rfEsFA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782707390; x=1783312190; 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=VUxVlH2Es9kUEP5o/fcSt0pjHt0keRmXGhjwpPhc+0Sl5ejlD2cjHvidJIAjSaVijb FKAsRSrqdzyDMJBWBp049PjqJ1Te7yyT8gzUfd8DQQDH9azOtmCUfitwEDmcovlsM5XV JHilSjcwYA5xyzNuRBqiYak311mJ1L71WcIyXsu/WimTsjsFIYNFtkEI3BYPBO7kYEDd pFLIt68mXq5UPwA+hSjJ+iUhyBCtDw+UIiT/4dCyfW3tI8KpZlyrxKR8ydnVwkUhebTp Ir4eGkjxEF5wCdhOonj8bVLmyw2DXdsIN/H2Q11YQCSc1dv+RhpYiawXk++lrcWbsRLf ddww== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782707390; x=1783312190; 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=SW3KpzwVwSjpyh78syLQYOG6FnSBisUBEqIRz5xK83A9Q95RzsTpRqrkZ6PsloTNOZ VUtrB4Daw6bNSnQlqTdVkxMmNEqvLZmJg8VyPYzXbFopaPu4RVh6bEUcBrIU0J+02Hon f5lJnpvofkbusGV45E6wSp8cdR6AUWZ4SW+jBFkqgJCZcY3eZJXZiGQk42eTA8My8p41 Zda2Thlkrka1if6HQ0uFbo/3mpjzMgcdjkDnhUUGJiSb3VNp3vbVQqwEePPPQauSqpyU 4/V1Gmxh2jLbtABt6MADKzIJeGzdMY7NcJYDiXVwLVy/VoHNnscBNUfwqxDRgpzHI5UZ yCrA== X-Gm-Message-State: AOJu0YyH8A2/3V20FkBdHfgFHUMdwgjp4uSuWctxk+t5tncRI1SJ0eg0 Xm0wPJ3EilHQ0z9u4/2Shq1oyMdr+aC7wqjPXNyO72i/fFwvw+0Ifso2Nm948sxhSG1O1moRUHn 3yRyLYjLUpicznA5peUtIbpurCJCciWEnk8b1dB5he6V0qBRrKUCfTQz9F06+/uHDKA== X-Gm-Gg: AfdE7cmL/bzBSIyEf2rbgLkPsb2G/C4F+NUN6kWlVzDXZQ8igL2aOX4gT+pcjtZ+mYg NnEN1EIrIZAdLyD4fCgTQ19FCWX1uBz40eCZjP9zUIr5i/OQaop7wC+VCFV9z/bJmhIL28VTIt8 Z77WLlFVp3zIAwUpvf2a/oiJ9obz5X3ZZ/L/Ct5JNPSlSjd6dPYaVw9Pp2qFvLPjQhu2xphyQ0b 5dnEOi0R3ubylWpygIHseOg2Fxsyr+dtorZqyOVAy6a1/3FzhHlM/a/uxt2IYd+w0OKgNKYklVY c4qHO09SDN5K7o5WJjpnSI+QtWixHjyFI37EfsWGHqm4Hiswj1BtJrH5DvRlxdOiPQhUGa1J506 hpP2SH6Vh5XX5Sc3G8SjQh5Qwh9O3RtOjJYy3ZoQJfnBsZDX6DyScb1ilQjo= X-Received: by 2002:a05:7301:9f14:b0:30e:d49e:428e with SMTP id 5a478bee46e88-30ed49e51e3mr497893eec.10.1782707389568; Sun, 28 Jun 2026 21:29:49 -0700 (PDT) X-Received: by 2002:a05:7301:9f14:b0:30e:d49e:428e with SMTP id 5a478bee46e88-30ed49e51e3mr497879eec.10.1782707389055; Sun, 28 Jun 2026 21: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 , Laurent Vivier , Helge Deller Subject: [PULL v4 47/77] target/hexagon: Implement hex_tlb_entry_get_perm() Date: Sun, 28 Jun 2026 20:58:00 -0700 Message-Id: <20260629035830.1520296-48-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629035830.1520296-1-brian.cain@oss.qualcomm.com> References: <20260629035830.1520296-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: AW1haW4tMjYwNjI5MDAzNCBTYWx0ZWRfX6w/XlQztWXV0 hly8u7jnVZ4NTV228lifmB8a9Ho54KQpqJetFQ5uFQ/GVrtKOoniGMk7s8QZ1Jj7vA0SktHOQ7o 41T35UbhhAXPdIiJ+LSgWA5JZvCd708= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDAzNCBTYWx0ZWRfX1gEBxeZ1MDmS QxgleZGGJ8Vuko4CzwhGASsdpmv2lmNdn9sFs55Uz3heWpM7VarpAYOFgjo0nxMaVBwPRNi3Crv cpcFZbPhf3PB/Ar+3AuHh63XrNT4+rRvAJByH2ZKu5VhIMqz7zCW3pLQKsSKW3jv3RJY7E5QaJN vnf0atjV3ufK8+mk48+ZT4bl9afC4Lr/MD/sQWwXXAOUjOFo0WfeRZbH+8+phGBNGhPULC3BR0D ZjdNkevfHpzJDc/p8JPyl7lEBd33RKdCQUkp2uI6Hd6BexBGSO0oY48IPJBEF3Jollj4rGgDCGh hSCFoyQigklnHMcPu3PpHkDMma+H2/TklHuTTTrbOjeOCAL6Zc7yQQ7wE/i6xtuCz/yxR24PQ/3 WwuYEytwJhHJEfNwfCO+GLWP9NLWsdXb6Qsd6+fJaRc3IrYEqmkxlYE8+Kl+YPverb9nR3+uma5 XMCJjkYmivJpxeFW2Tw== X-Proofpoint-GUID: 8yhUXllYw9XBWFtr-cTfjq4kBYxVBTOi X-Proofpoint-ORIG-GUID: 8yhUXllYw9XBWFtr-cTfjq4kBYxVBTOi X-Authority-Analysis: v=2.4 cv=DY8nbPtW c=1 sm=1 tr=0 ts=6a41f4be 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=RKVJoAg1yBLoogzcrgwA: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-29_01,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 malwarescore=0 bulkscore=0 clxscore=1015 impostorscore=0 lowpriorityscore=0 spamscore=0 priorityscore=1501 suspectscore=0 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290034 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782707449136158500 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 Mon Jun 29 06:52:23 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=1782707545; cv=none; d=zohomail.com; s=zohoarc; b=ZpPYzsv3zorM2aOe31/LOqdUMTW5D8/GPQOHUHhSw7aG38mwWJaQkwdJVxctqrCMr/vI7aRE/H0JtQpViVhAgLE+udYajpORX0Qc6+6QcOruggwgu4JQq+xfk5AjUDeZAQnJe8h4875v2VWtVXRoTJsaznnK52hEkuTffoMIzw4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782707545; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=fZ5J+7vIv8u+IOiYlCHgpG3R3wOnSjBpXZ2x6Nsbdt5YlnnZwODyShvZ9si/AfQ7mSPY/aL5/xJe97DkUR2F4xaElaM4os1ROcQ+ZM2CVY5Rs4g+LSkFP/FVp0wHaqGJb3UbbipfiVSsKDL/4PP0sRiiu/Ult2KWpEeItjZ1Ruk= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 17827075457962.076022927193094; Sun, 28 Jun 2026 21:32:25 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1we3dt-00037G-S3; Mon, 29 Jun 2026 00:30: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 1we3dH-0002fE-6c for qemu-devel@nongnu.org; Mon, 29 Jun 2026 00:30: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 1we3d3-0000ka-D5 for qemu-devel@nongnu.org; Mon, 29 Jun 2026 00:29:55 -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 65T4NYwH1777447 for ; Mon, 29 Jun 2026 04:29: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 4f26x8mg7a-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 04:29:51 +0000 (GMT) Received: by mail-dy1-f198.google.com with SMTP id 5a478bee46e88-30c1f6c5559so3245596eec.0 for ; Sun, 28 Jun 2026 21: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-30d3af0d2e4sm21314609eec.22.2026.06.28.21.29.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 28 Jun 2026 21: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= aIbWXnylGEOIxNE7Hh9Cxzq5WDrKFEMpHLRhBN9RrG4=; b=ZJGnOvXVQONFSxA3 7eiPrFnyPIe35V38cd0i8wBW3+S/P/Pw+2++Mo4h6loEGn6NNH7TkA0dw83q+aaA DFMkp6X2UsXnXZU7ufUUYpHaiM6mY6UH2eJOiLOCg1VWIIA5VbpqqpwtBd3x/SOz a4PZwZSrq7wO5p5HA/N7hAPYJEack5ITquEWLHOgtFfpyyBVDsf8wDkPRPlrl/HF UCxlSh3Uc/AZ6y4GOKkFS8gcjNnjNakvV1OBE2Mu6ewobqAOXt6PtdnkmL6HXVHp NvHOi7lwP6Ff6F+rBpO1ImMsYpkc7zNMNd1D/c720ZDRIUMrGHeWyYoIFBKuFDGX 6lexFw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782707391; x=1783312191; 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=aIFuPRC4s1WoXRur+dpzcq45gMaxg21ql3eEs9557ZpN0+AgnGuGldwGytl4Z6SXFO kHmJpyh2vaye/navfnlJYdL5JMymKskqgsSvzSOTUlpI7bj99SwV5IFtRSDh2Icm7xex qxbL/yRsi1IC8Wxu6LNt/utaRHlsL+Ocap489RRjNgsQetVXwWu9mDciONi546/u1d/a aYvl0QTQRAJq5jRZQ6ycsWb6aFmuK4eRI7tlDHOhkWuWc5R4NR0OyYsrmKVoSnIqOpge 7w1c57JImGeZauXJXt+1qD4Tp2IvGMsQ+nop1hKdxdujigO2/FjJ+gVaBg6CdstcgcDG z57A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782707391; x=1783312191; 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=njdXzYKEHzF4A3WtgfTBDRC5hg31hKgpysIdCr/ksd7FMopr9pZNop5N3TAg4gIyOE h7DIuhOXS4NmO43mgH+r6msSrc0ccuIRIA7s4ICYq9UkiWvUX05x/6wyDjj5JhakrFRN KT5mkjsr/L2xMuONmnq+IkByjan7BvIGAL8aa4SUJHAUgWId1n1joH0wriDnMCCvokU6 dq3juNg3hQP0pnCfwmWXnWMt6vJ+hdHQLlliw1sChs74xTmEKE9+1HdP6IGUC3YSpLUk xKNuKJJXcYwUfHDhWuynqcxyEmnmYOesJXkj2z/ezXDbfD/cdrG19GsOaiso1mtJR4Er vB0Q== X-Gm-Message-State: AOJu0Yy5LUZurMYIC1xuv0onjkHghimLGfBHujEdjK/tCEzk/gKh71/q j5heolrcLAkJTPT0tOFMncqw6+QpLimK/4px+Hgeeeu7g3frxHwh4fBo7z+xfLvT7Bn31OEZ+Lk fjcWlghftdm2tDC6+P1RvS596gjZjdEwFx2z7wQUMwS/Qj82C3Q7JN7iE68kanE0lIQ== X-Gm-Gg: AfdE7ckxsh8PTdLT2UlqJXa7ooSl8siNjxVjTI8+1IJiQrfd8e7xPhRxQzQdJy5p3R7 lykeX7SXfkCaJDw0qUEY9ycVXxlz+QKGOeMinJHSFdFXlJnSrzvBoJMRZgrff7MlhbUZ48RYeUa Lp00btYU31wX+cNIoR27rlw8e2yRs2TRBEgH0OGi2EcloCw9Sk8y3hwAx5dWVEFbPmhqCQy4XMd HyeJ6xUwcOYjWxeWv9QrLFMTgCXKGi7sT30W1YCWg9DYDC8HU9wLgjCOWZXfr8c2crmeS+WP0Bj 6oTvJkf2pEeFfrwohC1M4/ebi97h7r/x74f0UuvG8rNr6oVmWuoSBpS8yAuxX1pB6pvnIn5AJrQ DlBKvMqpeKSZceuLOpLRDeIIgQQxA0z+I0hbeE0fFbL25ySsDKORwtWCZnm8= X-Received: by 2002:a05:7301:5f03:b0:30c:ab4d:381d with SMTP id 5a478bee46e88-30cab4d3dc2mr7843073eec.41.1782707390775; Sun, 28 Jun 2026 21:29:50 -0700 (PDT) X-Received: by 2002:a05:7301:5f03:b0:30c:ab4d:381d with SMTP id 5a478bee46e88-30cab4d3dc2mr7843059eec.41.1782707390207; Sun, 28 Jun 2026 21:29:50 -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 v4 48/77] target/hexagon: Implement software interrupt Date: Sun, 28 Jun 2026 20:58:01 -0700 Message-Id: <20260629035830.1520296-49-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629035830.1520296-1-brian.cain@oss.qualcomm.com> References: <20260629035830.1520296-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: AW1haW4tMjYwNjI5MDAzNCBTYWx0ZWRfX1gN5XS6fh0Sd dQ2u0D7xmQG9OEDdULFciu9tfPxvcIG96r/Wm5cBCnnjYpcVcTSbS/Qks4Lo8xmaLQ9zIpNb4+/ HoZ1mV6GbGSvPPYQGyDIrtktGedhczQ= X-Authority-Analysis: v=2.4 cv=D+N37PRj c=1 sm=1 tr=0 ts=6a41f4bf 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=EUspDBNiAAAA:8 a=tNsvDMl9nzr4Tn7f5JwA:9 a=QEXdDO2ut3YA:10 a=bBxd6f-gb0O0v-kibOvt:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-GUID: JZX_DbVHKZkOh1-3yO51gheFdFQmxAOf X-Proofpoint-ORIG-GUID: JZX_DbVHKZkOh1-3yO51gheFdFQmxAOf X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDAzNCBTYWx0ZWRfX02PDBndOgPoR TN2NpPJcioCZgt5/pz8+v6/Qp+BBspfDFKC/aL6vpnMlA7DO/JV4mn/aWTVBvj7NlkG5efkAEfE B9d/lpF8xVixKJy4/MAeaVUHCg66L3nyHeDQi6mr29qYqmNLQvSCW5vNDjRfj3z8NOva+GbndtN AIvLLwfkXfOZMBG21/W3KHGYzIvMXnmyJfg5dbLiQdbWHENeVDO3LFszlBdj2pkZU5FAPkyqDQb NM5EEtxQUWXCeKI942EMUHKPEA27VUpTKPxWlMZHcbAmGQDhkXv/EOg/BR0Jo6CA5MyRY42Wrsc U1u157tX7h+9kFbbQV7A17ivd0myrFAJKxWwNNR0X/21fU37V999Gb/z51rQIHMyt8Y6zK60jTQ M9gq2/zCKxRMhLsBrRUWvaDdEaQFNkv8QGQsxl0SZTF76lYMVlFInXFiypOKY31haWvZn+6O9xB 7gT9oRvrasyXEhBW0cQ== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-29_01,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 clxscore=1015 suspectscore=0 bulkscore=0 impostorscore=0 malwarescore=0 lowpriorityscore=0 adultscore=0 spamscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290034 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782707547194158500 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 Mon Jun 29 06:52:23 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=1782707616; cv=none; d=zohomail.com; s=zohoarc; b=QDJWNDqDAPpsrCMRHAJ+4r4qZEDnzTsDIupSbwng3VNredYXHWxjnjO5Wq1owS0lrLHyeTJP0wiNTsrGn7beZeZ6aYzmKLSvvsoEyrLavpdZcNxzXgnQhPmUDvwAEvCnhw/f5G9o4ppN31KUuI/1cFIdyYIK5J6bYVwn++Hb9h0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782707616; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=5Ol8x/DbzIMvUDIJM8kbWvZWErXt04EMMYZCOcsacqI=; b=CUEY1E+qkCfeREP+5u4z6OFfRKoWF3S6PUYTRxRNxoX2qXBygCVcH7hi3sPLX1XHl3qp/ANeaERiyAJIuXzCuI7Z27xBXAUwCNlXZp1vhhQHKIOZlsSPJ+jQufUzbVtVudCr+596bqxl6khn9n/uXjTzzGRJ4aqeGGeZUiAb4A8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782707616223210.85586689130912; Sun, 28 Jun 2026 21: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 1we3eo-0005MM-VS; Mon, 29 Jun 2026 00:31:43 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1we3dH-0002fF-6j for qemu-devel@nongnu.org; Mon, 29 Jun 2026 00:30: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 1we3d5-0000kx-6m for qemu-devel@nongnu.org; Mon, 29 Jun 2026 00:29:58 -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 65T4NJIA1724605 for ; Mon, 29 Jun 2026 04:29:54 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 4f26w6mfna-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 04:29:53 +0000 (GMT) Received: by mail-dy1-f198.google.com with SMTP id 5a478bee46e88-30c0d568830so13504549eec.1 for ; Sun, 28 Jun 2026 21: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-30d3af0d2e4sm21314609eec.22.2026.06.28.21.29.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 28 Jun 2026 21: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= 5Ol8x/DbzIMvUDIJM8kbWvZWErXt04EMMYZCOcsacqI=; b=LT8AeRVFxvdgrzqA 9BUgfaq4X5uLqBOPklfCJhbkv4qSdWztuPF7MUMjswH8Pxm9e5azCmLOuMJqzZQ4 7TXHZzQzJDvGliAw1hTM0pOLis233LQwkwANkoEC053maeXkYJ0vy0nlQhquvtXO eC+hsAsT5A2ttZ9GGcGF8HYYb9u4SMxao2jhBqvG31j+sUYddc6/Al+KnIvipG2L HX5gp+L9uSGYr7wHj6O6NcwqefZ0JNo5e7qOoP8tHFg4PtHDtVwnNqflujOY/tou LWIcmbvwEaE/EjbjzoYrhRP7Anv/fFPK0+nE3t7R/H3r7JYjJZEmtYsgWlaOtbVZ +Ogg+w== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782707393; x=1783312193; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=5Ol8x/DbzIMvUDIJM8kbWvZWErXt04EMMYZCOcsacqI=; b=jDGdZoBoMzkyt1o3tbqz02g9ly9lbJG04oe1Gv35RVgY3vwlzTzpq9+8FKSRFuOWE3 +UIJLMJwg5lZQNU2migO93/7PP2CBLjUpV9JEekOa5kUEoONLT+wdRMsDseA7SlerWZ4 8XgAS0vMKf9iImbcQsqlxnR2xYJaXcdG7US5TFotEhvV7OtE0tKc6rgHvjjmhd4S48cE B1p/GCb+9R7zPoscWB9BiF/wCuBd9NMkBKMcXKe9Yy82fbTOr+/SosNkzMnI9L3wldyM it0jdj4Wrp0KtPhoZiiQusFnj1D41ddkGRXNqH3mIQOYR9RCiJS3owKmoyh6Obv1qgUe i1/g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782707393; x=1783312193; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=5Ol8x/DbzIMvUDIJM8kbWvZWErXt04EMMYZCOcsacqI=; b=mTrnHrVd/pPDYDtYi5lOorWCkYMv1BTdBiQBd8Rz/x3pbTenHZV2L/xnrvxqUDR4k1 0vLfUCg48UVc90Jl3uCS6Bo/aoeZRhsNrcG4cOuTYITHCmtak+kdIvKsytJW+DNsx4DP tV96RC8pcWS6bVOMLgvJRAFOBuLJL19C2jMQ84zEIO75L9MmKrtMn4m0OX5PSrty4sKo bLTVhC5Awox6kgL5YO05d1+MpBF1QlMQCgpRga8mxdpZDfnwmswZ/bP2wb1LQEey9ZZL jLWWfvmRMYg+ZvJW+m8bVAFLwb5rdZMvi755C6v7abVrBkY+ku7eoymw6yqhHVcvuUcQ ilXw== X-Gm-Message-State: AOJu0Yw8VrxDHcKxaX0sfMO2b6eThLN15ee4OBt5pc10gUoz/ODZk9/A dAw4IofFArx+X0vgcABM78qGrgLAw85icP0xUTttKpXhl1Ub8Gyn7c4FGB4P2SgVv7iVbtE+7Ak cdDaGlFZzC6HQQoLnWAJrrPQ7rkGWfFSJ67SDF8Ja4DfDOFjeJZIA/KctJ4WOthh5+w== X-Gm-Gg: AfdE7ckhvP54+fAQCHqaMuoc3/hMqTaNpU3VHDt2QjvMktJc1h89AO+KAc8BupexGOD nfjMuf0nZv1VIvZnO8LaXDU2jPNqnJdoNYJcgXmKYGiOKY/OTA+HXHCjWoyLPoYgh4Z1YpapNSg J5uSqyy8hLBYdfcyYuP1I+NKzSZ7NpNZIsqGYBoB9ll2tQ4N/1gXX2x7guQMwCN2bg+LYvIzkpG ezAXMM3qNxwrpnIu0j4iLTU2tr96fo+8PTQoJXG9+eCK9f4Vr7WI8+6dtTBkevIKOy2uSN9llas +fS0Jyp3fFtKZg9PSFNUGlU31WOiUbqDk+LkanxVmvC4bA0ME6xsNHepjLGOxNXgVzwD4CZQ0Yt VhilgSk+hr9C/aIyidoPfDrrh8Q5MHerYGWPCLgAYQG0XuLyF1QEhQEaEe4Y= X-Received: by 2002:a05:693c:41cd:10b0:30c:9574:e14c with SMTP id 5a478bee46e88-30c9574e286mr7740500eec.10.1782707392848; Sun, 28 Jun 2026 21:29:52 -0700 (PDT) X-Received: by 2002:a05:693c:41cd:10b0:30c:9574:e14c with SMTP id 5a478bee46e88-30c9574e286mr7740489eec.10.1782707392239; Sun, 28 Jun 2026 21:29:52 -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 v4 49/77] target/hexagon: Implement stack overflow exception Date: Sun, 28 Jun 2026 20:58:02 -0700 Message-Id: <20260629035830.1520296-50-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629035830.1520296-1-brian.cain@oss.qualcomm.com> References: <20260629035830.1520296-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: O1OSjQVeL0dIe_uACOZVN-c51Cm7G2eC X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI5MDAzNCBTYWx0ZWRfXzQECKk5mWdhz fAQrnfWpZtrumdXH9TIiSdXG/BJACEzFwwV14jMx34wfZvFdyImtoAGplofNlEUH/ObtyfMjuqI 8N1bCBBOq+K7XKpLNeO+iAkPCHven9o= X-Proofpoint-GUID: O1OSjQVeL0dIe_uACOZVN-c51Cm7G2eC X-Authority-Analysis: v=2.4 cv=SuugLvO0 c=1 sm=1 tr=0 ts=6a41f4c1 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=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=DTjK4E8Rq4C45BV92HcA:9 a=QEXdDO2ut3YA:10 a=bBxd6f-gb0O0v-kibOvt:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDAzNCBTYWx0ZWRfXzWhd4R96eole QEcgZ4o8JmLWTN/DHXEpqbaDYd767IXoAA7i5gJ6Fmwt2nz3fc2pjVlzDLUC2Kq+k1qdJJUxz8m itZQV3NUlpGa6Bhc5niT3ZVTizh1TQyWXeWud37Pf3oQcAePOHzUTkCqHzXtp+Zr60N+ea0OLzB VgoMKwZU98vxHJ9GuQAWIK1++KAYpYTVFOfJkhdwVmqSKBaAgfc5F3tnvLV0FM2VRqXvqgmUmJ9 tb7gnb5vMgyCZoA0hSZ2WOTDAORIAGgNStreNTNcaRrhOz04roz+dr0AIln5+MyJf6sqbJe3LRV Kuj3C8I70JUiXySV1oitd/dxOyrbZtdHVcouUdsLsSi84IvFdjiS1GH2RijatMs6gUZZV5ZpsF7 W7k3gsx/HYbLj09aNd5ZEFfmG2S0fX+4Ctd9/IsXQTl0gxLP5jAZMK1QnqqZDWzJ8lG7L5vzX76 GBprQup/1cgekREOdbA== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-29_01,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 spamscore=0 adultscore=0 priorityscore=1501 clxscore=1015 phishscore=0 bulkscore=0 impostorscore=0 suspectscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290034 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782707617686158500 Implement the frame limit check for system emulation mode. When allocframe computes a new stack pointer below FRAMELIMIT, raise a precise exception (HEX_CAUSE_STACK_LIMIT). The check is skipped in monitor mode. Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/helper.h | 1 + target/hexagon/idef-parser/parser-helpers.h | 2 ++ target/hexagon/macros.h | 3 -- target/hexagon/sys_macros.h | 4 +++ target/hexagon/translate.h | 2 ++ target/hexagon/genptr.c | 18 +++++++---- target/hexagon/idef-parser/parser-helpers.c | 9 ++++++ target/hexagon/op_helper.c | 36 +++++++++++++++++++++ target/hexagon/idef-parser/idef-parser.y | 3 ++ 9 files changed, 68 insertions(+), 10 deletions(-) diff --git a/target/hexagon/helper.h b/target/hexagon/helper.h index 0ec3a099cb6..aa3604dbdc5 100644 --- a/target/hexagon/helper.h +++ b/target/hexagon/helper.h @@ -109,6 +109,7 @@ DEF_HELPER_2(probe_hvx_stores, void, env, int) DEF_HELPER_2(probe_pkt_scalar_hvx_stores, void, env, int) =20 #if !defined(CONFIG_USER_ONLY) +DEF_HELPER_3(raise_stack_overflow, void, env, i32, i32) DEF_HELPER_2(swi, void, env, i32) DEF_HELPER_2(cswi, void, env, i32) DEF_HELPER_2(ciad, void, env, i32) diff --git a/target/hexagon/idef-parser/parser-helpers.h b/target/hexagon/i= def-parser/parser-helpers.h index 2087d534a93..d3dfcec5690 100644 --- a/target/hexagon/idef-parser/parser-helpers.h +++ b/target/hexagon/idef-parser/parser-helpers.h @@ -295,6 +295,8 @@ void gen_cancel(Context *c, YYLTYPE *locp); =20 void gen_load_cancel(Context *c, YYLTYPE *locp); =20 +void gen_framecheck(Context *c, YYLTYPE *locp, HexValue *addr, HexValue *e= a); + void gen_load(Context *c, YYLTYPE *locp, HexValue *size, HexSignedness signedness, HexValue *ea, HexValue *dst); =20 diff --git a/target/hexagon/macros.h b/target/hexagon/macros.h index 041e68a150e..21ab8ae5bbf 100644 --- a/target/hexagon/macros.h +++ b/target/hexagon/macros.h @@ -538,9 +538,6 @@ static inline TCGv gen_read_ireg(TCGv result, TCGv val,= int shift) =20 #ifdef CONFIG_USER_ONLY #define fFRAMECHECK(ADDR, EA) do { } while (0) /* Not modelled in linux-us= er */ -#else -/* System mode not implemented yet */ -#define fFRAMECHECK(ADDR, EA) g_assert_not_reached(); #endif =20 #ifdef QEMU_GENERATE diff --git a/target/hexagon/sys_macros.h b/target/hexagon/sys_macros.h index ade57290166..707afc53e1f 100644 --- a/target/hexagon/sys_macros.h +++ b/target/hexagon/sys_macros.h @@ -97,6 +97,10 @@ #define fTRAP(TRAPTYPE, IMM) \ register_trap_exception(env, TRAPTYPE, IMM, PC) =20 +#ifdef QEMU_GENERATE +#define fFRAMECHECK(ADDR, EA) gen_framecheck(ctx, ADDR, EA) +#endif + #define fVIRTINSN_SPSWAP(IMM, REG) #define fVIRTINSN_GETIE(IMM, REG) { REG =3D 0xdeafbeef; } #define fVIRTINSN_SETIE(IMM, REG) diff --git a/target/hexagon/translate.h b/target/hexagon/translate.h index 208cf141e7e..f79bdedd7b6 100644 --- a/target/hexagon/translate.h +++ b/target/hexagon/translate.h @@ -341,4 +341,6 @@ FIELD(PROBE_PKT_SCALAR_HVX_STORES, S0_IS_PRED, 3, 1) FIELD(PROBE_PKT_SCALAR_HVX_STORES, S1_IS_PRED, 4, 1) FIELD(PROBE_PKT_SCALAR_HVX_STORES, MMU_IDX, 5, 2) =20 +void gen_framecheck(DisasContext *ctx, TCGv_i32 addr, TCGv_i32 ea); + #endif diff --git a/target/hexagon/genptr.c b/target/hexagon/genptr.c index ee69feae4b0..1ebc7471409 100644 --- a/target/hexagon/genptr.c +++ b/target/hexagon/genptr.c @@ -893,26 +893,30 @@ static void gen_load_frame(DisasContext *ctx, TCGv_i6= 4 frame, TCGv EA) tcg_gen_qemu_ld_i64(frame, EA, ctx->mem_idx, MO_LE | MO_UQ); } =20 -#ifndef CONFIG_HEXAGON_IDEF_PARSER /* Stack overflow check */ -static void gen_framecheck(TCGv EA, int framesize) +void gen_framecheck(DisasContext *ctx, TCGv_i32 addr, TCGv_i32 ea) { - /* Not modelled in linux-user mode */ - /* Placeholder for system mode */ #ifndef CONFIG_USER_ONLY - g_assert_not_reached(); + TCGLabel *ok =3D gen_new_label(); + tcg_gen_brcond_i32(TCG_COND_GEU, addr, hex_gpr[HEX_REG_FRAMELIMIT], ok= ); + gen_helper_raise_stack_overflow(tcg_env, + tcg_constant_i32(ctx->insn->slot), ea); + gen_set_label(ok); #endif } =20 +#ifndef CONFIG_HEXAGON_IDEF_PARSER static void gen_allocframe(DisasContext *ctx, TCGv r29, int framesize) { TCGv r30 =3D get_result_gpr(ctx, HEX_REG_FP); + TCGv_i32 new_r29 =3D tcg_temp_new_i32(); TCGv_i64 frame; tcg_gen_addi_tl(r30, r29, -8); frame =3D gen_frame_scramble(); gen_store8(tcg_env, r30, frame, ctx->insn->slot); - gen_framecheck(r30, framesize); - tcg_gen_subi_tl(r29, r30, framesize); + tcg_gen_subi_tl(new_r29, r30, framesize); + gen_framecheck(ctx, new_r29, hex_gpr[HEX_REG_PC]); + tcg_gen_mov_tl(r29, new_r29); } =20 static void gen_deallocframe(DisasContext *ctx, TCGv_i64 r31_30, TCGv r30) diff --git a/target/hexagon/idef-parser/parser-helpers.c b/target/hexagon/i= def-parser/parser-helpers.c index 70bfa64432d..b942d9ea16b 100644 --- a/target/hexagon/idef-parser/parser-helpers.c +++ b/target/hexagon/idef-parser/parser-helpers.c @@ -1731,6 +1731,15 @@ void gen_load_cancel(Context *c, YYLTYPE *locp) OUT(c, locp, "}\n"); } =20 +void gen_framecheck(Context *c, YYLTYPE *locp, HexValue *addr, HexValue *e= a) +{ + HexValue addr_m =3D rvalue_materialize(c, locp, addr); + HexValue ea_m =3D rvalue_materialize(c, locp, ea); + addr_m =3D gen_rvalue_truncate(c, locp, &addr_m); + ea_m =3D gen_rvalue_truncate(c, locp, &ea_m); + OUT(c, locp, "gen_framecheck(ctx, ", &addr_m, ", ", &ea_m, ");\n"); +} + void gen_load(Context *c, YYLTYPE *locp, HexValue *width, HexSignedness signedness, HexValue *ea, HexValue *dst) { diff --git a/target/hexagon/op_helper.c b/target/hexagon/op_helper.c index 9d50e6ef882..a8bf89ab996 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -1393,6 +1393,42 @@ void HELPER(vwhist128qm)(CPUHexagonState *env, int32= _t uiV) } =20 #ifndef CONFIG_USER_ONLY +void HELPER(raise_stack_overflow)(CPUHexagonState *env, uint32_t slot, + uint32_t badva) +{ + /* + * Per section 7.3.1 of the V67 Programmer's Reference, + * stack limit exception isn't raised in monitor mode. + */ + uint32_t ssr =3D env->t_sreg[HEX_SREG_SSR]; + CPUState *cs; + + if (GET_SSR_FIELD(SSR_EX, ssr) || + !GET_SSR_FIELD(SSR_UM, ssr)) { + return; + } + + cs =3D env_cpu(env); + cs->exception_index =3D HEX_EVENT_PRECISE; + env->cause_code =3D HEX_CAUSE_STACK_LIMIT; + ASSERT_DIRECT_TO_GUEST_UNSET(env, cs->exception_index); + + if (slot =3D=3D 0) { + env->t_sreg[HEX_SREG_BADVA0] =3D badva; + SET_SSR_FIELD(env, SSR_V0, 1); + SET_SSR_FIELD(env, SSR_V1, 0); + SET_SSR_FIELD(env, SSR_BVS, 0); + } else if (slot =3D=3D 1) { + env->t_sreg[HEX_SREG_BADVA1] =3D badva; + SET_SSR_FIELD(env, SSR_V0, 0); + SET_SSR_FIELD(env, SSR_V1, 1); + SET_SSR_FIELD(env, SSR_BVS, 1); + } else { + g_assert_not_reached(); + } + cpu_loop_exit_restore(cs, 0); +} + void HELPER(ciad)(CPUHexagonState *env, uint32_t mask) { g_assert_not_reached(); diff --git a/target/hexagon/idef-parser/idef-parser.y b/target/hexagon/idef= -parser/idef-parser.y index caba0d2644d..3cffafa5b76 100644 --- a/target/hexagon/idef-parser/idef-parser.y +++ b/target/hexagon/idef-parser/idef-parser.y @@ -404,6 +404,9 @@ control_statement : frame_check ; =20 frame_check : FCHK '(' rvalue ',' rvalue ')' ';' + { + gen_framecheck(c, &@1, &$3, &$5); + } ; =20 cancel_statement : LOAD_CANCEL --=20 2.34.1 From nobody Mon Jun 29 06:52:23 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=1782707649; cv=none; d=zohomail.com; s=zohoarc; b=j9p74TajZdFDu+532z9o2xiowEouA9Odlx5f/CBzTfNtag0aE9+v6piDuwzFrljVAp5MxnlPD+Em0K8lOZogBh1d1b4N6rnkJdfgEIkcSGkZCgj+r5A2sE4V2cxYBOSXpHViEu1Fa20L86X9H1onSK1HvChrYWtcJJDTqnfTSaM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782707649; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=HJHamqg/65wSmNxLxvAdWpXXc7h79bIGIGPYEV8bwa72aujUvseJt8oNfrqfytilShSI4hQbbavlZulxRuFXzN1dEkV0T/SKB2GHBb4rkIxFAB6OSx5//Rs15XCPeJN/50YQA0DSldkSMjixhb+m/EiiyDI/bBCfwHr0MALmFQA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782707649168742.5427121171438; Sun, 28 Jun 2026 21: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 1we3gf-0007ts-Iq; Mon, 29 Jun 2026 00:33:37 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1we3dH-0002fI-DG for qemu-devel@nongnu.org; Mon, 29 Jun 2026 00:30: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 1we3dA-0000l9-PQ for qemu-devel@nongnu.org; Mon, 29 Jun 2026 00:30:06 -0400 Received: from pps.filterd (m0279871.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65T4NTRt1777377 for ; Mon, 29 Jun 2026 04:29: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 4f26x8mg7g-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 04:29:54 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-30c1f6c5559so3245663eec.0 for ; Sun, 28 Jun 2026 21: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-30d3af0d2e4sm21314609eec.22.2026.06.28.21.29.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 28 Jun 2026 21: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= zeFyaaj9ezk3dMnLRJvqloiuq+fIgJ0YErhEi239GAY=; b=jK2GDd5PpwtMN67f EZ56v3Dt4SfvOHn6EUmdJJuABqPi+rWp17MGSRY7TaGyRlqoXnsLGiEsr6TeigAG KyIV/HYn4XouoF6TxKDoLYTBx33U0L/i6/77KtqkktCY5Nv/I3ls6AAlWMjGc5pB DfwdN9vk1I9GZCt4R9ZdV4P5i/yNkyBRlB/5SBWBbEqDW0VX5gEbZGohPU1hHtqH FyZHzz/kmHdYJGJ26UbnpHYHrkcrCcClyzOnZ8GKkYBg0jQ4GPFsw9emvCir1uDt Od+a5SssrIxU1xy72vzHC2VDTm2UFqjUPPpKvnmHCJfpqbsUOT57klOac6XRrgP7 Tg1etQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782707394; x=1783312194; 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=K4JVDe6tOaOp8aw0Ma56PJj+JbgHgAoglQIiWCPsbfgz4ZGePUqYqzzbvlqGTyzavx tHT+IqL4QJ7sUwabe7hQCl7AEV2btG0FVe93w6z+tZwARRXMtQdzBNyoBMQla3IkQhNr qMmWhLC6CUBM+HtTqjja+A6ZgBW5+iOurjZdZoAEzleNK1n5O78aNM1E7MNGI7t/fLDS 7HGAemDa6RIR8V58c5N9dosms7AtvcV6gY9ls4uPla06ieZs/8BuoA0/BJgp+Ffpu1vk M+1BPBaYlwVVMkuK+uHU5ICBfZ7Bje535uRLIJ/JUboKbr9DmH9x9xUPzEYxHI7cE+eM HLFg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782707394; x=1783312194; 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=epMzVhboddbCKFKNSEOJKdzg1upF/1HWkXZmsOwah0LjP9MLwhd+3wAL2H5Kk6OpEg nGufh5/CzS87R434GMkL85GDRpaX/Zm0QEnuGJ4JFU3ItVlF+hEn/WTIf4npfiftebpY lb2h4OoJoQewr1II/oCHdWinrsmPmZ0S2Jn68BK305dRry231etx69j30nbHQusTnu1q RFa6ji6XOTfZcUhh2KsK5eR3h/qnyF/xV8V+SUQ5ypWB5GNhRW9woEcKxk1WhIeWIsgx 8ilzuVHP+hgoXvSFoPFgcitI4Uek4XjIxenGw4a3nN3xEiS8Jd4XQ8oHuoGTMkz60eyw Vuog== X-Gm-Message-State: AOJu0YwtkV/+0b4d01b/yc/KpIjlAngiWAyjcMBOiIlmI60EjODa3LkV XkyR0QJRoe3hqdYhBNYlpWmLnV+XmFbWRnSru0II+gfWZ+tSBr+EtqRpIwmNfCm5hCSaRt14YjE 54Ns2pZLeov1aS+MTWDMfC8rAwv97iCIpCrD2YVvtwAqg/XeLHKxwWzxQEUSjXUvcIg== X-Gm-Gg: AfdE7cnRNRkLvCUPMQ8oMifh7+uQEdfJw5hDi6HPOveobX921fq0jOKjM3k7ovJhmyC ZDGeXFm83qbgJ+afsrSJjL6wCmtpDjMv1WSjPZM4KCTwYpi8D7tDV5hDQeJgGd8jkqnZP4uS38q ACypF4Ul03VW99+CdRANgYv7gfw3T6CvykveP4mvRVhLGbN8ePlEuUwVyjxvuvixQ0Hz+pFZji8 L+Q5xEfx9ttmddb8g1riaZAxS8BQ0f9ITucdh/G2acy/ewugsDHa3DY6wr5p1SjH98nB6NwczQp H/87W/QkP1CRfN9cWEyAKotwz9U2uFdQaFBMJh+iwPZvs805dIhUXAJMWWHJunMa/1H+zkLzaxg oLPKHEdvKsfdAVe+1yuLm6/GqGk6LC0z2dU+3qRK2a+nvcN+Zplxw8z4RvHI= X-Received: by 2002:a05:7301:5795:b0:30e:cd78:a6b2 with SMTP id 5a478bee46e88-30ecd78adf8mr1343158eec.4.1782707393668; Sun, 28 Jun 2026 21:29:53 -0700 (PDT) X-Received: by 2002:a05:7301:5795:b0:30e:cd78:a6b2 with SMTP id 5a478bee46e88-30ecd78adf8mr1343139eec.4.1782707393112; Sun, 28 Jun 2026 21:29:53 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Brian Cain , Taylor Simpson , Pierrick Bouvier Subject: [PULL v4 50/77] target/hexagon: Implement exec_interrupt, set_irq Date: Sun, 28 Jun 2026 20:58:03 -0700 Message-Id: <20260629035830.1520296-51-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629035830.1520296-1-brian.cain@oss.qualcomm.com> References: <20260629035830.1520296-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: AW1haW4tMjYwNjI5MDAzNCBTYWx0ZWRfX6vBv9LwFdj0N t6QbKDYJZpoN4v7iMI7U92YHQxjku/26oKqyIDT0vmKh2BAt3TH1XJbtOmDJisraP1l9eUe20CY Wobjft67tBo5FcVUskeN2OGmXR031N4= X-Authority-Analysis: v=2.4 cv=D+N37PRj c=1 sm=1 tr=0 ts=6a41f4c2 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=EUspDBNiAAAA:8 a=GA9jbsKyPMLDJDmtv64A:9 a=QEXdDO2ut3YA:10 a=scEy_gLbYbu1JhEsrz4S:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-GUID: Gksi4alM-5BSUnw8-m-unPhZjNJiWZ9y X-Proofpoint-ORIG-GUID: Gksi4alM-5BSUnw8-m-unPhZjNJiWZ9y X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDAzNCBTYWx0ZWRfXwM6M6k96a6VW H1CgI75/Y08XGEWZx6y3RCB7LLJ7JCgdrb5wpjLQuFGmkt7BffO18Chr0U2KuU1dKnbMwVxbkFJ y5C4VkWaptcWdQWbtKlmvqgpBuYt21/KkJLfKhiRmUppH+XBa4OOdV7FdQpQ/2tkt4HzQ0Kz/jR CW4dUWojZN3/izin39IRzCgebsFJZOkKAEYGZZLBHutYHAFzjnqiHde3kv8ktI1OWLlNrrmbVps i0JJ+Xa48WNdiBZAcQ4Se4qUgemWdCHMG98rDK0I+PNkvEomjfbNAKbp7K1IYRjHMDmOL64wj6u 1FyApyI1G8cBWpLnZyjcNcfOCyjH2qsQrq/4dppKfbMPY9nj9JRhImXdZekN2asZYKI07+G54oH XoocouTCL520iczS84A441S0CqQsJqH0sGhc+T/t+EwRwe7nu9L7ex0cS2Nl3dxrL6T328ydqrD P7qfDnobTPVOwGLiarg== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-29_01,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 clxscore=1015 suspectscore=0 bulkscore=0 impostorscore=0 malwarescore=0 lowpriorityscore=0 adultscore=0 spamscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290034 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782707649813158501 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 Mon Jun 29 06:52:23 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=1782707457; cv=none; d=zohomail.com; s=zohoarc; b=fTwkaLGp+H4wlImqMUcKhp8wwqiX0ZskjuC+BBzgE/T+bk7u4TvURTrWRZC7XkPmTBTfh2NXnA+FQbYkqpJafs6XA10mXd5hv9Zz1CgdS06kGN/8M7y8h0T3KldAZ08BrcuBzWHMgyVnZzPmujGAxyEeURnKkjVp8TaqBY5+Hm4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782707457; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=XzIuUIEZGqgU6Oebp0IBPiOeJbrOwdwNc7WAnSYwML/rAPuvbe42Nx4VBiesqhCb8ZANHb2Xwm+5V5x0yVk/8HpBJ6jSOwJbr/uK/qyiEhVvf1t2TIeNFumBlij/CWWdjVfL118G/lWsK76uCFcAlHOikK7dkPA7TRPGdRncfl0= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782707457050132.82418903061728; Sun, 28 Jun 2026 21:30:57 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1we3du-0003Fz-TL; Mon, 29 Jun 2026 00:30: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 1we3da-0002uo-R5 for qemu-devel@nongnu.org; Mon, 29 Jun 2026 00:30: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 1we3dX-0000lO-6h for qemu-devel@nongnu.org; Mon, 29 Jun 2026 00:30:25 -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 65T4Nk191778146 for ; Mon, 29 Jun 2026 04:29:56 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 4f26x8mg7n-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 04:29:56 +0000 (GMT) Received: by mail-dy1-f198.google.com with SMTP id 5a478bee46e88-30c95b0e22aso10828460eec.1 for ; Sun, 28 Jun 2026 21: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-30d3af0d2e4sm21314609eec.22.2026.06.28.21.29.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 28 Jun 2026 21: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= X05v3GkLKVJ5oepV5+STkOz6Fp+VxO6RAfpTWbT6B70=; b=odlaV4ppDYyAialf uD/Sulk/CjHjVwjNXGFCNmHUnRbykhrmkyJaNcYAEa3BHeuJKePeuV4gIO7nlc+T xpXtoaMGMUKM2alcrYy1FqT2ajuJSkhkVAdJiorq9s9sU5XahyHZFW1nBqovLtG7 RnuOdFV+OgxZdcgLyEHqKDZLXqthBIF5D+c2Q7EAya0gP1dj/rNesE/owwQndwAy +pJaFYNcugmfcZTlLyYeepY2NEgS5NJBaOXVtCFciMTq725qBmYD9zM1pdr8Awsr b3iUg2/idXnM8AAwkjg3lB4cPW74juB9g77+3/1vyO0DNzfmLu005WkZYEqAhvjR 4MNfSQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782707395; x=1783312195; 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=No2h2rlBig7A74SeQP2vKFdMwR08EZa2bK7Xv+dwiQJE4mN1Tlv5Ar6Ib2RRZ866PY 3sroP7em8+Mbbv5Avjykyj7Dk69sbhyw2yveyCCi23Lfv9ekh+qWkZ8spYAA5Nes3VrA dNzxwxa/5XUbK1ukiyziO/j4ZQxiqzrchvmmItcxwQdmdMh3kw7j6v/Cgd8J0sx5FsS/ 6T/iYNzsMxkyMVCl++YU09IfKFuelKlO2SB6An2SBJIpD82kqxFObH6CHEVHp+ykP9uA 3MWr0s3p9BhIkUC99AJS3dC4rcCpY+k3usduD/at1OaGhQlaoil9gstW/6K5FASAM+92 ZytA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782707395; x=1783312195; 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=n3tTX96eedLE7fp6sbDakgbFpMRWwT7GBCU24M3eHW0OfZU243g7AVqJod09uYQJiS DO3/QCUVFeES2WJ/ovQAqpFPMSoCmeQh1mbd0d5K+dfeJ6q1B95b1TTJ9/kPduYLGZW5 zGweJNk8P+uhYXNPmI4Pu0SIhF5I7J2xRRIbnyC/oSmb3XXuaFN4OlBLg/DkJzULj1hx 9gJJvJYGxk/CMOTsYCKHGZlySsEB0J+JqdaBG6q0BS/xEaj7u9GECICVXNE+UTVo6+e4 Skcj9EUi1CgRsVm5gjJdDMYzQxy/2wdBjHXm9KJSE4FoaurrbuaUIJZm11mzj+RA+Nmf UeKg== X-Gm-Message-State: AOJu0YycqUWTjYsryTT+tZhUcjpvvnofVt/o9wUhEyd82ZqSzy+5A2hl 6J3kmwLrQMwiZcQI5yP9EfHAE5oQKEfrpVBidan4xNhMiKOPRqAlqGE/ngiovPuRSVvc63sxHqQ KAbpNQZDrvohpwygaC6HpdKmx+giqV+CGIGVPsUToeyTmZm2Eef+3zy4VczkvqxosFQ== X-Gm-Gg: AfdE7ck+vEOjE0q3cb8zwnnpycsJrcqrQ7hRCoXeBcGMMSO/1zcRU7eZ2UcxbYbScP5 WkG/gYyl8cRxJHB4HmH4f+GabcLE422zMDmi/2O5wuSkW04OgMxVTIVWuylN4wyd3+x8TLOLMIY I6g+TlRJZnCyRzOVab/e6Bw4WL8PXxa2Z+c0WejRSgSROwbMantfAybs4Uj1GuVErIihwaAECu4 K/eKQBpF99T63fzTPhMRFvbcW/yciw/GqetZd092jacZYsxXSMSF7fjsCADqJZp2tzjpk++UcuC VmZV6s6yB4sVF7kIpLgs4W23830HOswSTDDZgOHKh3EgEgNVPf/1IiopACZ3lwg1IKp59qRy9IH 03WTdvgOV5eADquRwvsGCSeVBp8V4oZGZl35yMDMwkEA1Sl5CnMTH5WdIaWw= X-Received: by 2002:a05:7300:6cac:b0:30b:9e56:e547 with SMTP id 5a478bee46e88-30c84b94728mr14306086eec.6.1782707395296; Sun, 28 Jun 2026 21:29:55 -0700 (PDT) X-Received: by 2002:a05:7300:6cac:b0:30b:9e56:e547 with SMTP id 5a478bee46e88-30c84b94728mr14306068eec.6.1782707394798; Sun, 28 Jun 2026 21:29:54 -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 v4 51/77] target/hexagon: add simple cpu_exec_reset and pointer_wrap Date: Sun, 28 Jun 2026 20:58:04 -0700 Message-Id: <20260629035830.1520296-52-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629035830.1520296-1-brian.cain@oss.qualcomm.com> References: <20260629035830.1520296-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: AW1haW4tMjYwNjI5MDAzNCBTYWx0ZWRfX+EJiqYEHcLFd ZIbDDrGtM2M1ey0joCmyeCoPL6wfX343Qfhvl/EayTm4YGinncYoa+qHv1IkA4w5AD6tt5lVmQU O4sxc4ng0VRs60ZmwGPNl5vS5jW4YSA= X-Authority-Analysis: v=2.4 cv=D+N37PRj c=1 sm=1 tr=0 ts=6a41f4c4 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=EUspDBNiAAAA:8 a=pGLkceISAAAA:8 a=O9wV_FzQyngHLK0UYg8A:9 a=QEXdDO2ut3YA:10 a=bBxd6f-gb0O0v-kibOvt:22 X-Proofpoint-GUID: LXrAXjDcf8PU_sDMX4JXfX4HDuysMyr9 X-Proofpoint-ORIG-GUID: LXrAXjDcf8PU_sDMX4JXfX4HDuysMyr9 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDAzNCBTYWx0ZWRfX3E528teCVR0W 57MN2rQy0GS7BX4pTjNcqJcmnuntwyu2vcLMH5ORgnKcsTvbHtYw29CSkKFz1ihit9iNv0uf/5u FDp6S/S6ZLTg9j/qt+FzKf1dvS4Jg15mTlKoZUnC3PR05yUmi8gniAT1SsYRWDpwkifrevk/nH7 PmbTtou+dnZSvgAcsXUzR6SDrFyQ5SPMYu+9nix2nEuefSL6mxVOjb8LLpWQhzz/PVtF/uuYfx1 Es/L3bnnNMQ54SOS+4NXryX9u37deoSE3HrtUnU6c/3NBTRVafr4g72UChYyHfrGn0zrFYGq3+R 1NgsIc5JOF94sENIL6bI374iJKv/MYwk8iK1SmwuypYf1YxVWzaBBuGYrU54Vai+CIe3sG105Mr PF/PiAbO++o6j1gwMihs/ywsSHlXQO2IiTAxe84g/3Xd3h4GOZuP8oQIiPL/mp1GPJ0ytSjeiqX pwvQ+PwI+6ZHhZYRkWg== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-29_01,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 clxscore=1015 suspectscore=0 bulkscore=0 impostorscore=0 malwarescore=0 lowpriorityscore=0 adultscore=0 spamscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290034 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782707458995158500 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 Mon Jun 29 06:52:23 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=1782707724; cv=none; d=zohomail.com; s=zohoarc; b=FQpJMYXWIWLbzVPOQDLHdPLndfbS0O0SZ2eAOtSvHcQcEbKYxPtKd/yYXSjE4sKCg/heWrP4h5OXfWL5VMSGLUKsrAvOXeZRsVUjjIepgJRbHGG5p4mUetvLbUIroiVLSfKi6rz6sMUQIxH1y4/9sMRF6pOrWrVqH3UeHTvFF2E= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782707724; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=ZDEFQsCPTxY1TN6Scu4yVHSqdV3CtWw+SLBqI1BCL0ZoKZBOx+tyDk6aIb7GSr9DBfKEFZUZi9mU8ZbeNXVNJK9MkYcxMI/zQzHVGiTVVI0GYAWC4I7UnUCyISThTJRxDa241ykYzFJLAiIEaxcpQBkH4ODPlh7d36Cu1zbjwEk= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782707724233549.7151686497128; Sun, 28 Jun 2026 21:35:24 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1we3em-000541-Ba; Mon, 29 Jun 2026 00:31:40 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1we3da-0002ul-O7 for qemu-devel@nongnu.org; Mon, 29 Jun 2026 00:30: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 1we3dV-0000lb-LK for qemu-devel@nongnu.org; Mon, 29 Jun 2026 00:30:25 -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 65T4NJOU1780991 for ; Mon, 29 Jun 2026 04: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 4f26u74gj1-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 04:29:57 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-30cb2bcbf7cso2341320eec.1 for ; Sun, 28 Jun 2026 21:29:57 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30d3af0d2e4sm21314609eec.22.2026.06.28.21.29.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 28 Jun 2026 21:29:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= jw9yZ1Fa+tyKZPk60MTE6s7LkPtVtmumQCTRRtdnjUc=; b=JRCRp419c8/hrK7R 4ubCWqJll7cV64rWLZKuPLb7TtG3o9SdS4WPkgXAO1INGIwTYM50xaIqtVdy1Bm1 WLowP6Z/2nSUJd7Vcjz4pjWwijGiZdmW7ds2kIeNyBzGxn1XXM5p2U/+AG9fw6VK VsCP4QzMelMdL1sBSDDcWzmr/UkuQ62URVs4LTmgXuuIZkanBa6P8Fl1EpUea7tT Fskl0utPF3iOYeZJYQSDFn+6x6TxTU4oXvZZyneJeBE4p8gnJ9Sd6JvkJkTsMC5e 6vhJKZUrnF1LJfS6a+VpSly2+vMlPZJ/czz1WXwMd2guZnMO0pDDz6HMXlrquvQw 9ZLNfQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782707397; x=1783312197; 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=R6igVsRAZ3tIDteWsNQJ6Iyu7dSXarvUBqQ2kXh02OzR28W23o53KLdHZqm4uiS4yZ i7Et1N5Zme0NTBV3vUIb4HqGNTicM9QbdsUiP1n9VEguckto+ihdM+TVGQHFxrQT3eoE ygupHWZV5JjfRlFsDviWK7b98zdMzy73+U74V3Eq6iqYkMneAsXdgJ7S1nlWoi1/EHfK eGW0bj2MvhAJIXdXevkfuYO70lgLKpvPD6iccJlFBlRzGu3oOcurOmrloVo7vjPRR8FM IfnBTiOroc8Vb+unnTlRc1ObVJdmDI+myDC7lfe5ViTtBvi/0O2jmJaQOJGigrudJwIU X/Gw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782707397; x=1783312197; 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=P88sTrQ7ka/lfFdgMZp/Pc1H6+YPgr3mujNJnU0AGYbMMsl+Dx5TybQ4k40KIRwKpY hB3k3xjbG45MVXzkRpfcUQ82dde3ZGQ63jZWft4PJ6IkSA18BQ/78U/551+CiP4va8U0 u7bbb+UMn1GikMdFizRXu71cRP2NVyKPfzIs/1Thyv9mFMRFI19wJN6EFMGlwQVo30p+ fDo04wtPdEn9zXZn4CZtcPOi3acRnSIn/33JpqBVx5Yhg1x2+0wtX0l6gKtt7KC7rCXZ I7upNtAHjDogOhbbsIQUYudJObo9Dg6KjLJWq+sEXNBD9W3VoUymCg3alb9P7/ONA6Gq 2O9A== X-Gm-Message-State: AOJu0YwowA+WK5Wet5qOd/37vJoYYvuWDvoUycjHfyKR5DMiqwbsj1+T 7CpEQQSeG6zQu8MdRhSfI2cYpKcLNJlBO98w3mwpAJIwfSIv/FI00zAW9yPWkRpUSLcMWP55TBD zPqXYT25pQ8a7ZaRVDRSkHVxsE3abw9bH1ilnNTUUM1U3VM2gfM+A6PFu3dJX0uXjLA== X-Gm-Gg: AfdE7cmk3DuaIW862H2Q1fTYCknrwbne9UtdHdBsUOgs0bXJAAda3gAXR2PnCcPDXbs ueibDU57oprH9wsQkcWq4z/sYVeCa2yUtyMCKPkgk1HBE3bzoVVqigB11QGH5RaghML6z8mC+wz Bn+f0nKO7K6H0qEWpDwH12hfzzTnyQgTAXmqamG7THyG+lUgJZffiBnBaeaOFfwfaCEglLg5RMa gvLGhVqT/TP1cjWkvJvV38V5BueOXvbnpsYx9RnojijFS7niNjH+B/7Zd112sEPkFYjlWS7h1Vc 0hNerCeiznTl4LK/p3QWdZBbju2Oj6g/Hnd0rcMdTtE64p8sGH4qv2Kt9QvNtWjg2uc66NOgeyi mQJfL+OnBFDRwVwBqxeBEvH0QIj9dwwJ9kiuH0vZ22jqGezlmuAIH3/EcG4c= X-Received: by 2002:a05:7300:2211:b0:30e:d175:62f5 with SMTP id 5a478bee46e88-30ed1756e6amr645171eec.27.1782707396929; Sun, 28 Jun 2026 21:29:56 -0700 (PDT) X-Received: by 2002:a05:7300:2211:b0:30e:d175:62f5 with SMTP id 5a478bee46e88-30ed1756e6amr645150eec.27.1782707396311; Sun, 28 Jun 2026 21:29:56 -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 v4 52/77] target/hexagon: Implement hexagon_tlb_fill() Date: Sun, 28 Jun 2026 20:58:05 -0700 Message-Id: <20260629035830.1520296-53-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629035830.1520296-1-brian.cain@oss.qualcomm.com> References: <20260629035830.1520296-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: AW1haW4tMjYwNjI5MDAzNCBTYWx0ZWRfXxeq/Bi/4pbhP kQ5NeZa/NfGJwuubJEGBHNarciHHfHtQAHsX+wgTyKKucNaucoB2r0p3YLFsDa9u154mTWkG0+M bgoaYva9STeURXzg4/jh6+Z76+yxqLM= X-Authority-Analysis: v=2.4 cv=ftnsol4f c=1 sm=1 tr=0 ts=6a41f4c6 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=yz7b9sy1sBSXNk6fZdQA:9 a=QEXdDO2ut3YA:10 a=scEy_gLbYbu1JhEsrz4S:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-GUID: wxXRyEMx2zXnJ2YBCbCXAEvgYyVB_nv9 X-Proofpoint-ORIG-GUID: wxXRyEMx2zXnJ2YBCbCXAEvgYyVB_nv9 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDAzNCBTYWx0ZWRfX5bWoS9Ks0ljT Q1fMuRDT0pQClcUKNkKMNPFPDdw0PWCXLxflqm/IUxxQ8/do7/7NuVysK482UKSY8m6RZCjETmq HwDp5G3irBoH4nofAcSgqD4sjX28poN9sUvlWmU6be3pORouGXUb9rsnxH/NvQa2+vZ/6zF8+J8 ZzfpXCG8+5SqDhKMTHk19DthL+bdI4rE3X/99q2OViuNH32J8I5OeLZKKeGk7cNpprPyvTYF86x ml5cfTtE/EJM/yAjzrtdpHa9DkveAQIcWViUwRfODwXPt7PdYvKuLnW8nO67dgISGeORs0uISkg PHKM6KVPspBYzbnUKH7NWDvGfk8yzPDv8A+D/b0N/hgxi8vXNjiFmry1prnzRcCPdhL2Vc6T7T0 vps3C4S6FlR12jiGh5PJKEF0cmEbZrmNn4QSlkWllH9XEFntmV2nKfACmTw7MzMPiHo9qM1K4Cx ouprezwS5bXyJ+VmBew== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-29_01,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 malwarescore=0 suspectscore=0 lowpriorityscore=0 impostorscore=0 priorityscore=1501 adultscore=0 bulkscore=0 clxscore=1015 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290034 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782707726166158500 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 Mon Jun 29 06:52:23 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=1782707694; cv=none; d=zohomail.com; s=zohoarc; b=H/MyrFxyAu13Gj2RxJHOp2+e/e5F7HyKqvLLR/ngt9805VgJy9dDBi/oWJCsb7FprzNXODD5ER8q99eYZKkU/cLvA8X78XS7orBiIY+CX7z08gh4BUVNuhNaevtIh6SNEoJxGWxkYyWhwZqDj732rNBMk7CLetOuA0Qc4vbcVvU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782707694; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=FYElI3RcmbYtnAEjqQqLv5Mcs6xMDOhmGjzmrYmoLJJTLAExDjTM/phpEQR0IoHYxp4FhZLdS536sdX29LpfPPP4o/WH9EwUmsJD3ybxZriQn8deXAW7iikoyfwPyytiN06TbhQ88lLWCab59Jjey451JoFteWvddRuEtwv3Jgs= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782707694365327.65718914566867; Sun, 28 Jun 2026 21:34:54 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1we3gX-0007GW-5i; Mon, 29 Jun 2026 00:33:29 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1we3dL-0002fb-Er for qemu-devel@nongnu.org; Mon, 29 Jun 2026 00:30: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 1we3dF-0000lg-Cs for qemu-devel@nongnu.org; Mon, 29 Jun 2026 00:30:08 -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 65T4NHU91787648 for ; Mon, 29 Jun 2026 04:29: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 4f26tuvfej-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 04:29:58 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-30ed53abff8so201608eec.1 for ; Sun, 28 Jun 2026 21: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-30d3af0d2e4sm21314609eec.22.2026.06.28.21.29.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 28 Jun 2026 21: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= WYScGZeBQb/FybxxD9F89fJ15bRXNrsuCqPgSPyLkDw=; b=edym2n81jBCaBtAF Qx73e6DsUDuASJ39q0QJCi9kFkwgc8Lrz5b1IXSn/PdDFCO6l2nXKk65JtothHa5 C3kw0gChm1aznOgGm4Y2qM+u+7M1OnfcxN9KmNQrTWMLW0Vq2/k46BBEwotyuAEl 2k6PhixokpCNjK1rTHTyLf5a8fu+8Rn5mXT5qQq7vDUj+tSRMA0bADwdJ8Vj69rF Ljsgwy6eV+wg+nyWoinBa6h9ToEwXCbrJDDcOBBr8DZ7281/uygkPF2W1H8gAL2J SVPmrZ1CQjNI0RF/otyH6vO2FEl2HoPPgl1WAXwb5te8SgN8vTVJham52LeM5mK/ 9qeg8g== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782707398; x=1783312198; 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=gdVBwVQmKCYL58NF5HO5vGFBgjtSL9K6kZtw5yGxb1MlOxZpwRJq92Ajj+UWWlOSiC sOREaVRFkVcVq7iw66XyFctWEe5IJvOdeXk0902rp/ozpYQbVwc6cBBVTLlVNe05DmO0 41cAI+dpfgRZuGdVIoHen309hxx/GboMICaV/+/kvHi+PwrZ8OANSC2TU1RLUTxA6vx5 7ghSd0oazInKVSnJuY8IWbXx9yXIy63Vq484p8MisL+yJKH1PXYrEnR1xR+rYST5wgug J/4GEdFPMof4Hg4g3mRB0ca13RvDgc7/EswR0xjvR8a1lbDCG5/9J+fKQhBP3bLEeFgb ifaA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782707398; x=1783312198; 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=kOwS/+Fey79343g0Yuwbq11eZEtDyRSLcQobCHSDJtAXb6V5OjbxXAgDVtd95z0IO6 rRXg+c3dUDAE4ZtlT9lRXUh/vQb5oG8l1M9M2oW2CAG/ZodwWAGQwg1CNxg0IgL2OzNn tgFUG43GdfgvR5ypmBofoI+Yi6zWtuzmmPXSx+KiyaUC52okyanZNkxlybSy6pfz1ee5 Ay9YWiLqLiz25jOhfpedUB3VpOix1gVODdOL2GSo+JHTwy7KIlngpEuBBe6s19Nd2pH/ oR9ldJdZHRTtHH/XzJF9WuhHW8Lt/lq/Cpxen+eHNgpcfYPGfTlb9iW6y45yMxnpBRQb 5IZA== X-Gm-Message-State: AOJu0YxUW4yCniuB5AjaKo+p3l/dytw6HqbzNTaEJwN3KgkwqeJH/fZa LsxTdIi8ObQucb6bNC2n6ztkJTZYcs2vRZoo/BJlfB5r2LBUhCEKmFTztjhSNewP8kKtvxErx5w WJkw/TuO5YvHRtXNz2DETpQJpCVu4i1EOrJqN1DITAzq1kLsp6fGHBMq7gwfD9N4WMQ== X-Gm-Gg: AfdE7cl4nY2C5LMqHTJMVy7mg19GQfvcWxQzfLU3GZYKQ+7jhMoLBoq472xQpsix0Ta itDrCSnFtBrq24KrhiPTpvAElIhJoi3Y/rRnyLo77nX2LKvj8UkrqLBItIm77FxStmMNVmgcEqw Dcoeb1k8oiVQNwQGHbUCCbnXFcq/AZbeDfdFsaSvkG7/G6aP0HWN4QLyhN974x/JZBjWXL3oYA4 mfXnWXv4gZwYH85Ltpu/3S1dlnh4hPZzXr2/M/VH7Nr5xwYF/7VsL/dfmW1NMG5Ke/SW9VX2vTI ZZMe9WoBuy/dK4KDV2AGj2e0lf8ssqINrfkkMXFHC+tQ5jigD5X3HWJpQVZhrturzaYQdy7JxH7 SZeFyKYDfig9o9+ewz3Or9NBmicOmg7MsI/OyEZVKU9fAlSamDWnRcJHUeFU= X-Received: by 2002:a05:7301:9e44:b0:30c:55f2:1e32 with SMTP id 5a478bee46e88-30c84cf590bmr13531796eec.6.1782707397742; Sun, 28 Jun 2026 21:29:57 -0700 (PDT) X-Received: by 2002:a05:7301:9e44:b0:30c:55f2:1e32 with SMTP id 5a478bee46e88-30c84cf590bmr13531781eec.6.1782707397229; Sun, 28 Jun 2026 21:29:57 -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 v4 53/77] target/hexagon: Implement siad inst Date: Sun, 28 Jun 2026 20:58:06 -0700 Message-Id: <20260629035830.1520296-54-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629035830.1520296-1-brian.cain@oss.qualcomm.com> References: <20260629035830.1520296-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: AW1haW4tMjYwNjI5MDAzNCBTYWx0ZWRfX4SD4iXnafpHs DawDF7HS5thqkp/kc6QTnYikqxhwoxnoMVS8WYrF+vU3dakMJ21l9Da2xKSiRTaPXpMKQjqEYRt KmdynjnwvJccJV72ySGmygNxQ1YyI/w= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDAzNCBTYWx0ZWRfX+6DDpYLVBVyL oMW9zbAY+D+u37OKTLGuEfPTr6wYPNozK0BUqcGXAbAXnu5CoCsEXf80VwS06OyVHwJHg5vp3m+ X+2YQJGa3DHubJdYmbztBOMk274ODEAEWHplzhF4Ru04T9HIJoz3Mj03ul1Hhi2RJ9Ny+PuEgRx 4CEEkUDUnnzJM1YQJrQdTbCVxSv1fqsXRLymnxoWUKBufCyX6u8QjWmA9w6v7g0YlL4wfoHCLTP Y5qKN88K7roiQ1vJF2yOYeA6/bNjgYkqcRSS4JmAcQucSN25Z366NTm1gdsYW/L30GSNKa93zbN seq5RHleCpm0DGwS1yRVSA250ejfZPzBLZf9Jd6NTNRd6MrcrdpVdZsS+3cAEBc6Ie/1maR8b27 G443Qrxp2GQ3A4iKJwK6Pz2nP/8nBftFz/FTszQ8Vi1AN/Abx2vQImd9o4nnCnX/dQcwOVQB7pr HF1YiF10hOvQCGuHvyg== X-Proofpoint-GUID: rFlNLGwXefzki_qwZz5v9P3HQcUAS6vU X-Proofpoint-ORIG-GUID: rFlNLGwXefzki_qwZz5v9P3HQcUAS6vU X-Authority-Analysis: v=2.4 cv=DY8nbPtW c=1 sm=1 tr=0 ts=6a41f4c6 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=HdTxHAvixyPUp6pof0EA:9 a=QEXdDO2ut3YA:10 a=PxkB5W3o20Ba91AHUih5:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-29_01,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 malwarescore=0 bulkscore=0 clxscore=1015 impostorscore=0 lowpriorityscore=0 spamscore=0 priorityscore=1501 suspectscore=0 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290034 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782707695871158500 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 Mon Jun 29 06:52:23 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=1782707625; cv=none; d=zohomail.com; s=zohoarc; b=bxWVDJy+RqRPBBP16lsZEq3G+8AHVceYG7VXdhLal5QpH4YqIeHEiv3bbmyL8Lykb6ldoNhU712Q7GxuawUESv4j997p8rZGR2C1Uvxxd6yJ4gO9p0cMpqtATYuWpiagtfY+kdn4NN5uDx2o5Cs1sd/e/nSaDnneWpWi3xnCdco= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782707625; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=mvic3cjfIP9YA1Da+8b3MQp961FfjeLLJxQMtagdP06e1lgmjG7hRMZotufGpEXUd7HI9i2anPlW4JGrKw5YnTXvvm29Lyn//0m41dFmu1fOM3HBiZsEQ7m4lgY42LpyA5siy/zbdwt1GHTDCP+s4rWc4Y2O/HSwdOsV4ws1mgU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782707624940417.7381538957874; Sun, 28 Jun 2026 21: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 1we3ga-0007US-Kh; Mon, 29 Jun 2026 00:33:33 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1we3dT-0002hN-3p for qemu-devel@nongnu.org; Mon, 29 Jun 2026 00:30:20 -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 1we3dK-0000lo-I7 for qemu-devel@nongnu.org; Mon, 29 Jun 2026 00:30:13 -0400 Received: from pps.filterd (m0279864.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65T4NE8N1718897 for ; Mon, 29 Jun 2026 04:29:59 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 4f27pf49xf-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 04:29:59 +0000 (GMT) Received: by mail-dy1-f200.google.com with SMTP id 5a478bee46e88-30ed664e368so70436eec.1 for ; Sun, 28 Jun 2026 21: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-30d3af0d2e4sm21314609eec.22.2026.06.28.21.29.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 28 Jun 2026 21: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= JvcaRvjzOPnVsLj+Umjxfrn/9XQNcxuKMqpMR7fRmpk=; b=FcO6pQPBOauWyc4a a2fXEevuf5WS1owBWZfCEvuFQPBlO7Hs4UCw1tixwAn+BKda9VJC92kKnCboYnbG WHuR4hE1HdOgAN9NMu0846S+Ro2yBS5pmfitenPm1G11vPkWK/37SSlLdKgSpdYl JUhfFVGeHC604hIsp1W3OLUZUCMgV0hxsRV51jtpKGA5u+jT7SqQA0TquQzpK9Um jRbrCDg83ZCJRBhDpmEl1zoy/UwuOosgTSBoRtAof1u2wT+1uM+CSDIVDuuPzxMD dZTuZZejMobrluY+y+5jOIZHlOpuei7S8NTHVvQj/PJaV1tj470H779ZO/7JIVxm HE0BLA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782707398; x=1783312198; 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=g+dmW57Bt9G4JpT//0IO8vEk+AAe1yObHVS9o6OAuoOZkHI8meON1HBrvGqaiabdts 2aXRlO6+1nVYv9hkF5NV02j/eM8/5ZQCBSjWnQ8elUdtGSf+a+olo3PQKFF/kh3TgVSU mKFyW7yBKREuE+vYsSCM4OBrV/Etb/pmD58xAbhHgcBR2vkEAXDr0U/cNySqGEJFovIS TvZ1xapQ0tPuh2lwkFmeWwsRVUmPACTTiY+zBhJtmq1OZcWYkJikDEo8bSMoYgIGvyIZ lL2GLE3x2uvfuQyQdCETZ77DfLHJhaG8AcWY+LW1DJD9jK6pzh2RGzY4z1YOsElJqVH1 qZrw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782707398; x=1783312198; 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=WsJwO0RXrTz+AX5vcO+DRXIJFBfVhm+H2+G5n5tDqQgWiXoEPMGNQ4Lo78vY+EimL3 LHDpUsP/nosO5WIgFQnCebcmrhPTb8n0Dw/1rACfYg40MlXQluLiRrOWil13UeBoua+4 +vBWQ4rXTPIdYhZ0eewSQU0BI4I/iB/ZdpIvhEPomsDJ5qvKEJcDCr+3lC6942UdhrIe l9td19sBi+GPq1hEYJ+g8pMfQy3Rrm4UIk+NEPyskhIzKLG+NYgr/j4YhFOfuDEEbRf6 I5McOAde4HGa44qjMXouKPpBCd+Q/FFIJ145k6saLSiZNjFlT4SYTuJjvKqe60qjF1Wl 4GAw== X-Gm-Message-State: AOJu0Ywj+t4w6oUTNBcN3nakBxVjS9TL2Jtrkzbr3KK08Wn+MsNXUQp6 yKhvIf4TY9WevjpI35Z79YelC3pXQLYl2HmlDKUlVE3mwZBDSXLfWtauT9u6UAFdz6gfVarQuvE V6Y0Qv8JlLyAw2O0zoy5fiZaTNSEpILqv8SrpkbAi/Wi5N++bPqs6EsWhc3BtxFJRcw== X-Gm-Gg: AfdE7cky5f7mA2Yyx1MMMsSo+HQD6Rs8u+11IbIW1BHEYmQBgHlLTk3mc24X9Sq6gcu YbhXWEc7JGFUiZFKGCp4DKojJkp9iA6KzhfVFisE5wH4vE3zk3HYs5/kpFsjnvrFu4Uyho7RUk5 a0vwOFVTxqdIsH/UNHnR4zzmmiU3DerMqLA84ZKNWiD3rXIl1CXPiqQDVRwxsxL961pne0Lz65p OIDPj7mTUktyQQ68z6o4BDHvGH7kz+Gjx2XzMzWT4jh7xeWmMG6gsy6c7Bm3GVjwpa+3PHURgUw QvAlUCLxTYLgKOySdRrfMPTAKdgQ7gzqgyUAlmkC1JmgR9TGygc8/+FLjyr6Z1KRZLDbcdld2FZ /mZoEHROBo7cNCh0+kJRV/NX0bHW61KibJfHkwe9tWGWHNUsHi+7E7uH3vos= X-Received: by 2002:a05:7300:da17:b0:30b:d209:dc18 with SMTP id 5a478bee46e88-30c55606b7amr14250290eec.10.1782707398562; Sun, 28 Jun 2026 21:29:58 -0700 (PDT) X-Received: by 2002:a05:7300:da17:b0:30b:d209:dc18 with SMTP id 5a478bee46e88-30c55606b7amr14250278eec.10.1782707398062; Sun, 28 Jun 2026 21: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 v4 54/77] target/hexagon: Implement hexagon_resume_threads() Date: Sun, 28 Jun 2026 20:58:07 -0700 Message-Id: <20260629035830.1520296-55-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629035830.1520296-1-brian.cain@oss.qualcomm.com> References: <20260629035830.1520296-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: AW1haW4tMjYwNjI5MDAzNCBTYWx0ZWRfX3lngSb95+31s bYYAzBOa8AkWfmG6qqIFSA4pSuFfrH5jHDj75og3xso9gCAFDuZg6+CS72VsY6M/zxLi62rI4eL DeC3joE0sNJYfv9fJJ9pz95J0snXdYU= X-Proofpoint-GUID: 2-EZmnVl6gL_Qyt3ohzqZl7frrvcr4Yz X-Proofpoint-ORIG-GUID: 2-EZmnVl6gL_Qyt3ohzqZl7frrvcr4Yz X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDAzNCBTYWx0ZWRfX8LxVj0Hrqbdn Yi7jV7xlfPHYDFoRELWTYlbpeDn/EHXE3ltLIrbxtrPQeaWeTmiuk9TZ0xIh69JbJip4mQx5pTL bs2lIDZ2PiTJ5BypUFjdTXY4mvI7WxwO0R/ES0oToJxxddGuVlhSzUYFqf6TOpjk+DHQRZTlm1M edpZm/jjIcQ9LX1OiwEHYV5WWxc2WEQNWHeEf7DbALHrhu93AC3WGeBZw8eEvrYm6CDfGwAmH2e Z9YZVByXJ13HMsExn1PrHpepok0utG8MX2aTObDlTemwgmRE7yMl/ZYur0nYgqaWnLxGmhulHLC pRcF/NOP2jR3a8BROlXFndn5EMESRtyBaNZNkgfcf9ELBkTsa8wVvkdPy2GejdMAhmOUBqO614x UCQ3FHGgnHgdFumMSCBOMQY7CsDCJ2WU6JjW2MGCJ5414d45mFWMBo+95z+undfcC+XOnVoMtiw Xh1Cphmna6nfzYJ5bPg== X-Authority-Analysis: v=2.4 cv=R7Mz39RX c=1 sm=1 tr=0 ts=6a41f4c7 cx=c_pps a=PfFC4Oe2JQzmKTvty2cRDw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=DJpcGTmdVt4CTyJn9g5Z:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=uy5dMy9T3THg1DqjAFIA: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-29_01,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 adultscore=0 clxscore=1015 impostorscore=0 priorityscore=1501 malwarescore=0 lowpriorityscore=0 spamscore=0 bulkscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290034 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782707625567158500 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 Mon Jun 29 06:52:23 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=1782707642; cv=none; d=zohomail.com; s=zohoarc; b=TT3102I4o0lSHpMaitzeQkKbgWgMzSxS9953Y9JgIR3XDZOTbRWp+8OQTKI6Hh+0J2i6NGTVT71x/LuaVwx9CudPw/JZ6d2vvvScwMMtUo7xp0ce17GBr9L++paTHTCji5UUKHTiBrRF8jWO0C045SRsOL0VWkL+XlLaFlwfrWE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782707642; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=GQ5fCz84tArOln3fSgmckShjrCjxHuYpWY2F2HSpmbG2lXCYazwP8h1gAbrN4YsgQN+e0KY7EggRq64/0rZOS+19zIVN4RBmrneTULjQIePiFq8y1FFCyIDHGYMb3kipHoLySScN3T8MGrllFOxooauLhNPSnkf5Q+WK4rj9SD4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782707642951777.6814836412699; Sun, 28 Jun 2026 21:34:02 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1we3en-0005FZ-Fm; Mon, 29 Jun 2026 00:31:41 -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 1we3dN-0002ff-FN for qemu-devel@nongnu.org; Mon, 29 Jun 2026 00:30: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 1we3dH-0000mA-2s for qemu-devel@nongnu.org; Mon, 29 Jun 2026 00:30:11 -0400 Received: from pps.filterd (m0279864.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65T4NGSf1719002 for ; Mon, 29 Jun 2026 04:30:01 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 4f27pf49xg-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 04:30:01 +0000 (GMT) Received: by mail-dy1-f200.google.com with SMTP id 5a478bee46e88-30ca81e05bfso2802355eec.1 for ; Sun, 28 Jun 2026 21: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-30d3af0d2e4sm21314609eec.22.2026.06.28.21.29.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 28 Jun 2026 21: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= J1aA0AXcl1R5eWizmiiFdBlejhKxkpocBp47xOiaUuM=; b=fpMuHpcbjeDxJogy CRTf9Pvj7+b/D2j7MqlB/DBDjeELPVE+h8OsbLvFEB9NvRBDSBGZINfUmThFzWkW HHr14nc2l9NLP3wuUP8TUwKIh1HM3UHI15dfYO9pqihy74t8OhZW/8HbwcsucG8F mBK7nR/mBNg2vt7XRTmM1rqFXhZuDYgIh6WolmvZ6J4rjO9DYri7XYmmwB6HAFNX WFj9wXmWIBuQnSvGxgiqWLMkPYHrAIzNO4ngMkXOzFnwqhpp2yjwMCPSC39jIH58 jwkWONA2obcAOogbDvQlRXPnJwJDsT0q5x0ThKpkXaDsyEoauEdD3oJwWIx2NLBO tRr+5w== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782707400; x=1783312200; 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=WIZfpZXiGMMZS5goqZg1MdvFsuiG1MQXYiAFGDPGKV01EDJC0Bgi0TpUA0agS0wRSL 1BcbLu+dnnkxmoKqymCItEYrNZuy2B2zc4WkKfBN/Ifvs/DbTi3ZhzYpykLc10apRcpm ZaMFonWSOAik3B5906el83U1nAlu29kGmKoAGzF2JpPB3ZdXlWfTjro+FJ44H9t7Smn0 WtcNVZCHOrZJTNK9Q0m34yQY3cDZAoWbh5lkXUI8l2PXbE/uOeW9/PW+++ToSuLuOLkG aBSSqHit+8QOkUfkGI1dyMAL4N7uGHqdjuEmcRMXr444o9P7G/IQYiwp81P2JHtldtV5 XyxQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782707400; x=1783312200; 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=q4EbQ8kR/9w8+2Rduwdovxnfs7v07w+SVsCvM+PaWb6AGsDWIawI1F8ypeVhxpInAM xN3icEig2kRljnDXgbSprW8R3PSiDVjO7k+HeeSscYuUtS8MEtajIovQ4SG3bCmj9s8s Pnsdw4t+mQS5uDVm5NPNjrwmTzpRPLpdfNUHE/Rn6OMXjxYx9umUWj/k7cB/g/G3Cn+v eoy74NnWBGpbjlhrETZDb0DhCy3lwGnWbj3bLSj/XX9tvONgEuU5nxgqLmAdetYO+j7H bcsISAbLEkndsuCPHiO6x4fgFxli74jb0qmpOZq4u/L8CLjDd3jNmqp0xPvOmfLyLxd5 hiNw== X-Gm-Message-State: AOJu0Yy+LvRiL+kyaaG9ooZ5SVq5arDK52VtPMck31buq/0ExU1dfXRq rx268cVndw2sK8HB7/LOBA4b73a/R1o99GIWuPs1x2WTuUoHIiU0Ocp+7CaeOJIFqmv+ldml16/ 9eIqlt38nds3y7vPgUC3PuBDPTIzSZz7z96tNacnKQVcSRUK1wf1WeGmIRHa+UvxhTg== X-Gm-Gg: AfdE7ckx/QceTX0crjb4eNmtbK4CWXNr9yl17x6yifNITWW4Ku9LXkwIn49mrDuBpjd wEfoF40JewTkEhAEiTDdy4yisRiFOhM0BLQxGxpfA4s3p4KjTIxkmG+XmEF2OkHfUArO0dNtyWt i3/hLG1jg8lCLkoQuFjXOsqBVd3/ygqG9I6i2X06pZoH6KJvgogkLma7FY+lvHOisJYpwjlcu4z vamSpFYyuKDZQTFFI9Fs5O7TUmDT0+bPVR92vr6oiO+Oud+xePiVbZjgriShjaskEpgV66pkG3g 4OODaFBgreMBcicHqY95Sdf3/8zUt+MG49aR5CsLEu8iEJ13zdGVP3eyymUy2tv2dJ5JWy59dNt ryN3sLc1rFza96zsp9fynCM12k4WFj/oQFh4VdJYo1VIWSmEXxZ9+sM8DqmI= X-Received: by 2002:a05:693c:880b:10b0:30c:b0a8:c9b7 with SMTP id 5a478bee46e88-30cb0a8cb0bmr5159012eec.41.1782707400188; Sun, 28 Jun 2026 21:30:00 -0700 (PDT) X-Received: by 2002:a05:693c:880b:10b0:30c:b0a8:c9b7 with SMTP id 5a478bee46e88-30cb0a8cb0bmr5158999eec.41.1782707399627; Sun, 28 Jun 2026 21:29:59 -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 v4 55/77] target/hexagon: Implement setprio, resched Date: Sun, 28 Jun 2026 20:58:08 -0700 Message-Id: <20260629035830.1520296-56-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629035830.1520296-1-brian.cain@oss.qualcomm.com> References: <20260629035830.1520296-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: AW1haW4tMjYwNjI5MDAzNCBTYWx0ZWRfX8CwNmCsLzKyt PUzYYkHQ7+djUiv9TXdfGvMhL23TYYDgJ4o0Khsd8sG6uicRjNb/gT0nz7PlFbCgZ+DhtYVT+0Z gDAWwuQMoq26TmMt4IOLh3LK4V0dI4c= X-Proofpoint-GUID: 1Ah82UEw5OARMp_bLpqq4b998qYA7BiO X-Proofpoint-ORIG-GUID: 1Ah82UEw5OARMp_bLpqq4b998qYA7BiO X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDAzNCBTYWx0ZWRfXz0G+pF5VNME1 taC/3g26OEH3eDv2a5436gUXCer9vQGG8CVlaE8hyEIy4mH2VrFOrqvydNtyjfWYYI2lMmu7ZGO EpVTSf8ahbgLhJ0QcQ7R92arAVZ42gNiyPieduwxGmw7E+ICrE5qG3lr0i+mZN8WjlGqunqq704 K2u5BxLqLIAJS7u7ZucJeQqMvmch2Wh4RxmV6hZar25nmVhBCWyt0soQFuUEL3aaRGbUM/tYzrl Tilcw/pMs3EaaSO8sMaVyMMgSR8iI6c73XeoICzWa9Vd4BP+Of3hekKajEayobRD/1FGnECZFhj ecrwRIEcjYe1Dlmb3+E6yXDJHTIAFGXmuy0ucxCLP4C3lj4gUj/DHp0Atu4vPe3edrVbeuZSEsE TQs8CP6om2wFcIWkdwYQ3rekZSdaFThpZHwQpDCCC9w0gyeI4dXIkYD6S2FPlnm4yr1OxXvvvz1 BjolhfFIrwO8FIj4tqw== X-Authority-Analysis: v=2.4 cv=R7Mz39RX c=1 sm=1 tr=0 ts=6a41f4c9 cx=c_pps a=PfFC4Oe2JQzmKTvty2cRDw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=DJpcGTmdVt4CTyJn9g5Z:22 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=9hY_xzidxOicKg_qOOkA: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-29_01,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 adultscore=0 clxscore=1015 impostorscore=0 priorityscore=1501 malwarescore=0 lowpriorityscore=0 spamscore=0 bulkscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290034 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782707643699158500 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 Mon Jun 29 06:52:23 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=1782707694; cv=none; d=zohomail.com; s=zohoarc; b=NK4g953REEdoCAQvC2AuV+EOP3qSVV/SMzYTPRrf/lBDm1tIXdhKhh+uIjAg5zdivvsyz2L1Hckzx8d6lI4LuJOsVrLKw2pJKG22kw2/3HGFF1TI9UAC1VEMgisMdaGn1r5f3NAxaiHEs/+fna8QaUaviEIrQBTM4P33XA3voQY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782707694; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=XnZqwmwLsVSSP6PwCyshNXrQdlCRx4LApIJQup5BgHnlWC3jjfPtpMn1lJCP8d+WH+anuYcFFeE3i3v5RKE8HXbLrk3QSYNspOUw20v4yvvMF1eLWai1A9zhIbsTmxJFp1+4kGfswwURMoyBcOwljmTjmoIzzOsm1G+rgkkkP5s= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782707694480722.0617224284866; Sun, 28 Jun 2026 21:34:54 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1we3dt-000375-N2; Mon, 29 Jun 2026 00:30: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 1we3dT-0002hK-23 for qemu-devel@nongnu.org; Mon, 29 Jun 2026 00:30: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 1we3dH-0000nA-4H for qemu-devel@nongnu.org; Mon, 29 Jun 2026 00:30: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 65T4NJIB1724605 for ; Mon, 29 Jun 2026 04: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 4f26w6mfnx-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 04:30:02 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-30ecfc5dea0so408475eec.0 for ; Sun, 28 Jun 2026 21: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-30d3af0d2e4sm21314609eec.22.2026.06.28.21.29.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 28 Jun 2026 21: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= HRwBm1PEj4CfI6jfh+n9tz4eTBvdQkmFIGL8YkDQmso=; b=NTu8Iz6h6za8JSTK kYCmDl4vBA8eyMTrFpv3xhn25nipTOCTeJ4EbT/26gn8D65Lat86FoYrPugZRVg1 LtEk5E7A4E1PlrkVRBpDASM1Mx6aZjNECgE/iX+T6XbmUMKxDrKHUy+g5bMNQzS+ U3M4Y++BngnpBMasev4g9J+7tUMmpQVXmv+Lqvaz6u+QApCIpd2cIg1MZ4JYG/o4 gdwUrGSoEYLIYpujNYOYHcd4NiyNx9H+7QBUSIz/vCWWhAPZEhA6JxOZjb3FCbEl oRjLb9BI6knklgf/xk+QujxZmsEgM6OvRflzzBRFgFEVXqpjzhhVAwolvBn7O/vR y9vgSA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782707402; x=1783312202; 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=ShRgrWWR7NS7S7V7xql/k9BRhgg5jJqni7QtEbQG0FxXs5cfHATcnTRw5bOpJgiCd2 BMamcQUW4NooK2XeuDGJSRr+cB9ojhCrRVS9o10uW5dMO3oAB6OzYeHIKlrXH5RJGos5 aTKxt/ZTAuhUqMFwmeXk4qN3wQopLDhj/GZ8pwZuPauRruB8MNPVUxf9sW6hYMbKGocH f6VfCc41yH0waU8EICwCIpnNz8BbrjLa9x4Aq47XJRofFBv9nBJmB9A3CLUoWf7ueAWH W5mCF13z6ZN1dhy6psBCwdGZ9GlaydOJr3dBt9jmj1MO2AMI1RMTFdbqe1jLVROAucN6 WZlA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782707402; x=1783312202; 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=iOGcI8EZ+er0Ek4ZYHJRYABHa5/jwqhFO3szuwGCbtPdzRV8qQxl0QAD7cHxW4fWrx /fupFNtdPRGxkOZnoOK/+8Yd93j8hC4sNn24scpQBKNaZxrZwaoOCFSuJDGVmJApLDUN VcC+XWAFQYEIeRU3nk7OkcKggJdpyRBGqzvl7DFEOEehp/AydmHAwqgaPKX4mlZ5paz/ afUU52n6ijdZhDE+L2v/2Th9lashXVEDeDuGuw/GI9JT1Qxar3PUfBHWkoMfparCyKhf L2SDdtacPKVepP0mDNF3CFnpUMunISAEe+o8vOvIvIY+22d+odba9fUs01qe+Y0UnUWI NZqA== X-Gm-Message-State: AOJu0YwP94Grul99j1br+Dpw61FOVPiDyU2WkE8PckDGEgrGQ5vn7vVm Ymz/xj/NQrN62q9QfGDaWhM2Zn81BeSdTilaxCnU2LH2I2358oIb4CaowFp8QJPa6g9k4K2ovhz To0lWmhvwA6jVTecUNPaV64Y5SS7TAYOj1fSymu8hsA2jpDs42Qgdi0JwHnFGCwagmQ== X-Gm-Gg: AfdE7ck4bgLmp6wsHDwG335m9ahdIhpuslHPl4Ynz09cxLBdjTzeWwFrrVwgGH3eP38 rJ6aTi8u0Thg066kPtg9xnR9qCizeIQ64YqRkdwPElG9zE8fFDc8YD+sQvqtd2nM2OQOYP4qF9t /Wi+NNfX5behyr0nZk5+Y9hhf7T/pCYGpN61fRg6mNgyIqJtQZbPXyFqZWSz7WZZzD7jBTADKYb CHRJMR8X5qr3r1IeIArmxqjUMb61yYixEQkpLcxPm/4uKyiGHwNfibgXs8f/0IdgGHCA12IsBW+ hO8KjBjTu+/MuEWXCNBgZJGvC2hpza9rtRwj8Iy54zOCgkDWHqDDClqsHvv1fqhgkyEIyN1ASaV UoC9Bp3lYeH8laV+vZWVL6dgb6UXOkmMvKX6/RA7iMWTtK0LVy+Yrx4+mt1M= X-Received: by 2002:a05:7300:7b89:b0:30b:d748:e7f9 with SMTP id 5a478bee46e88-30c84bb521fmr14835010eec.10.1782707401399; Sun, 28 Jun 2026 21:30:01 -0700 (PDT) X-Received: by 2002:a05:7300:7b89:b0:30b:d748:e7f9 with SMTP id 5a478bee46e88-30c84bb521fmr14834985eec.10.1782707400786; Sun, 28 Jun 2026 21:30:00 -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 v4 56/77] target/hexagon: Add sysemu_ops, cpu_get_phys_page_debug() Date: Sun, 28 Jun 2026 20:58:09 -0700 Message-Id: <20260629035830.1520296-57-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629035830.1520296-1-brian.cain@oss.qualcomm.com> References: <20260629035830.1520296-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: it1VvmKuX6cx0Smk6e_OVjoL0VaqldrB X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI5MDAzNCBTYWx0ZWRfX6dRDMkOmr+Ck AxJlSWUzs1+jjh+C7IeYR7yBDT64SylQKHGPMpaluykvQgoDHbYJG6TNRPy34RRlTSmuS9YZJgD MHCbjLaxQrcYZBU3WIrUu+RUZFhvnp4= X-Proofpoint-GUID: it1VvmKuX6cx0Smk6e_OVjoL0VaqldrB X-Authority-Analysis: v=2.4 cv=SuugLvO0 c=1 sm=1 tr=0 ts=6a41f4ca 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=fg0LxJQkbHe3Ved8Rg4A:9 a=QEXdDO2ut3YA:10 a=scEy_gLbYbu1JhEsrz4S:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDAzNCBTYWx0ZWRfXyRLiEUuagcUI nWnqxV2uD5/1pRp7bEBR05Wth5EB0pApiC50DEYvzN2+K85NCH8bWTRkQIShwWzoiwBbSz1U/PS 1EfXeA2pAhHcEyOeevn49ziCHIMZH77vyZjGgm3bnt9SgaX52uGPzQ1GsFVGSdCjI16X5Rxapga b7uwYuT6hRczkSp1/3974UhG4rgxRZgvAXng0M4xL+FFsLXHPXOXSPbK6FlepcJRxrfcj6X9TYJ /yBAAPQj6TV9RiuOU5jc3YM7qE0BjbtAwB2FbeMgtDaKn0D+aPy2WdFdpEbh65YEaWBkYTmVxNQ pAF2vnyu70Rn1/8h/6QEzhOU6nFjyNNky1P346bfTagUEaBaO1eVm7MDSAfJ1bkZAA2ya+S18mv emSrd5iv/dk+vTi/1gfmHdRy2oYV7zmT17QlAL1pMEyBmbqi6vCxDtnuzvb+FILQoh3H/YRcZrZ Mwk7jq9YyfONrO1YyxA== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-29_01,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 spamscore=0 adultscore=0 priorityscore=1501 clxscore=1015 phishscore=0 bulkscore=0 impostorscore=0 suspectscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290034 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782707695869158500 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 Mon Jun 29 06:52:23 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=1782707504; cv=none; d=zohomail.com; s=zohoarc; b=aJ802ZgClFc+4dNCCqZz6a1Azig0TkbalUnKhVf2kaY14YEUkC2jf7SW4z9B8FWBOZsz6Vtx7+lhxpPWrAtuKujzz05PxvNLomiuFE8ZAMZOEKqmtvwK+NMMYTo/Li+WaKTz2yXXncEfPNoM0tDLoWUL3t5/A7gXNJVyz+tWGRo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782707504; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=CB/gifSHBeDsQ6olwWQK1fslcZS7c7dF+LNf5rCP8FhMv611RD8qhj7PUA0RNohqWlspuznQDVZn8fQes4wcpvmybPJCOEKWdIL2URA/rPKGG7E/pqb1VZeArunEl76BBYSHU+RKT5rkquCtsVm5/sCVZ8Zk2l8VFGvafvbfk0s= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 178270750408962.60560748300804; Sun, 28 Jun 2026 21:31:44 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1we3du-0003EF-PX; Mon, 29 Jun 2026 00:30: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 1we3dN-0002fg-GC for qemu-devel@nongnu.org; Mon, 29 Jun 2026 00:30: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 1we3dH-0000nE-2J for qemu-devel@nongnu.org; Mon, 29 Jun 2026 00:30:11 -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 65T4NR4I1730178 for ; Mon, 29 Jun 2026 04:30:02 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 4f27t7vahj-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 04:30:02 +0000 (GMT) Received: by mail-dy1-f200.google.com with SMTP id 5a478bee46e88-30ed664e368so70456eec.1 for ; Sun, 28 Jun 2026 21: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-30d3af0d2e4sm21314609eec.22.2026.06.28.21.30.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 28 Jun 2026 21: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= pn/yqs889jusoL8Cmra03kW8nABJmbmt9+r6zbgwxKs=; b=GZe67EYBr1QfLz0+ Q6TnE2YlGVAaUktVvk+oFbshMOra6LfJIHbni8vPXWdoSpxM22ogStIvl9GFIj+8 sKe+qnQSfzzpctqX3Al0aQXbFXmIFkf48c1FEqD6cbYK5ApofNSTX4fwbU4uv0OE x3SQE7UHIWx02gjFQxBtym1Lhuhzl9hPgSjrbuhZrqrZpNX0poi0Owwu9ca2AAZo rz4hRypNd9kj85CQsQ//GUl/HIDyKBTqnO1LCAtc/Fh/b6+VS/Bg7mpJ8oEnl/5a TGh0WQelqkSG3Y7qr3jjhoyouUgDibTP9/edU5w1w1Kn1izUnUQUGcM2Kbdzxanr 8grxIA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782707402; x=1783312202; 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=KlStsGFoQsCtup816wH2VIIZ0hqJxXXdlNrHDXTsllRl7W+mgUPNC4qqi3JYEmm0/y mnM34xlitFSy8tjLY7Z2DWsBQJTRoR4mXONgRPE4neIN/K3Eu8o2Cw4xeumFQ4gFQdfm XgD4b5uDyIIFUiSDfsApJBl/K2fPY1zcV44bD0SNKIy4Gvk6avoebkiGtIbZJIsW5Xt5 TgEZ2XyQGFvByZyfEmGyzjUD2yV4bD9I6j/7yTQdyecM17+KmsIUc6XiniK3W+a2uco7 0iVNgqJ7itB5zmsgoCclosAZ5S/yGk1o9/MX1trObyQ9Phkayicvs4yg2iONBpHEHLaW Da4w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782707402; x=1783312202; 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=ICA3u8yM6916gQeeM79+LbFqqxlNMmLOuGplgfHqumj3n6ZIeZbQI1imqoDdpaw7r/ UdYA43hlAAi1Wsl6VOsbpNpyAAezXcAyZ5H4GNxrPna98I22Zs7NcnZFFfPldy/0rQ61 MeSujQrUDaskpZiw+Iunv+mAgYPDbQdklfJFVZriZX0bO9oKn6vLPJ0SK/GxJ3FsItcZ b7+H6Twvf+02sKBbVM20nmuahVSfVRN+a0dxPNCegjViwt1bgeUrbQqHxHkzn6j9wSs7 gCJibVOuNBLvX2nlXbwofAoWgltvWA0IZzkNlXI1qmfsaMcy20cbAoOXNMc3SJLzRiCR 2WYw== X-Gm-Message-State: AOJu0YxIL3vrhXH3bTOa7gz7TiY28OtUmiaD2HgQPujs4Bevmd6uPcrU yxTAjZbDlzkddolayjQEf8WGa9sRYNiYHs13QgQM9m8SJRaRPc4WDYU2iL0gD3WYm3qpEIGOgwQ 7c0rus8FPymcCMs0T8Y6vv/rdSuOtEY6hiUZ9hZFwsnV9PZosqcIlSIyVQHE/ffeMOA== X-Gm-Gg: AfdE7ckzPb0t252j02kk17azrlK2PO9AwGTeWmK3sEEUNbWUtUZ6M+wu3mGtfDwI0qf s/DKdTLN8prRl6SNi44pUuLRUzkUNlczljV2r0aiq7G04SoSCDxNA3AWZBEHcDDuxvEpt6xBzr6 9YwZ/iQbdPEVTCCqss/BriUTmiiGA6P4smWElvNayzJBfu3k0+51QHgBm6d3BAxJr215wPnmGvj WdBLJiAb7F50ru9JAKvxknxkzVkc7RopoYLBjJ2XaQX/0yjAnugUpG81imOXubHTCxB5p55oGBX UNxfLckkcCqJLcJt533bb46bNn2LSxkXizXrbcpyFyfoPM5oquvdHQFYgGx0C20k4RR5AaHjssu VKO5GAuxcvlhiy0zwjezKhXtdw65+lh6D9sZu0d097ixfGvuOY6DdQ7mSJII= X-Received: by 2002:a05:7300:de08:b0:30d:a0a0:90a1 with SMTP id 5a478bee46e88-30da0a09379mr3759871eec.4.1782707402122; Sun, 28 Jun 2026 21:30:02 -0700 (PDT) X-Received: by 2002:a05:7300:de08:b0:30d:a0a0:90a1 with SMTP id 5a478bee46e88-30da0a09379mr3759847eec.4.1782707401603; Sun, 28 Jun 2026 21: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 v4 57/77] target/hexagon: extend hexagon_cpu_mmu_index() for sysemu Date: Sun, 28 Jun 2026 20:58:10 -0700 Message-Id: <20260629035830.1520296-58-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629035830.1520296-1-brian.cain@oss.qualcomm.com> References: <20260629035830.1520296-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDAzNCBTYWx0ZWRfXz2uqJcjvTDw2 QRt9fKp0ZX4ixZTaG7yjhA1ceLCKkDfM5qVS55fuiq6egPAU8Eoy/zKOXSxLHVv671JRCBvxxCC Wexhzc7s2xKe4yXqwGjvG/CdjXKbC7zWFRqcGdK87pW+Ajim9RbCG6/ngiGm500wX8Wd3I3Kgrm Vq45evu5U4aKcKN32hNaLY3v4AWCFCyAJaNme7n3NoLVuchwJsFmQqj4/siMRZV7O5LoVd3Zy5C iBMnZTvFXQsMHxbJ+rSt0s1cFN+imy+E+ZZTEstfD3flsKaiIDKdtP61iBQ8RNLH4qgff1yURpH 4EDZOP+0wAOPT7X4h2plCuku75BrIZxikE+pqKTL5qY4zSmQiDqBDegTYJOkK24PqkadiPXgypl VI+LirBaHmwn9TVJsNOrFfigz3vpQigVaZOmOwwEIeIn067onaZowciX1ENkTewxtv+fpHo/Vd1 JWD08enBBcYNcLwUXqg== X-Proofpoint-GUID: xsF642NSmsbLQW_xz6l08WGw6Tl6j5Zi X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI5MDAzNCBTYWx0ZWRfX+IxMWvoy0ps3 F/0ghBQINpldbiCJC3NKNRXB9V8GiDM6q+zfpirpfx/Ah1XcJd4Aa3Xd5shPiBlZuzzBd+wz1Cv 3ECDdi1qJsxJWxNsO9xLIPOXA//cX3A= X-Proofpoint-ORIG-GUID: xsF642NSmsbLQW_xz6l08WGw6Tl6j5Zi X-Authority-Analysis: v=2.4 cv=BdnoFLt2 c=1 sm=1 tr=0 ts=6a41f4ca cx=c_pps a=PfFC4Oe2JQzmKTvty2cRDw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=YMgV9FUhrdKAYTUUvYB2:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=hUoHZ09r4jABJgGRQWAA: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-29_01,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 phishscore=0 clxscore=1015 suspectscore=0 bulkscore=0 impostorscore=0 spamscore=0 lowpriorityscore=0 adultscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290034 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782707505093158500 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 Mon Jun 29 06:52:23 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=1782707616; cv=none; d=zohomail.com; s=zohoarc; b=FBYZ7YeTxPQgZXZEzJpE2vsFeUVOM59e04An+xq0QCOaM3NVGT8vs3ehMnfdz5LHeI7mzHvA8bMRzwUoGpablq5FL0xNBLqtevnttwcUAflCQnUc0EAaBDNGbEqeOC1bO3bcl7a3d7cKf20dWBHZVUBe9E0ntzaGRzHtavVCAGs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782707616; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=k3PSxPx8yW8Rfsv63Ikl2LUaNmNUgM3OeXQ0m1dmNJwnvzqw+HNRdNRoM4n6Tm1ZXNmvPCwYcWXg2FQoZtNBmuCAkWQzr8N65dpiSMOW2SNg1QCHPKn5Z836MTiJYX/ub8mj+YuaVsUjM1tLdUWHoRbPRiuOpODBCSL0ZL7XAr4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 178270761611271.55157810091521; Sun, 28 Jun 2026 21: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 1we3do-0002xF-KJ; Mon, 29 Jun 2026 00:30:40 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1we3dN-0002fe-FJ for qemu-devel@nongnu.org; Mon, 29 Jun 2026 00:30: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 1we3dH-0000oE-5X for qemu-devel@nongnu.org; Mon, 29 Jun 2026 00:30:13 -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 65T4NI6A1737533 for ; Mon, 29 Jun 2026 04:30:05 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 4f279cmbbc-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 04:30:05 +0000 (GMT) Received: by mail-dy1-f198.google.com with SMTP id 5a478bee46e88-30c0a27ad86so6739444eec.0 for ; Sun, 28 Jun 2026 21: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-30d3af0d2e4sm21314609eec.22.2026.06.28.21.30.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 28 Jun 2026 21: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= KM8Vmh2bjk7TYidhmOrqAPOj1Wp2rd3I7ixjJkyml2o=; b=HvvpOVQprC+gWZPl u08RwB9iLH60HIwADcwsoAfyL8KrNC0woxN9kuk8rIraGYNMk66sgxtUQVW4v/yQ 5RFd+//+yfvSiNc6K/FlozmSFZG4OAUVQx4TTmsO8x4REl2JAzJ6BFL8EjxqZIYN eM8GdT1XdbY2YRZmpF33RJlTPaxkH5aNcEvO15R4jxu2u1ar6iC7GQ86kPS7WlDT Tz0bBqW/V9eJKjTYIHf6ghgx+k+2QuvsbvkyULDin5PSzMyeaF4XgeajyeIv58Zi IBMS1ITspmQW9oRmQ10BeMqrubmN1POHEAnvh/VFVyaZg63EZQ0DmHwjoir6g3RU AcFZsg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782707405; x=1783312205; 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=ZFnEcbmL72cBe7GHKWxbvm5iiS0eHKSEk7ZmJAiawgDU7LMq4jCY4CO+MD4sEQ3Ljq 6NrsK+VAw6uRN8v9qP1X/6kN0m3u3BDH2uPzIBBdEkqYt0suHXLFm7vPlNtLI4nift+m ynp20g4BAhszE4K3MVxD8jMOy0XTwYmaPehc+b7mVa/BBRn1uKQjCdWtu2vc1RG5rsl/ FnObwdNoufcAB9wn5DMLX46KeBRaivWM44E7JnVy3SpTvfPyeDskTb9uDgcsRSdAsnNz WbO1LkxwT35K82vEgt/+nEdrXyYTjzpUDuA2CQpKsaGfRRrbku+3EkhB0qc1WnEkOHi5 VvfQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782707405; x=1783312205; 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=D9VXSrnELdhiTbE1etDDi7remM+SmwEgMYMxWgopQeVumSasYFVtg45B+oR4txOdMV ZE+qDZg9vzJAnMS8hMK9VRuF0oghgAIETj/QzAo3uHgwOFXuGnPKJPAPV1/4vfUZMBYD 6Aq0WTmS6jVNSQy0dAiYtO5laUm2h/i6NB1VbRtYYh7y52Wa5G8g1vbhLGIP2iBvqk3n y1+WJffq1vH8+ospzMtjoIJYL5yK6rzFcI8WHBUhOnc52BOkoYa8smPVR4SI6u1i7ki9 2JwDD56gUdnayO5Hzgh1skurmuW2VUYDWsoYrTyKMt/7BoHcdqfvQp3ipTfLuzYF0D16 HGRg== X-Gm-Message-State: AOJu0Yx4ucLTIPyJowv06ixNhKFsRwNCYdTD/igylH/ZQKDZCwmnv5B8 s1GHpoMFzJnk0EZnagYOGxyPm9nTGrwKekqBwSQbyOaKvZ7/9WrSQwq7p+cWC1QShYD2uBHw2pd fx++03ZaPudJwymhxjcersd1S2+RrjmiCzp4ZICUlPssJ1XxKVwXFZWcDQpzPL8+qLQ== X-Gm-Gg: AfdE7cm2biuIywpcNsNtbODBI6TqblTJqcAe6RLTcIMorpdo68JS7JaZP/8FspDkLY2 vReRAvAHYNBuCs6SsGQdfOHBnwYigUTT1APmfAcLaZVjOrfi6v9R/pJZ1QOCZmF+BvW7ZZeTaQX a5Q35CsjEerzKcc80LFR57CUzmvqVyY5gF35NhGHI79syn4ewfcQxHOkdVTKc6UG200OQukWzlK XoxKaaTsivwxtgKIzcc9Oh3kRvMlry9FCF3NExK0WHGkhjtL/8URrAj/WdYIYA1ZW1/Ow6JmPZv nWc/sgXzU2cBO74UjPeYeu0zaWL5gv8usBMb/xiwLVX0zKCVxCrD7ES51udyNB5w/5JS3EbaFHr 8Ir/3zP8HM0EhGrPgR1l3efeHTIUwOTB6kk4cplVT797qvDiKeo+FPexavSk= X-Received: by 2002:a05:7300:df41:b0:30c:ab4d:3835 with SMTP id 5a478bee46e88-30cab4d3bb2mr7880018eec.44.1782707404683; Sun, 28 Jun 2026 21:30:04 -0700 (PDT) X-Received: by 2002:a05:7300:df41:b0:30c:ab4d:3835 with SMTP id 5a478bee46e88-30cab4d3bb2mr7879997eec.44.1782707404186; Sun, 28 Jun 2026 21: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 v4 58/77] target/hexagon: Decode trap1, rte as COF Date: Sun, 28 Jun 2026 20:58:11 -0700 Message-Id: <20260629035830.1520296-59-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629035830.1520296-1-brian.cain@oss.qualcomm.com> References: <20260629035830.1520296-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Authority-Analysis: v=2.4 cv=evzvCIpX c=1 sm=1 tr=0 ts=6a41f4cd 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=_K5XuSEh1TEqbUxoQ0s3:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=oDs3gbQtVgqjpHJ5GUgA:9 a=QEXdDO2ut3YA:10 a=bBxd6f-gb0O0v-kibOvt:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI5MDAzNCBTYWx0ZWRfX5ec94RSye3Qv hlIAGaE/2VPVovWJQUdFTnxY85vtuLnyliDOdt1oZ61gqU0FhMBeSK3ZuYhp6Ta1LN4IOUT29yL zOnjKGolWCnQZd27xqlfBEi5y2QsC0w= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDAzNCBTYWx0ZWRfX/MKzYImeHXVM S9RNQShf0dnuhb+TrN3vBXe0evfYfKJFvySmG/kx1Pph3018yJmCd+/oeAkTbAxACsaEnAuy6Z5 NxJhQb9BhBlA6AOZHM3aGb/zstaMAOhsedHBuf6gsZJd56zQgBMYbDr/4Ez0Ypgq5lw1yfTqe0d UPo858Wi0ifHCjB5gyA7iR5LeTWqoBO06mEqeH+PgoRjLiBm7gnQ14P6CVk0FDl1RLiNYchV3vX XIYnpc7daF3QZo2mH5P8xpC2Kq6g22vAlwBGeyH9H6tn6IgMCski4MQ86DkyhpHe8Mj74KVGNUp BQxltfwg/UyGoZGbxBujirCgztP0EK0cVvWZ7e3GIspg/HRiKvCPzX0Bfcu5Du0sDxN2O2crrHw fsiIvizqElTcKHi8dpFFdkp9v6UZOfUBa46MlAJZ1GKsVTw0emq89GZVtCwVZY7g8iWDbdYJIw+ UXGvD7WCblKkqct+4YA== X-Proofpoint-GUID: qLfbdxH2UcUc--3AvpdTZ0ndb0C3G_0h X-Proofpoint-ORIG-GUID: qLfbdxH2UcUc--3AvpdTZ0ndb0C3G_0h X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-29_01,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 suspectscore=0 priorityscore=1501 spamscore=0 adultscore=0 malwarescore=0 impostorscore=0 clxscore=1015 lowpriorityscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290034 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782707617541158500 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 Mon Jun 29 06:52:23 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=1782707766; cv=none; d=zohomail.com; s=zohoarc; b=lUdgnv3zJ1Do76qAl/N+z2EtsuHzX0pTOnddeMnOBDryhsvR61R+ViiHv3D5f8jg/s3Dza+TDGT8UjxwXs6VXtA6tv2FTK7B08FqUHSgo7Qxq2V6I1pGJCUN0EyXCNPmQF/kZkf0oME2nZUeGb7u0dpJuOuvnQvnx7n7DM/jU/Q= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782707766; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=Foa975rOQTlhOuT312o1EHFsSgysb1YQpuhtkYt6Mj37XrKuuD7EEOVePyCEI26l8bDaXGGb3hh10yFFgIEywjg8fM/Le9RKqgln3KJw1akTjKxmx2TVzWEFlAbCoNjAL3VHDFk49+LJJmAZ046QCCC6DFOE2vfyttcvA6HMJOY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782707766791409.5785345318268; Sun, 28 Jun 2026 21:36:06 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1we3em-00055j-GL; Mon, 29 Jun 2026 00:31:40 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1we3da-0002un-Ps for qemu-devel@nongnu.org; Mon, 29 Jun 2026 00:30: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 1we3dU-0000op-Io for qemu-devel@nongnu.org; Mon, 29 Jun 2026 00:30:25 -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 65T4NG221787623 for ; Mon, 29 Jun 2026 04:30:07 GMT Received: from mail-dy1-f200.google.com (mail-dy1-f200.google.com [74.125.82.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f26tuvff6-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 04:30:06 +0000 (GMT) Received: by mail-dy1-f200.google.com with SMTP id 5a478bee46e88-30ca3374c6aso7999304eec.0 for ; Sun, 28 Jun 2026 21: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-30d3af0d2e4sm21314609eec.22.2026.06.28.21.30.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 28 Jun 2026 21: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= 3UuTOFdc8oYjbXiuLSyd2e3M5N5lZKNz6xk5uPNFpGs=; b=T4rnMon6eYJXtFA7 byuFFEzpZBwzXA5+9wXvpXbMc+Rx5QOufh4bjliMTat6Hu1m/0eKJZOShOV1kwxY jZjdahtHGWBnR3Y1Tfta3DgSUuKFLcyCvOtvDe1KZy58rdgXeeMHS66Z57HP4y0F xsU6aBfhfDxJvgiTR5e8aPwDRALGR2MgsaWfPCOopB5xuhGk7m2HrgA6gsSONn8o fMsCsFfHapiV4zU8HcSvvimdmqafUGyBMDNW19v6KgfDG1qL2vydpbvgdUcd73Wl bJjrKPkUMFE6D1QWeUul+HnSCxMkB7xN8s1Imi2mT5hJ7zSxUtXTQZhCHLmQjSaz wBNNrA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782707406; x=1783312206; 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=DybMVHwu9tMFg0ngm3j5Mg0EmYUuJZk6lgWJ4b8nhB6sSD1MuCFTz8alKJyZeXXwD0 T7FWEtFZpCrvfm8DK59VFyknsVldnE/7HyuKhQ/oxgPlvSEP5SoEetecNAde/z2KT/uW GoT2ueH4A4eg0O9MovPeCHLTNOQ0IKGiMZg9qCNcAKUiR6VcRORGddi3q1bpzDsL9Kh4 QZ5x39QC+f5OMx7GSg6a24LsdkdITJf7ysGWdhZczOWQUc4rtcxRwtlcDin/ZBtuoxWD N3BACDu4/cN/twJ4JsocP4bxYl0LfAERgz1gu8ucweALzW+eLuJ6NXPN1JG636HaQxYt mGWg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782707406; x=1783312206; 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=cgE9u+bBUeHxKdpIjBfasHMVwX6T6ZP5IAtB2PhcRUszkV5QCC3cE1EU1XgXqeqdAJ Auwj8U4FrfudhQSmxv/17trom3CfR5WgbBv/Mf7dR+2edza0RXS4VPC5RslJ5WUw/6wg N3v20akkhq6eotxEBrEJj1W3aCuT762DlDp6bDfYVUZtJDq0E9Q2XpAI9sEFG3icNpf2 2tLtUZ4hRIeEuJNqRUvrfN+CsESnE/tGXSjuPFVmLbcibsqrImFVVeSoEuok6jnMNzB7 u/vIIpYUwQxKCvU9keuroyuBAA6WXeBrySGs2BWpjbobqt+//ykACeRGsZcMBS29AbwF 1Yzg== X-Gm-Message-State: AOJu0Yz4HyKWfrGK0h1SqAY5b+oQr2kWcbw5RMEAU5aLItfVoTNYh+cm ovxSR8t5nAgbrW/0emSAD/Ra9OpDrwyVBJn2RtCQA5vt47yBC9eO4LyfG9n6F2Jf5dg1V8OMQa2 JSMkOfY4IgVbb/DmT6DBhGDbSflL7PX4CBTMQIkNll3k8OwUB/rRmlj7otAhl8ns9cg== X-Gm-Gg: AfdE7clwSc5xKrZI+hLWuWZlGyWfuklNhMNP9xjxL54fYo+wtXrn68hAOy9fPWfTr8i Ehm/TwJ7cYnla2bJqTtX0Z5H8cWpiVUPp9Pg4mncs8j5UpGZLpU7adO2UiyN93i4RwXQNSAH8To 8uu1V66UubjQeF/yw05umKiuzi/PqTU6mqHllhaQ8WRVZUPjJDK8A/cnJLjlQaXVUnetUB3nx5u 1d5jTqrP0s1uB82FH7ORkmpTsQrKExtaJZcpCw1yw3TikiPS22k4rtoV26gBVLDT90QuTnC9mJD 3AV6sjuG+HwdAJezlwyu4Do43vVD5xDwilCdCwH8f8LZHR6bEqZWAhuAu7mj+H9rqKRkugyMikD Kolisa9i0w4Wj4VzR2xvVi2sHUJz0+AMWU0liv7JG904nNomABM2+/o2zX8Q= X-Received: by 2002:a05:7300:548:b0:30e:952b:ddf4 with SMTP id 5a478bee46e88-30e952be013mr5674009eec.3.1782707405481; Sun, 28 Jun 2026 21:30:05 -0700 (PDT) X-Received: by 2002:a05:7300:548:b0:30e:952b:ddf4 with SMTP id 5a478bee46e88-30e952be013mr5673986eec.3.1782707404942; Sun, 28 Jun 2026 21: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 v4 59/77] target/hexagon: Implement modify_ssr, resched, pending_interrupt Date: Sun, 28 Jun 2026 20:58:12 -0700 Message-Id: <20260629035830.1520296-60-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629035830.1520296-1-brian.cain@oss.qualcomm.com> References: <20260629035830.1520296-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: AW1haW4tMjYwNjI5MDAzNCBTYWx0ZWRfX54X3dhorhE5F B8oKFFnd/tHSNdrAHQXAv1jLxouIgQuZE8hCpCRuqgS1tNf59gr0OMPjpDgUpEhJbn2ctuj92IR B3BOYc+r8aUAFlC5hf9Rnk5XCik3hDs= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDAzNCBTYWx0ZWRfX1VECk1CPWb9G ZZzvKunfo2/a7deFR5sysDRgTk9JiSyz2Y6hPKdZMtt6jxch26MrKyodYUe3i1PnXTQAxmib3L5 9+yNAfyDryLqNe8Nie+nLW+zGzdTEirRPF1yk4bHa9Zdr9w0rxqxNPcgMk6qifTirWVjKRKAh2y aY9cKDW5PUPsEHv5mJNrpwmYKQoTbDV+eYBoJMFJUykqGCQhQVTTZleeB9rw8CAW6d/z8zdewIn RDRnUJSkEHMO7VUYpL03vL754RoVSZJKxylMGZES/rkA/A+p3MqB6rdNMwJtDccLHSgBWVvsLEv P+w/aqBfFLW5YiqI9hm0Ipcz6ynAqzn1g+iH/ePPvpjSAHl1xbYAx+yNTTB2zuLTmxgI8r3liLh VtylZvtl6G5ch/gT0zJURXunFWF+0JWLrecaeH/xyuJ5jv4x1MxspeaQ65FkpKHREdGfWekd74b 2YdtQI9gHjH9POhpH/g== X-Proofpoint-GUID: vVabJusp2eGl7hAy_kQTv2-cwvEOzAyF X-Proofpoint-ORIG-GUID: vVabJusp2eGl7hAy_kQTv2-cwvEOzAyF X-Authority-Analysis: v=2.4 cv=DY8nbPtW c=1 sm=1 tr=0 ts=6a41f4ce cx=c_pps a=PfFC4Oe2JQzmKTvty2cRDw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_glEPmIy2e8OvE2BGh3C:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=c5yFZwH1WPb9xS9x6awA: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-29_01,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 malwarescore=0 bulkscore=0 clxscore=1015 impostorscore=0 lowpriorityscore=0 spamscore=0 priorityscore=1501 suspectscore=0 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290034 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782707768254158500 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 Mon Jun 29 06:52:23 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=1782707642; cv=none; d=zohomail.com; s=zohoarc; b=HFK6SozvXi1PenDf9rypjAnkthDdJdVBbvTCs27EoM35xZ631guTistj0UO5kYX1Xz/WPCJYrzJY4UdD30Xgpr/XlBuWKNuJu+2zKhT0xrJE6kmz/m0lQaSjVYfxDp64K6m9zrzxgc/59H/yfUUt2wjG1seesiElB1DcF7MHV4U= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782707642; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=HeMXgiBDj+Gl6lgGd6+MQq+UeWGs+l3/EqwSg5y/C5cjhO9DVrjB+Z9eIMzxfSJljSZNHf+SIRtRaStIM4xeQPn07w2AQCvjxYzFct9lebe1Hiv5r0WxoLw+FU6xJWVAfV1ljJLWoShlbVRQ8siuLU/CPbTM9ElGuYZor6N6deg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782707642609864.0651566857377; Sun, 28 Jun 2026 21:34:02 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1we3ge-0007jn-Kf; Mon, 29 Jun 2026 00:33:36 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1we3dT-0002hL-1q for qemu-devel@nongnu.org; Mon, 29 Jun 2026 00:30:20 -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 1we3dL-0000sg-6F for qemu-devel@nongnu.org; Mon, 29 Jun 2026 00:30:14 -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 65T4NPtG1738416 for ; Mon, 29 Jun 2026 04:30:07 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 4f279cmbbg-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 04:30:07 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-30ed53abff8so201710eec.1 for ; Sun, 28 Jun 2026 21: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-30d3af0d2e4sm21314609eec.22.2026.06.28.21.30.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 28 Jun 2026 21:30:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= DwmtLwNQ586yD7zGJVwVTp7uqi8JKqPltGIMKxadn6Y=; b=OmEt3H29H6tTPLHZ WWYmcZa6VxfhfIXwQ31g6kCfNalVUwhY4yPyROTtLlW2f98hW0QZvwRh/ovPvZ9u YPXqf8J+tFqDVWEt4LLk+o/smvg6FuV2UylsfP3g+ao6EG7ViQz2vAFKQ5aUR8Ts MYxBwlSvxy+EixCuVc/Ef4O+AxqhJoe90w8y8U4DMGKLuI/KtyJNorjdM9tHeGEV dCFR+gsO2kVlZRLLorn2NMhVNV+Weajq1GaYEnKwvrV7YoFHXHpLpg27KGgPrMLK 7/l97FuuxDyv3dNsnzkZI/5KgLeJj0jPXoUMABnCNJJhKgX9lhiD4PvuB4D5SEyO JcOpbw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782707406; x=1783312206; 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=Yr+DWpzTyvDeqtr5lRvlba0jRek0AoEHII9FWeUWFrov/41c9TCofB9dAor5XLm9k9 nJDXT6sXor3jUupIPmna38SIPflhVJ31q1WVvDf3l+m6cnVuWxlHT+5TSyZHQmbePN8a zMfDGEyyrPJ69Tq99RPMAzeCzpRS8KLLw3a+uxbF1TmkjIRcmAdDsMVuT8DyPD8DSTQ1 GL4XP00xTzHRQISEmeDqVh4RQ4aUBJWzkYtQ1T0pefL/Jmo3wuzPRm19OvIQo1pC0mom YC5iDe3YSKSBY8H13CrBPULiAFH52Ut0wxYzeX/HPZtEyYjrwBERoHxhyLlgGEhUjUZp to4w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782707406; x=1783312206; 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=tPLKzktyLmnXzRuFEvrTU5yE+nMAVRH3S8RHcPHShheeO4xhzYszs8QpIXCtEjS4QC LGlvqextxc0/UH1HngFMsfoYVrr7V0PYk8IPNlgl6r+X31XTZZa9xnvHy4+CHCa4ftit UghFd5Xrwf5gsnQqRHcg9t9v0j4LLs8TMFfmTqRST/iBj2290jFVzza7w+Qxq+2gc8fO faAYrupLV/eVZA9C97qYphpcteJwIr1SlMJc/gd4qFqp5Vs2k2uLJuZQX3nv6xZFZtE7 nhip1BmxhRaxgqKtyhTE8eS/T7girBEi6cR9nxR4oYLxOZ8hksU9L+vlt4zwOx2JBUF8 xOUw== X-Gm-Message-State: AOJu0Yzb5SjlxxhhqU2hpTsUEemW5VK3CBZ6DaCx5ru7lbU8k2MxYWqd Sc0GpRd9SJAGcQHk5xwATL5ndulIr2jX2+0a3c47+FY8zCP5mcqzLTIkuaj7yWxPZxLVqFshIlj Kg0lcH6mGmsYTnYIabOQe4zsKhkGk4A88x2y/mGFjfZOUOUGS77CUkVslMt356ffL8w== X-Gm-Gg: AfdE7ck3y65j5ebOP936ehfv9oJjYo92hGD30ZuFs5wesMJvjzmIavzLOq/GVA3+qbI skDjobVTEAjPKbr3c61Odstn65/Hoqkd3+MrcSOWkQ6ZQhK6FAXhvDs/+Iwf3E+go+puv6E7vTD wxOgwq6u3x2R6WRXpcKRNxBy9OYLs5zQSrtBekmTWT/2pX5L9M+2xIZf5/jQ92vPsn+MPalB8ua VBC3PtNYbfDfGlg0eU6CHd0LHt7BmNaNR8t+unRJBduYJqLgskuvVAar1GOIE4D6N0OFh9l1HCX bpwQ5WUzwSy2DSWr/ALhj6+vBCJGwnDTsoWpsq1hE0p+sCLqe1uM/Pi0+dEM7/GalJcWvtI0ddd shSJwteWujiPg0U/Vu55SZ0K4YRK/t5onHWLrGnwUcfM62ejRg+twyQ0nhUQ= X-Received: by 2002:a05:7301:6194:10b0:30c:99c8:2b1b with SMTP id 5a478bee46e88-30c99c82df7mr6647180eec.10.1782707406337; Sun, 28 Jun 2026 21:30:06 -0700 (PDT) X-Received: by 2002:a05:7301:6194:10b0:30c:99c8:2b1b with SMTP id 5a478bee46e88-30c99c82df7mr6647165eec.10.1782707405798; Sun, 28 Jun 2026 21: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 v4 60/77] target/hexagon: Add pkt_ends_tb to translation Date: Sun, 28 Jun 2026 20:58:13 -0700 Message-Id: <20260629035830.1520296-61-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629035830.1520296-1-brian.cain@oss.qualcomm.com> References: <20260629035830.1520296-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Authority-Analysis: v=2.4 cv=evzvCIpX c=1 sm=1 tr=0 ts=6a41f4cf cx=c_pps a=Uww141gWH0fZj/3QKPojxA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_K5XuSEh1TEqbUxoQ0s3:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=PUAfe4L2FItr89aHCx8A:9 a=QEXdDO2ut3YA:10 a=PxkB5W3o20Ba91AHUih5:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI5MDAzNCBTYWx0ZWRfXzDe+Pr3C4dau 5UtEU6x3jpMI08ueyNZst6ErrW5QQ4a550bQ2rh7DqK+94AQmo4+mjQJkWvDyzWXhRnC7kkYhej 4969WZf05uWv2kcs629WzcVx3ewMPqE= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDAzNCBTYWx0ZWRfX8Ku7puUtztks +p6LOQPXoPMFJ/vV3ux6m918+nLaZSC6JiMGV3qZfntSjgA/E9ma22i+ACX0906EhQhHtnVPCm7 Ai4vzQnzITziIGSgzoYKFNzVb1qx/Z9wyKbXJDcK2ILLslzbAWoEpJWRS01m6NyB/+WlyMkC5kE 32F1T1Bypwj/IFrKO2WRrQKLIQUOYPjnjkTX7YBEBUkkssN3hqHkRiL2Mn8elD29MIN051Fef1Q qwmP7M3dGfSiGB4QJLhyshXSRrD/4ZsVoaUpss07Ozihbu57HnFp6nRYPY6jS5YzUgAKIjx6h79 nouJb5H3i22PfFOE/9oYKPaQNErF1fLA8AAgK6r4iduri1VFAf8Nj3KNdEWxmdcPiVauQGTYPOA SrekMlpabjI6NrrnImRmPhp80KiD7vtk9Lmz4lp7cea64vbnCneW/D3yKnd/0+y0xGNcyRQdWjV nI8ct/O+dtVb9Zu4dfA== X-Proofpoint-GUID: KP8-eHaY6PvRNL6P3ULUcCGbXog0Papx X-Proofpoint-ORIG-GUID: KP8-eHaY6PvRNL6P3ULUcCGbXog0Papx X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-29_01,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 suspectscore=0 priorityscore=1501 spamscore=0 adultscore=0 malwarescore=0 impostorscore=0 clxscore=1015 lowpriorityscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290034 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782707643714158500 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 Mon Jun 29 06:52:23 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=1782707745; cv=none; d=zohomail.com; s=zohoarc; b=D/JY5pw6UNs1O2FiGACEMwiGpaANnSi82yRf0xe7TOouZ/PI1mo/wTIjHQupcGR3rv1Xpb3/JBRukP7Rl38Pu8Igb3miNHE6hHmtIMm75kfSLUfP6toRh0Sngpl5CqmPH2tifjoGyUYv1/IEEPLO+MizOV2idcnuVQMoyqiQ6rg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782707745; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=YaW/PwVJOAQgl+oWGFGKFFwmVdIIDYbA3+B1hhGdGfC3xOcWyqZOl1PTUyMPXgk7a8M3ZogcvuyERwPw7Dwx9POdX9Z4cgZrgpCoUbLZcwzV8ZR+8zYQ8w3Tw7a71Hj07GXX7ATijenoqD1XRufy9j/aKfeyCHpeIbGjVAyifoM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782707745555308.99248457298563; Sun, 28 Jun 2026 21:35:45 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1we3gd-0007Xj-C9; Mon, 29 Jun 2026 00:33:36 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1we3da-0002uk-Nn for qemu-devel@nongnu.org; Mon, 29 Jun 2026 00:30: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 1we3dU-00015F-J3 for qemu-devel@nongnu.org; Mon, 29 Jun 2026 00:30: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 65T4NJEV1780994 for ; Mon, 29 Jun 2026 04:30:08 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 4f26u74gjs-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 04:30:08 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-30ca3374c6aso7999354eec.0 for ; Sun, 28 Jun 2026 21:30:08 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30d3af0d2e4sm21314609eec.22.2026.06.28.21.30.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 28 Jun 2026 21:30: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= Yp87kcoinbDBfUm50phdJD1Q0SWWmLVPCkRoyO7PWUc=; b=m2AXefKDBUw513Ug 46ZAvlHDO7HzhntX2Pu2r9IWVEsm2ma6MSmBuOkUy2QVuGEOUlaRh0m7Hd+pLKkk A2B2W9/F28jArHToxZ6+4DAL+PESgUNy72zYh4Sl+HaZ+CPfaDYytjNpaDtsuzbn X4d5dtJyQ0UGN57PuYoNyhnhu/BBRz/ZcjBvk50vRFTOirWUVCDYy5p2M77dKH0A aSQRki93o/fJ2DwzCLHStRbmcAfuquG2618wkkF1dZLWbQYxyG2vljuhBpId0mOY vDJf/pmwAsm4TT5KrUKxbB05CJ2KmtjL0JSsNHuT9vUY8q+BP4isk2XJ2DSHxDiw gG23pg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782707407; x=1783312207; 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=C7kB4geUlvr0IbK7LZWEp+ZxsbORo+/omOdqKW3ZRqxDP2tqqOt6hxmz3AkTxTdB+a MS3pDpzNp6TArOCJQhS8Uwoqo4TxMN1JmsDLPui9yfVNo9hvoHroNmfX0gcFPTvhdyGY JzKV4kNxkK6vJP1rhZMYVq07Br1mkL1Z/lsPn9v4kpe7Dlp0/wCrYYUFcBzl9msXLn84 /dDyMlPAGdahlf8+VD38Pf3H68i7jt9n71ZS5hmplMW4QOTXdrsn2ooPf76KCdOZkN88 xXeDEuzyvIn8UHohwwaNArzJ9NQwYuqmecpyR6g7X893htI4LvQW9b2XhS+O+6XhhLvZ ttnA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782707407; x=1783312207; 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=tTClaplfzIVXM/FWA+OEhKN5zp+URAPFEDwkjC/u9QhIqGAIGjEOTfGH4IKhh287Ap 54iGYmKt+rcuRQMLUA4I2JsGKqoV+fuA0Hl6Ou9APovdimJasFH19WTNkgXQsiObvyJ0 eDJ6J3u91ub4eqraXd6rRD2gkuCZnBzsvbu/5pPPFVZ5g28beondf1UHIgJLcfcuT7IS Mpef4HmDRVG5YP45Aa39mMlp+Vq3ZjzDwHAqmBtVrZNmy380yAWQ3bMssBUB4ZSm9xFD pF1a75zBs0mHpa/Z1F9+k3kFbrizvG7HFT1F/aYKgMf8GX3iNOVt+zqS6y0ftkZPJO7i /Ivg== X-Gm-Message-State: AOJu0Yw7QUak5DwW3mcjaryw3rjHvv9/zvH+qI5pXSinmdJk6qQGPU1v OP0tkIjX1bmRnafgJPt0fpoxQhdBY4QG9Cna/CKaHR5kS2GmwXwN2w8byNXzZhCfhjVLVc0wTcA jLfAS/7y7BJAnk5XrFxVq2FP3gheplDJ8DbuvnpxMoOCXpboS4NOS7dV2ESzWdRLu8A== X-Gm-Gg: AfdE7clS6/FNGRxTI5SQAwMbkAJhEjJd96n4oRA0eJLhAEBRXE02dDtGv2GE0xiIMIl hMNtp2sQXEu4Ld3ngdz8CrUs3GOjjxI6xKPikLdtB0YZu4abYQc+sjbn9u6P2Mt0rnw6l1bHtg1 2UiaSOXClJ8H2/CUxY4uDf59rf1n8ds3QDabGx6rufVaMsSFq2xLrC14v5m4ZgKkn7iJxkMT8XL YPgdJCfIVHJlh5gaAbpvJDUGL6vO5oVz/U9PoGp1mKREVTkPHN4StTkO/y/OZpFg4neS94WkDO8 WRo0JlXx675rRRUQHOLq9zmS6uJHeLUO+KhmM93LYrp4KSNSHygF8llzgmtPTFJDU45nEfFSI6a ZJsjfhKmV85QxNBwKus85tfu3T67NIYAa/stzXv3C5eRojffZT/OD7vfEmis= X-Received: by 2002:a05:7300:2211:b0:30e:be3f:e7f7 with SMTP id 5a478bee46e88-30ebe3fea66mr3631340eec.15.1782707407188; Sun, 28 Jun 2026 21:30:07 -0700 (PDT) X-Received: by 2002:a05:7300:2211:b0:30e:be3f:e7f7 with SMTP id 5a478bee46e88-30ebe3fea66mr3631320eec.15.1782707406644; Sun, 28 Jun 2026 21:30:06 -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 v4 61/77] target/hexagon: Add next_PC, {s,g}reg writes Date: Sun, 28 Jun 2026 20:58:14 -0700 Message-Id: <20260629035830.1520296-62-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629035830.1520296-1-brian.cain@oss.qualcomm.com> References: <20260629035830.1520296-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: AW1haW4tMjYwNjI5MDAzNCBTYWx0ZWRfX1YFkngJcnDUu RzdaYlI4qgk2uzWYhSe2ixRHUIgk/4/aCETDY+EKdkjp+ObDnJjGzSUSIqRYlQf6gwsn2Ln+AYg /FQcD/AyV0AEk5X+/YI3JDXrPe/iRUs= X-Authority-Analysis: v=2.4 cv=ftnsol4f c=1 sm=1 tr=0 ts=6a41f4d0 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=fJQQT6FIS2xgNqPK2MMA:9 a=QEXdDO2ut3YA:10 a=scEy_gLbYbu1JhEsrz4S:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-GUID: D085f_0i5f8NU6azcEwv_h7SUj1zdCWS X-Proofpoint-ORIG-GUID: D085f_0i5f8NU6azcEwv_h7SUj1zdCWS X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDAzNCBTYWx0ZWRfX5zK1Xy0G1Iq8 WDP92HllPWy+dulNugBygyHtxTfLNxyQ/GOI98Z0siTYi69ZO6SAtf5UqS12Suu65Z6DV8RYpWI P87cXO0rzFsiM7i5Q/Q73nIMKu9ZFNEIT0TDkrgoLEQpWAYgrznOGpje/YvF23w35sHnIggoFc5 qOAjus8xf7sZUXFrmJ9OvYs8eFdSy7ONNjbcx8WFnWeViWJ8FZiYJglq7ln3KCN4w5nrk6wI2oF FC+/qiedRZkh7YFx2FBfrVxhXgvjRbzi2dymPA/ZbwFyuaVXs0jvzWcDWqH9Ioii4ekUgcGpoZk o0nvyozF+WxWBXEZxcF5k8FzgPYwrXmcohuPohvEgKd10u3JH3E3dWuS6+5IVIE0NHjdJ7yaOoI 39tOnqvAM0Kn2OJRJk0AhqZwF1p8xO9TfPydL9KrqC0UIn6hjXfM7GuDJ0mTYR6JlwA4NoKnU0M B0CwexRvyvvYHkqqF1w== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-29_01,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 malwarescore=0 suspectscore=0 lowpriorityscore=0 impostorscore=0 priorityscore=1501 adultscore=0 bulkscore=0 clxscore=1015 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290034 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782707746260158500 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 Mon Jun 29 06:52:23 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=1782707694; cv=none; d=zohomail.com; s=zohoarc; b=c3eZWNz/2X3dFz3KIHAzttst6AhgMvBG8rkMvh9Iyurj5fKDR9v5oHQFkSDuf0f5ni5ImlY/sgKzPaPbFzNLwrPzzl5yk3d3shNk6XXiD3naVRGoMfVd2BRizQ6cOMio4gXrYDXSaAnrvopcWTfOLk9qWmBRODihDWoUL7HLfBg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782707694; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=C/XgXoaH+7qtwmh5wtw5KHnqzw7e87AzGP4ctMrEmNs9xQSeFikh/izzD1SWtxPqNf/7q6QGwgYJeh0SBpwAJbfWVmgl4QStM5Fxb71WJK/Xfo6cZqqPI/I66bFaPM+1IuLr3BbxVFwXRDpr3pH8lHrOZrHOpeHnoBkcaGYvPG4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782707694064603.3157697777998; Sun, 28 Jun 2026 21:34:54 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1we3gg-00080O-GL; Mon, 29 Jun 2026 00:33: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 1we3dY-0002tE-ON for qemu-devel@nongnu.org; Mon, 29 Jun 2026 00:30: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 1we3dV-0001Bo-JS for qemu-devel@nongnu.org; Mon, 29 Jun 2026 00:30: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 65T4NJk51780971 for ; Mon, 29 Jun 2026 04:30:09 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 4f26u74gjy-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 04:30:09 +0000 (GMT) Received: by mail-dy1-f200.google.com with SMTP id 5a478bee46e88-30e773699d6so1557201eec.0 for ; Sun, 28 Jun 2026 21:30:09 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30d3af0d2e4sm21314609eec.22.2026.06.28.21.30.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 28 Jun 2026 21:30: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= WSxBtQ42d1TB+r/kba+VA2NNeVAZKwGKrYR4H+pwBnA=; b=nEDCzqGciSd+9388 vYW5H/Is7N6cSb5Nz57OYPkTUwDClEBoijtZPBz5x+eAVOSCMClIN44juKqSqqWz c1NZiuORq2BwTUyY8fpHKAFmXUo7c47Qni7DcPT0ShErcbwooDyGgysAMdasKydH t4BaRqh9TpkqTxvmeiXRm7UVyzFJOFnQHlcAd0EjjTFwPhzhse/ElZusyNMweKUq G/GidoB19XUITSQXu7+meWrHLj+Bw+oagWgz6nW/X5PCXgZ9KAPaTAqwoTBdKb1q 9/UjTU3EN0YC9LjcwCv+oFZSrQDmkb79Zsjx34RmFlvVQjIOWrEik/1pnBK7SQlG 1rgiJg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782707409; x=1783312209; 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=KdOnBOMQj9TFyFnvQNEtwcjebbbPL3Yoki2OKpJpxBQE0tl12js84YKEHE81QMM5Ut cV2eVhvJZRdIOkLFbjtSwV0txNiUmr/gcduKn/WlqrUKCl28uTvlbt7pEtH+rJ9r1KWw JlGir69K+V1mvAuV6FWDYXHdQbU2unQeAsCDda+kiK4YccXaE68CxLyY0+R6kPUGhise jqhkrSBbIW0Sv9WDabG0tSDWcM42nXozF7aHicYFtgxHztHwOTSqv22D3roVJpCCqMtj G6OHNEzOmpKKD5MaVuTV/bYlKEwKnHFRE5MMZDKOqbjqm88e9vNodWGeySPuBAyXzBs+ s7vQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782707409; x=1783312209; 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=FYwNy3+1bdw+EGkzwlpq9D7oQvuusUi65xQL3r6GOnG8aeQ/Wc0Y6uprfD1kGRXRNg Jh6LlJ/Ods6pd+4LrAS34xbGbdfEpqu7oOSAgw6yIJPchmBvCZHIgeiSxkrvFbAHV4ng LSUJxE5E0YVyfVH+rbvJeZeX/6INm2zlRy4SESAY4TgJlE5nTFB4YZhqmYLz491eHWzk 6eOdE5tyIqtvqW5o562iZ9rJJoe+/cyQMBz5FpqckZx6Y3F9zMekn0stnZDokF1oyZDh WKfRBaZa5xf+6zLi4x8OxqcYcmoTdYP3LfKGQdHpsVIDhOK5frRsdIhWBVnN4h5sTWXR fZrw== X-Gm-Message-State: AOJu0YxkN1hofCxpeX3rY92NEbsJSY50nk0Sp5uBb4/UqU/niVNT6PFd Ik7Bk5HWEbLhpC5Fgp+S1qhSMLq1E2YHLT7yK0rr8VjD13hfN+aBb9fkRSfl/Vqgt/dL54uRYb7 kibCCpChH9ZxA55Lt/Sk2fg6QKuRk544h7cCXI71J4bpXlks2BVkWfUkznBTbCjot/A== X-Gm-Gg: AfdE7cm9d8kzlmJOXR2b8Rsa2T85rYp2Qkk/WPUesaGRBWjHAXctbusJpHaQyPZTTBQ mbDhKxR+LFteqlu4Nm9MJwZ0igh85ulJ3SopsPIdqPRv3L9uNViXpaGjLcCAtwIzQXwlxqam9Qa fOTE1oVXhxre1Nc/eJ5hp0VZnCTFJolibzHoXps6AktvJ3C16lYK31O5REXDeURRmo3YH1x54ay iiU+C8s7wXUTzCpc0dlHDDYy0jiE44xaNfRTs7butfu8k1/3bUpqIgtVUgAgmZm+/dHt9WHHUS6 fNEqlwlxoDnD6I/tIl78bo6NXWnKaOn+7CjUqzh30XD0iNDay7CU2b9mcRMA4M9N6O+cDrLsj4W uLCIhOpJtuspPpRluljzNV8G+27hPQw8B+1xVOOmAlnmOJWVfoXyKfMJa+00= X-Received: by 2002:a05:7300:2312:b0:30c:efc:c399 with SMTP id 5a478bee46e88-30c8502724fmr14823694eec.35.1782707408704; Sun, 28 Jun 2026 21:30:08 -0700 (PDT) X-Received: by 2002:a05:7300:2312:b0:30c:efc:c399 with SMTP id 5a478bee46e88-30c8502724fmr14823671eec.35.1782707408221; Sun, 28 Jun 2026 21:30: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 v4 62/77] target/hexagon: Add implicit sysreg writes Date: Sun, 28 Jun 2026 20:58:15 -0700 Message-Id: <20260629035830.1520296-63-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629035830.1520296-1-brian.cain@oss.qualcomm.com> References: <20260629035830.1520296-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: AW1haW4tMjYwNjI5MDAzNCBTYWx0ZWRfX0J9hNzTLGh5h k0Uqd4UWxjqU/lPXCi+vR0C+/74ePClPB8pSYwsUVakIm1NACu/ei62U+mJaheqJm4QUmVDJxmY stmihXr3U5BjL+OUK3fj3Gd47z5fmtA= X-Authority-Analysis: v=2.4 cv=ftnsol4f c=1 sm=1 tr=0 ts=6a41f4d1 cx=c_pps a=PfFC4Oe2JQzmKTvty2cRDw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=ySlkKLH3HnL0fBWr2zQA:9 a=QEXdDO2ut3YA:10 a=6Ab_bkdmUrQuMsNx7PHu:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-GUID: 1iMjrSofymDeOXYmkJ3TKTpTHuK18Iq7 X-Proofpoint-ORIG-GUID: 1iMjrSofymDeOXYmkJ3TKTpTHuK18Iq7 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDAzNCBTYWx0ZWRfX/nie1/oJhy3C EicpUlQ5z/BedSHOfzKAIquVNaIT6dyYK4bku5n5ZpvRDaxx/o87RaUUXgAgAGy6Kzv0YzcIJkw 5hq4txDqL1XihnrKSBy/rWvsliD5mr70NU6reXbtRKQ0nCHkakc9amrWTvaBpNzO9/KC2FSiRBn 3lc6aN2AquX6GnRpZMjOQDtrqsug9vPlMvJBB14h7j9Bfg+hIobuz/wU6+uuxLLftqgl+0mSrq5 o/27gXtP2btaAJKId6FBORvGkOxhJOV+jRuY+AcU2FRM6K4OkaFsyxLwMEEGo7O5tjwYQpYULtw uBQKTHgm/2ivXs/IkENfjqfrHUUGCmtoFHeGSr3JWa4Q5JSr2x2e+SGbGTooI6isx+s9BT8lfaZ It/Q3jAINBYeKk8BYrqyf1Bu68IPnjPcTJg1hDWg1D8YSlPS6oZwYYJwAbZVthbhKb8QIfOxLGu zanTa8NWXjKu+UEgUpA== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-29_01,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 malwarescore=0 suspectscore=0 lowpriorityscore=0 impostorscore=0 priorityscore=1501 adultscore=0 bulkscore=0 clxscore=1015 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290034 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782707695901158500 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 Mon Jun 29 06:52:23 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=1782707561; cv=none; d=zohomail.com; s=zohoarc; b=KB5fM0Aff5xY0jfQd2iltrZZ4rumc8Maf/w9o5OEYDRjZ+cWSQ+2EBJ7ECfL1k9+5li8IZ9ZJSPG8cnXskKU7ghq7I9HmNPdYB4mVIieEz8IhTSMJa/NqUuruq1zS9glGyTfhulDSzzCyEib82vbtfSz8Uiut5BtYUaHJLTGlSw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782707561; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=Bh4Sj2Imygsn0BYjyEE6mTXpB1E2PciSYPlpWBIImTx7iOBquj40zWf66lxe7uT7y/lEQ3swwgFx8IMTm+fZFgYixNluR04Cz967BKHJHmycXHyZ+3HMU8n9ZcFk8eGlEDyMOue+tHTFbAjQTFCZwUN9sIUvoZFp3Sc0BtKsl5E= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782707561521467.1182746356293; Sun, 28 Jun 2026 21:32:41 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1we3ex-0005U1-RM; Mon, 29 Jun 2026 00:31: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 1we3dT-0002hO-4O for qemu-devel@nongnu.org; Mon, 29 Jun 2026 00:30:20 -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 1we3dN-0001FW-6E for qemu-devel@nongnu.org; Mon, 29 Jun 2026 00:30:18 -0400 Received: from pps.filterd (m0279864.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65T4NObw1719481 for ; Mon, 29 Jun 2026 04:30:11 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 4f27pf49ya-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 04:30:11 +0000 (GMT) Received: by mail-dy1-f200.google.com with SMTP id 5a478bee46e88-30ca3374c6aso7999465eec.0 for ; Sun, 28 Jun 2026 21:30:10 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30d3af0d2e4sm21314609eec.22.2026.06.28.21.30.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 28 Jun 2026 21:30: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= KQKd6wa9CP0Atn8b+uEkUcIK7E1HAQywunGjG1NtcJk=; b=oJTWpj3bTuFYONpN a7OuBXILF0FCIdxGcAdAyI0ppgaKTGWpuDPJcjMvUFp4N6OI0rCBtqxGepqzg2td Xdlr5uQEgo5r4wMGPQUiGa3IK0BgIgeh2uNItIwKrVxwIuZg4U7v99XDD9716j1M nktS/98VuMidgNHz5FiYlIeluRHeEv7kUR7h0+/MvUqT5dVhJSzASis5LivGfb/b fTuAO/AUPNnrRyGFDVmrNkHj1aUqNfQw6vBs5ukReBXGkylsTeH+QcDq9VOB37jB ZMnwuUUp705FKZHW72WHqtuX+vocpFVkytpqzY9dkieX0sRefXp6X+CKitZxfiWS aT9rNw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782707410; x=1783312210; 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=iVsCLG9nRkzDD3tbL3Kp9XLr+HfLNXWUP1Ur+hlRjl1Bh2V1Mv6emTL/nNt7G6HMTo o8ZN/voQKwYikSA3zT5VlpSkRZ4WYZy3HbpJHC/CUeT5fn66aPTPH24SSZr0Kf6zNPJH 5W7vO3G2/wz9tIXcBhwhaI1xnnC3qWN8FAaCKDzoDBJPCnU8P/vmHvYgc6cLELM/EWh3 cSeoed/sdDYMbI9c/sqhEbJqC0T8rywiAe24gYbhLvALcDKA6dTsNAfu5MWKtJfYEkfH 2qlil7+22t+IxOIc+LuiVv6fhW3gNX4v1VfG62WCkfq1PpUPl3hCT6z2VLvHIE1rEsHh +Vzw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782707410; x=1783312210; 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=NCiA5xyhMD7CnlQHPFIoFBmAU4aL8dEXEoTT6QpSl6OBcWpGbzXMa4+dNn5XShli5Y 3db3TPWcTz4xm8UhaQasAxKciTt5hDtazOj6ZA2hGpaRYudoaXNT6fiFPJZ3yM9DKSKm xonQI/Vqp9/2NJ6JCzpqgnMDqYMnfFFs8qeFsZU6lOF1WACRf0XODHhfl9zLAK389mUl S/DkjueHBkJnwHyA24uDLcPGeC8DzWEtFpnIR2RyQz5iENFN4kC1EzEDGVuXXhTFjgaM l07cjTCnA54vM/r4muEldldBpLqaqk7dMs8PdBpDvldugwONd/NXDivO4aRtRQQyHbU+ ClvA== X-Gm-Message-State: AOJu0YwsqpCUh1NDQCcXpd+ZneUQ7oISwPxxaB381oaUGC02DOilTFNt JVEtgLG1E2VmOWU943SyMR/XJBJZtta+UJTBcibS3gq9spXmpO4dKOO2BKXJnNQwLGheNWBIDqN w+4+hK3DRHls1vprQW50N68GC6TAbDrGUIRrXk/qQWLuO6PiiRlg1bAdsCdU45NBI4g== X-Gm-Gg: AfdE7cl47nUvw5GJWND18vLzi6xvMB1VGw7Qmvnb6CnoBYzeKr8ID0+VAi8kAZCClR/ FqiKMz92vrqmdKq/z9Vrge0Mpls8n8K/7ldxn4Th05W9abjYuBB2cjLb0CadYR5F0VZLV5L5WpT hNB5Le7dn2ZYOQze75Pqf4iGQ3/5lN3vuEWmaP7afHRcczuirnrCeD6HBcK0Ey4JXAEPACtxyuo VOUJCtDQAYalFNjL9/PjauCqFyLLj1rymByg2+lqQ5B/3gLf4xjieDqAWbpovlwJsX+df3oiky2 g5TX8ZnpVLU5vMw2kb0/abmgIBgqqYJoj6d/B3ozwinKMvievi83cJh8a9m/Lip4ba3akZYsrLT JDD7E2dETOVLJjFse3yMg6uQHgxildCFJ4kF5GBd8OC2np15MbZVY/BlMK1E= X-Received: by 2002:a05:7300:2146:b0:2f2:8857:17f6 with SMTP id 5a478bee46e88-30c84b6cffdmr15067504eec.4.1782707410281; Sun, 28 Jun 2026 21:30:10 -0700 (PDT) X-Received: by 2002:a05:7300:2146:b0:2f2:8857:17f6 with SMTP id 5a478bee46e88-30c84b6cffdmr15067468eec.4.1782707409643; Sun, 28 Jun 2026 21:30: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 v4 63/77] target/hexagon: Define system, guest reg names Date: Sun, 28 Jun 2026 20:58:16 -0700 Message-Id: <20260629035830.1520296-64-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629035830.1520296-1-brian.cain@oss.qualcomm.com> References: <20260629035830.1520296-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: AW1haW4tMjYwNjI5MDAzNCBTYWx0ZWRfXxMmblIL84hFh GLQOv54hKFSlRfhNzfnQ6lrZ2Q6PWPAqgAZqdhdKwjYL6eMjOU9OHsC4IZnz6ysMZKbFyAN8EMX hG+UstmUmnWzuRAJjMl7VqXsBn3gU44= X-Proofpoint-GUID: -576FZjJFjr307sLBkGR9Mm9_6IvXtc9 X-Proofpoint-ORIG-GUID: -576FZjJFjr307sLBkGR9Mm9_6IvXtc9 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDAzNCBTYWx0ZWRfX0uq/hHVjZAVq 50xvVnFY0LH6+BXX1DFEIYOyk/FzPmXJUNtq7v95ZeF6wUemgDr62OQXATpiQwDhzVfUCO1txV4 Hwxnt3qoKvlBdKfjmUfYwRz6Fszpf1IguRq2LgSMnsEvC/VPrY3kscwg7Ga0U6LlkmvGFwIiYuy tGYtnXcR2ui92U8/zq19EmJagrIAbKPeNZHJh8tms/I4Bb5BXQHDx4+Z402bQS5Pvf4B1xL7ftD QbzO//4jte8AQ4GUtXWON2TJ+F8E9vgvnvtYqBUQ0pQ1tTmoGEoX/asu8PiZrStPBK4rTt+zX4R mWH/ooCsBqZFylN5p6flk783hhvWQrhHoLcyn4ztFgj/WzCKo0wAA7QUy4BwgX0Kpjijj+x2Grg ACYOWvmV4S80roqEMDrPh3ZC3or0cq7UBixy5J0tG0ryXuUtNqJFqE+oOG6xSjuZldYNdslZ/jg uU+7yBhdx1xJWPwk/hA== X-Authority-Analysis: v=2.4 cv=R7Mz39RX c=1 sm=1 tr=0 ts=6a41f4d3 cx=c_pps a=PfFC4Oe2JQzmKTvty2cRDw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=DJpcGTmdVt4CTyJn9g5Z:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=Y3CEZXcnQwYgoNz55sMA: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-29_01,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 adultscore=0 clxscore=1015 impostorscore=0 priorityscore=1501 malwarescore=0 lowpriorityscore=0 spamscore=0 bulkscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290034 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782707563293158501 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 Mon Jun 29 06:52:23 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=1782707625; cv=none; d=zohomail.com; s=zohoarc; b=hGKIaSbdMdctOlLORJA0BHYwxY8GbWIFEIutiFEtu7iA1kLBxtDlZ3XvOQMfbYvPg+IkjX6CUZuVSew0X7XY1i1C1bH8F+sUrnj0wUl6C/L3moHd5bMkqOHwfbStkj8hkGV4qg2Hbh4+CmrKwmbxzlktjHFMal46P3VhNwMO+qo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782707625; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=nRcohtfzF/Q+SpISCUymTI18LPurl6CpaSn6pKLZ2bExixfTSE3iS06QqHT7Ay8rVTA2nsU1tVXAKair1c0OVurJTB4ULIvlyL5iPm3ZTTTV7ErdWhTwfZbdAb01tXzULlCJdyzSoeFGUrb1FST3+7ZRxNAnooWCZ3yJ5hMlixU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782707625196909.4348521563204; Sun, 28 Jun 2026 21:33:45 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1we3fk-0005yT-9B; Mon, 29 Jun 2026 00:32: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 1we3dX-0002t6-FW for qemu-devel@nongnu.org; Mon, 29 Jun 2026 00:30:26 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1we3dQ-0001KJ-5z for qemu-devel@nongnu.org; Mon, 29 Jun 2026 00:30:20 -0400 Received: from pps.filterd (m0279864.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65T4NHI11719035 for ; Mon, 29 Jun 2026 04:30:12 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 4f27pf49yd-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 04:30:12 +0000 (GMT) Received: by mail-dy1-f200.google.com with SMTP id 5a478bee46e88-30c0d568830so13505159eec.1 for ; Sun, 28 Jun 2026 21:30:12 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30d3af0d2e4sm21314609eec.22.2026.06.28.21.30.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 28 Jun 2026 21:30:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= nqsoCKwlR/1AtxhbSkaDMpXnd9wjaz9i7dlB1dgLGBU=; b=mhgcjHt6JRR1qhRx O1oCKsYVCyk47qlNrpYGmzkh12O020zsUqk46NQ7UA51d5wd0NZbxy6NYnFs6vBp 2wQx+wehS4FNmD5+v3/q81DvmPLT6xJM3AX6KCJiOqUnuU/2LA5m9sDmihFGfW+C jkja5Qmmt9kYAfxKXX811wc/U085HT5w0JobH1yBBjHZFF+7REL+VZouignYUN2Y kMcG7TFkpBkFzTvsvwwioaYDYBOi4gYH46U1CvS6tVReyr/pwvteExtg/7V4GeKH 0WFlXPynNby463YQPFhJJuercyR8Wmcv2zsbr2kiiGrmXErll/5XK30OR5H3Bn92 iYUB6A== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782707412; x=1783312212; 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=dNn7vuCkvPyrm4KCCDl2K12pyvG3666zzsWXqQyhRP6CbAAb3YnUv1HBHIu/g95IOt DsWHVwYS6l+g1W7UZBrceSn+/lMx3eVrdvLsQ7+mMUxetZkTndwdKnSzImBgVL/60MRT SzZPHf5+fZNkdRuf6cDPUC71EesvpdTYMDHAMW4BQNL/lYLgUFYUjE6SqiBSzpzUyYRp lCzemgoHAJWEdTnhdjE0LLgTrw7m91u/SS8GFuGl4GVjh2nZCndNmTbVvskoWYIFIbta 1afiW/maT966rYROXHlIxnfgAYLpjzPunDCYYfUfXyGW3e90isFNBmnsP3zMIgRbu3tc oxMQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782707412; x=1783312212; 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=OrTWCZRNQ+8nZ9baVKu54vN6bygx7sb+p7/lj60vT0J+cupW3VCK/KAOZfMVxQvbt+ P0kdv29u6eExFCbcThF4SrPHfxeX9sc3Xsu5QrgSaSRrCdSMKCnhxpvSezYQ3k/T+AkL z7kFHPN99eJv9nP4XvEq2LlXAhQwXsoBXuchdUdOWkABJOft2DuExS3jFmaSQ2PDfPVM bIdr08YCSLH1U38VWu7nk5qG20HycdSWv+DNJ56mdcJkD7nzjcEId3maJIlJGB4WhOPL gr80ENKfCeZZv1UxDVYnTrF7LdG4S1qZoOpPwu37u/s9i9zI8kgMv4yjh2NdmjOQh8M9 dQsg== X-Gm-Message-State: AOJu0YyTzjGYeBp/ByVpc7A6ca3Wo0ye5Wwkz8fxekdHJ9pUTG18yp9h aEZdAVHS0qUzFmNpgr7FsdtGejcgQOTG4J/ZhUX/pRBZQ3K4oM63zYRKt67fQjiEpqsxAJKBDPk psiy/nuAk9PVCyDsTVTo0o+3Kfcd4La4hG/hCHgJShCbwNPF91RgVee8s/HaoNsEkjA== X-Gm-Gg: AfdE7cl71JTMhJspbJOKq8593ghMrswKhWDM2xPJekBq9q6iHTHLOSMrxAoBw3mi42b 6IXGx5Ze9xdrgtMB2hWp7WBaO+WhYsGaBl45ScsjSqJc05PcPMvb52HSxlRPywDcu1IcfV1jPmR bQ0TQLe55gn5AKqX7GEotrC/OHDE9yKIfA9ch144PFygo20ZFcbiMmKvlaoy9ZZWRdfQGsR1zc3 InMg94FsdLNqNTGqOaFsfpPPmalrfaE+PrYGboSTP8xi7N85w3QiqCEfzp68VIF6zEBC7C2VPk8 UvR1SQC04GtdunNVlgTAHMsNqbR9GW8qGpI6g7AU8QM3qH30EXLEQ5wcbQ9rSdUsAI4qXZfO3yq 1bMB4qIwvLvQxrgwkSLXulg1F8dNQTAhw6W/z+sOe4cd6oJKbw9/UsUq8L1A= X-Received: by 2002:a05:693c:2d85:b0:304:641b:12fd with SMTP id 5a478bee46e88-30c84d8bdb4mr14313433eec.27.1782707411579; Sun, 28 Jun 2026 21:30:11 -0700 (PDT) X-Received: by 2002:a05:693c:2d85:b0:304:641b:12fd with SMTP id 5a478bee46e88-30c84d8bdb4mr14313414eec.27.1782707411001; Sun, 28 Jun 2026 21:30:11 -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 v4 64/77] target/hexagon: Add k0 {un,}lock Date: Sun, 28 Jun 2026 20:58:17 -0700 Message-Id: <20260629035830.1520296-65-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629035830.1520296-1-brian.cain@oss.qualcomm.com> References: <20260629035830.1520296-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: AW1haW4tMjYwNjI5MDAzNCBTYWx0ZWRfX9mn0UMbVRweh koa0LuNKyzqy8QcPpM1KrJTGE767TR903uWt1g0x5Q/MUKezdPISQ0ncWEfSL7MOdonLidiYxBh 1NwM304WZe5pCSN6F478KJNOJUid1aw= X-Proofpoint-GUID: 9_Rz-PdFGB3KNsoAjBZ7sC02BNORYY9C X-Proofpoint-ORIG-GUID: 9_Rz-PdFGB3KNsoAjBZ7sC02BNORYY9C X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDAzNCBTYWx0ZWRfX84/j9uhJByOq xRgnnATnudb0Cy5Lg3GA1DgRLu/MFQlPO06eLNcxuPRZiYL4izt4YacGqLNke6PLaLiAWyFylFz Z7mUj+XjIIYxHWXyUYm1QkMv3Bg2rBpH175lsG3bP2aqmGl/T0bfMbtrVuQwU1teYQyWvvXbU54 wB9TEuoP8ZHnvnweHmjWsgy1jSI+PJ1sDq+J7ZDG7hLyEFkz5XM104E0fkPI0bbDsSzGKVAuXD4 i67HcT94sOC95wkzgZVUKKLW1Nq1bHLQb9o7cHW4BD5K9tDpvQ0XoWpGCQa25kTblY6FSMP4FqR 1CoCQpWAxcpEMjGEvqhhUldJTNMBgjNXoRHZp78rFwOxjxUSZ4y12ozo+4DC6PQY1XJ3o3RePdt g1aHRE3ir1dd5E8jf/rH8GER9gh3XBNmxZ9dEGLQYoX6aA39yIUm3DmCFeQJ5GQP1TRiO1FixwX U35Tkzy97Mujw+/48Tw== X-Authority-Analysis: v=2.4 cv=R7Mz39RX c=1 sm=1 tr=0 ts=6a41f4d4 cx=c_pps a=PfFC4Oe2JQzmKTvty2cRDw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=DJpcGTmdVt4CTyJn9g5Z:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=ZtvnA-OJD4c8FAOZTSoA: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-29_01,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 adultscore=0 clxscore=1015 impostorscore=0 priorityscore=1501 malwarescore=0 lowpriorityscore=0 spamscore=0 bulkscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290034 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782707627648158500 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 Mon Jun 29 06:52:23 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=1782707626; cv=none; d=zohomail.com; s=zohoarc; b=Bvb4Ent9M36MEMTZ2pv7HJfpurcXjyY30jUb4kBkKDMtECnIPkl9DIL9V7ZhA1aDW8G6SM9G3nZu4fsAYLFkpC9Hfc0pldh0GBcWUH24VJWE/MAbGMug7Nk8utfpN/URYyZL9BPmxvzfTkThG56p0HUi+hLENxox/HA7J4pqpLY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782707626; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=aHHxWmUuG2ud5x/0Of8+A0eeVqNsaKo6SdYKqpRrU9lWYaz9/aHdwEUDWz6Tu/MBRS5Saym+zCv1URGHJIvpqRSTU6SFr5z5mMmpplfa2MCsa6HEZmG3BvpYBKPuHBqaDrqHqJ9xFf3qgMWJfixwoifr5teYgtYCmAc4PMlfFMs= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782707626453272.3433667568596; Sun, 28 Jun 2026 21:33:46 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1we3ex-0005V6-RY; Mon, 29 Jun 2026 00:31: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 1we3dX-0002t7-GN for qemu-devel@nongnu.org; Mon, 29 Jun 2026 00:30:26 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1we3dR-0001Nf-8E for qemu-devel@nongnu.org; Mon, 29 Jun 2026 00:30:20 -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 65T4NCTw1771912 for ; Mon, 29 Jun 2026 04:30:14 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 4f27084dh7-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 04:30:14 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-30ca3374c6aso7999619eec.0 for ; Sun, 28 Jun 2026 21:30:14 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30d3af0d2e4sm21314609eec.22.2026.06.28.21.30.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 28 Jun 2026 21:30:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= k98P3mzy875bIQ72dfi4cpupNsJGfuDp4DlfWaLieyw=; b=peV6w3gYy8QGUKk/ mFWTjOnDi0YUQ+0yg+YNJSykPc4LeiCbOYhO3SlFLYa2I0JayeJK2o2xF+2qHgut xOhP10zAujncWRP4uZ8rNLtwFXNNgXssK0Yxs0K9VhQXc71ZPC0EqBUd1erIGPIf Rr4+HSPios3XbhbGcp8ShtlCT19kjZQoVwMlajohm23I2CN+2r6E0uYp9VShAMQJ 4Rz38eXkfit6ytpWGsu6wWX5Un2nB8XY8DAX9PoedTOXXIo/XjhjMCkjnNTYf2E2 64FQU5x802f43hSJyw5Gj4VRSLlyfdMSL7kgvD/TuyUt6+mNSbf9tizDvu4/jkB0 jJH1+w== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782707413; x=1783312213; 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=Jdy6EwvOVz3cnQN1PqbZYkUvvP7qqxeHGpYDtZREO/e9Xze+wckN8T4FPVOInfSrpT CqJFWn9F/ZnnfnAMu/5mQNnouVWU2rdgnK504KOil3GFPWglHdfVBGweCi/zNH5Q9r1E /przE95KE0+6hV4jrzMnNxrOmRFY5jX5H1MlEHd/OwVpHDBNPk5ZSPHiHTrgY8Z7oaoA rFsJEns0TKUt7zn/cVGSsx+XjyQ6aZs2dUrXbrhLGlEQzI2eUZNeODf3KEFHRDCpXmiB wUzXTjPbGziCDX1FGDMSrUd2q+dTOLS+upo9Zta3kjNi2E2e54d6BohjlyP+QZ6+vHXF 8ydw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782707413; x=1783312213; 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=W5aUuI7WxRlctoT5SSCI6gaceEAT5p1UQ48yBhmw7qPfu6PZJTRqMdYk+BR0vawZFj A8kAr/h0qFhERlsti2tY1UxlkqL5GX2MwUZWFxPx2UAcrNx6Zc+ZThBuxxGkiBRDU6Br 6vz0kgZryvCytW5FLf34+nZK43LQ1Cld9Q0Pvwn3e9ZVoO+dH0+Yo5kHzPmLNntjshKB +r3vLsPYMq1iqcQa8gWc9Jlqwq1zkp6+kUouqFNqtUSEiqrgTybWhUnWRlfdY6QO++lb WvI0EH5+sOJQm6g54Vz//K/RUm0+jLZGqGV7oXNetmHUT6z1zPgSHL8+7bkGLhG2KUpP TBgQ== X-Gm-Message-State: AOJu0YwQDw60rEZwKjKRIrgGJzj1/ANA64SCclSwGMSjq3Ms3vwCpvrt JYyeUUOls2ogeNmGxf45pURy4h1NLiP5Fs9uwTSm51ir1wFJK5hby661amKEQTUg6E1zqLqTl5p nJ0T7ZX9Xi5gpWSgc//mqi3X1lGaIJ7DD1RKyV9VhKBHT4Rri1dYw8ukF56f+sr7WgQ== X-Gm-Gg: AfdE7cnp7R4JXWo4OzzSZFGfrwRAGLD08QitnUnFOEqyEmk7vLbeLuXc1lAsyAvsV+2 4GWdBuS1GkT/jUNl/lVl0dd7lZWOOVnbRHaEs75EiZR/ybtmxGDvwisjOrCUa8hKS5DMl3qAUAm r7EALte7EbxD9qTUfcImFf6Als0deTp4MQ92RvU9aNUl8b1J3cOYdqC9TozuoGxUsIZnMcLWqmr itquAccJjg8K3UjsfI5WzsrNUA+VhvKyqgVkC5vN9H98jxMYINSN/3Wtez3bz+Mlo7yGMlpYMRP h9+7ViImPoBTDigWPpcdRD19GrOnfKx3bwGAsbfVnLPAaxreMMTnZUL7qyctVZFtyK9T0QMx4l/ NAv/aMYuB9QTE4armHtk1tu627QGyifyzaeoREMBMdnk05BaIfcSUJ2YKj+0= X-Received: by 2002:a05:7300:e78f:b0:30c:ab4d:da3a with SMTP id 5a478bee46e88-30cab4ddbb1mr7792896eec.44.1782707413412; Sun, 28 Jun 2026 21:30:13 -0700 (PDT) X-Received: by 2002:a05:7300:e78f:b0:30c:ab4d:da3a with SMTP id 5a478bee46e88-30cab4ddbb1mr7792857eec.44.1782707412461; Sun, 28 Jun 2026 21:30: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 v4 65/77] target/hexagon: Add PC to raise_exception, use fTRAP() helper Date: Sun, 28 Jun 2026 20:58:18 -0700 Message-Id: <20260629035830.1520296-66-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629035830.1520296-1-brian.cain@oss.qualcomm.com> References: <20260629035830.1520296-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Authority-Analysis: v=2.4 cv=ObKoyBTY c=1 sm=1 tr=0 ts=6a41f4d6 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=4FQt9sIIQT5CW9ciUtIA:9 a=QEXdDO2ut3YA:10 a=scEy_gLbYbu1JhEsrz4S:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDAzNCBTYWx0ZWRfX5uBNSyna1dUm p0Qml4MKWBXAedpUF+malw/vnpsNMu5UBrr8+EP12qt/yPsVgjxop86O41t7peNGf2Q0LC0h2wO WNC9B99GoaEEo87N5uw08IWfZUx3HrrWIDxa1Nck+qLF9WgQRwlHh3jl1unxPSsjQ3OTb0zshzD n1uA2N3olRzdZW/ro+G2vwmDtVUZvktIt4lStSvg2e6JruOf0s4hjY24HzbqY097foZnHPynf4z aU/oRx+pbU2FXIqEAKfUUh6vtcP4WHP5fp3El0HegMP8dffyc2XYowxaPlijWj0n3B06EEovFC9 r811pZDnb7meZEFPQtShtDbA51DJHbBNomFuQqqbXsCk+zbGGiO7D5SetLhD1x6y5soSB/RJsaz tVynx4uLv53af9bA1RTU8HEIyxpfknfwa7XWgvppns08AUjM3SrDO3jfcqLrCDux8E4JkPxxfVT jz239Ax1HBuIQ1GJp1w== X-Proofpoint-ORIG-GUID: lt4tiMq5Z0xM6nJHigwB1KPErRxJc5CY X-Proofpoint-GUID: lt4tiMq5Z0xM6nJHigwB1KPErRxJc5CY X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI5MDAzNCBTYWx0ZWRfX8iZB3OuhR4U9 7rYtL8C33EL0STmqzjV00bY/33gwu9YqAO50YJ5CjOyGwAlVHV5QHaB/vSZ+a6bI/mBIxP/g2GT Th+N91zm7JbRDiJ+apNo6HJ4N7sAVq8= X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-29_01,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 spamscore=0 lowpriorityscore=0 suspectscore=0 impostorscore=0 clxscore=1015 bulkscore=0 malwarescore=0 adultscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290034 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782707627653158500 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 Mon Jun 29 06:52:23 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=1782707487; cv=none; d=zohomail.com; s=zohoarc; b=h0VHAHeXKAirICOhJLbEzZPHXy0nlizPsfwg0WTLj9kJSSQrQo6cUeJw1BL08aWzyhzpb+OHlfmi9LuVlGICuMlDIHw2zW7agABYCq1ddq7VBXc/Oz572QwuL2cBnrwgLOygXW9wkqGDs6/gMZyGD4s1siirRovtBY/8GSdQS7E= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782707487; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=CsY5bz3ppj68yFuQOWhhRSCM5pZu1liK0s6TcUyMhHvqERRY2CrQcgbOL68TEdznyxmPmRaho0OsK/kgyGNQaBVdgcd/FMxzVzwDTEAwKoXaTmU6IX2tZa1SVWXq61cia7mGWO9Edn9PMn1+hhx6DE7qCrGqhkIvU5BN3c1R664= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782707487704582.2809562095795; Sun, 28 Jun 2026 21:31:27 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1we3e6-0003bG-EW; Mon, 29 Jun 2026 00:31: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 1we3de-0002vB-Nj for qemu-devel@nongnu.org; Mon, 29 Jun 2026 00:30:32 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1we3dc-0001Pm-Qb for qemu-devel@nongnu.org; Mon, 29 Jun 2026 00:30:30 -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 65T4NH4O1754328 for ; Mon, 29 Jun 2026 04:30:15 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 4f27334fc1-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 04:30:15 +0000 (GMT) Received: by mail-dl1-f69.google.com with SMTP id a92af1059eb24-139fe708181so1207064c88.0 for ; Sun, 28 Jun 2026 21:30: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-30d3af0d2e4sm21314609eec.22.2026.06.28.21.30.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 28 Jun 2026 21:30: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= 1ECOxl3Fg5yOtnmQVv6BfaD55uXykPkSbZivFHhIDWY=; b=UIRZC64IkfSi8nZx WAdK+rO9l3vllWnpHvDHJCRZJzvrlkOjls+4xdQLJwk+UHYqQ2tJcmoqLgpVkbhh xZ9BWIDRlk49JN/e7gBTyCyr4D1+8J5JQQNzNsjQaB0dome9Fi/v9xyj/HEPKiGp bsV7iNJpQjyzwUDtVlpNIFhEXsc7oOh4o60bu8EPbZolgEFqXaPJpodmlKcV5OsZ Jc1kOlaHbQ75dhXczYdXMQmHVe7U8shpS75WZJe5Sw2m7AVl9NfPppcFf9N88Xc6 w8LqwWwAkyjE5CKu3y1KTlCfD5tZyZ8bQXYUo2A4SUGVXpgkmNJEDMHSdnaX0X92 ErJaMg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782707414; x=1783312214; 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=SNYAEqTSa4VZ/G/QzCxB4r/xpjBzKBSOoNf99zFOwNrpAfa6H3RQedS/EBdThtDBMA NujOhRPNS93c/IESh3yUd60R9Q4e66C76Wb5fM0VGKaBN9fT/krxuqe18oGC/g6t7/u5 +06ZQuNZb4DdB7SBmS7/5WLt77nX1O4S/iltIIiU62AHDLFo2rxAWVsm4pBJM06WcGB0 thElgquHn5Z2XMyotThqd5gy1RZ3SSWlTc2J1o+MVWrgfmqsbBILMU/Qmxmd31xdBOWR Pv+BU6HnxtLZeb7q59Yn90wfjv9HwarRQOiKaIHzcnyJ9gDJAUfuB7g60mLwfpS6eocC /B+Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782707414; x=1783312214; 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=hm7RV45IR1EtXZmuZqUveLuoQVOmR+We2DXXibBBgaOxSoi7sDYgYfs6JE/kAnw8OC UU2hgPijrbZYUGREu8wk0AUyUIe44gj505cdeevO6Dmu+qNMwotRIh7btIGmkLQSXGnD 5jQ9ckcVsVhFRKTHo+XL+kMIP3WifVrKoVC2VTlWVrKwgCguE/Qb06RL8hKI0bzcal9F aq1p3b/D1gNucv1Qp6ZXSseUTlAbzUXf8KBgKF0xKxj7TnaArTdOCYAIv1zihzLosQ8a OXhqrK49dUUrA4ljxn/K4MwRzEE+1QmthP7WrrwFIPwdFhTVtd5WqifURlIIlIGnigA7 ki/g== X-Gm-Message-State: AOJu0Yz+hTNY04G9dUfW7uwqwEr41JpgK4b63jg1r1q5M8xkwWyhWaz0 SOHw1rTp3hmYlXW2bYRx+Pdoj7cq+gmWs+155diqcNAtXGtCWwPtYjpIbZ2/pJP21J4Vcbbv3Pk Vt7f/S1K4c4udqx0eSJ4xuodVB/e2JmZgkwqkqxew4mlOLB0TEoTbWTlWB/u3JXhBmQ== X-Gm-Gg: AfdE7clndwvE4ShLar1RXqJQ/9IokblAEkoDhXzK8Ckc6SxsfkDTHMvZOlEpnbJX+Zd ndeoGAfJB4IITabOsUuS+cED18OYiief9iEu5ecm2szcAgI8RdYd8PH4DeVY1Z0wO9GiXpqbQ/K f66HRTfwcDuX0HDc+7fI6IfxvPlMZx/zu3Wg/MIozNF1tF5ufgq2G709wVEhgGsWlhTSYRXX9Jo bkARUY7OxHmaPx/1/e3/f+ljrymK1uscz4UaAYAWbnrpHLEqf7m6lj8XFtSuK70DtC6mRCOxpl2 WSbP3L5tMPQ2YBmJbFNExKASzKQHvawC/ltiJIcjCMjVBuagfAu227oeHoYRZIkZvRY9p1306rj nzq8ZWnUkmYIPuYKvw5/rn77Ngg1IOiDECXX8/pvoYBLwM2RLX70NNgBLh60= X-Received: by 2002:a05:7022:f694:b0:138:637:6227 with SMTP id a92af1059eb24-139dba0a865mr15071038c88.11.1782707414259; Sun, 28 Jun 2026 21:30:14 -0700 (PDT) X-Received: by 2002:a05:7022:f694:b0:138:637:6227 with SMTP id a92af1059eb24-139dba0a865mr15071008c88.11.1782707413738; Sun, 28 Jun 2026 21:30: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 v4 66/77] target/hexagon: Add TCG overrides for transfer insts Date: Sun, 28 Jun 2026 20:58:19 -0700 Message-Id: <20260629035830.1520296-67-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629035830.1520296-1-brian.cain@oss.qualcomm.com> References: <20260629035830.1520296-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Authority-Analysis: v=2.4 cv=F+FnsKhN c=1 sm=1 tr=0 ts=6a41f4d7 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=LN73x9Sj_Gq4gUX8wwYA:9 a=QEXdDO2ut3YA:10 a=vr4QvYf-bLy2KjpDp97w:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-GUID: HJLj8SG5MdlkV5LIeJxPwpYcD8hj5tnX X-Proofpoint-ORIG-GUID: HJLj8SG5MdlkV5LIeJxPwpYcD8hj5tnX X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDAzNCBTYWx0ZWRfXyQAOgDw0wUmS pYS8yO190uErSO1mVM924rQq6RnwyukCDBNdLRigXd4KNE/DAkHKM3zYBoBfeoiaoaG1ZUpFrFL gIF3xQoIUkzE54NqrBUuySrFMovOvNJrHbkTQS6MPv1qqz9ljA3Q1EmA+1WRUyiAD5+hkt4NR3A ydCxGSHicrF/2vZs+uXBPuC+M34X1U42Dh+DW/s0K3IdnzFIH0kauE+hiJSHjy/CyElj+5CW3Vs Rscx/LMT3SBuXJc01/w1Tr/lukWKKK2NZR6i8toyWRSWw3dMu2M8Jm6Rx2aFG3Mmkybctf3TAPe PktugJE0IQkh+4YbGfIzq+inGvgRgyq7eBh/URi1DNPjy+vpKycm6rmds9tRG/uvt2B++e8+WKh hSWHLSUFzQPM0IJjsj59o3soA8n/zK2bv5wdttgh6IIXHZXm3GtKPENIl9QT/hw0OXIC3pxaUTK p0I74gvMJo/lPfT+pow== X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI5MDAzNCBTYWx0ZWRfX3aOhywYN3ah8 xDqoDCJMbDAGhhuK7FAsXESbxKsvO+LaN2PwdkkRfeovYISslnmutbkvkAh45owx9Qunofy0qja hv9wHLE6Q2wGtglgeFs87uaIicfl9vQ= X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-29_01,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 spamscore=0 malwarescore=0 priorityscore=1501 adultscore=0 lowpriorityscore=0 clxscore=1015 phishscore=0 suspectscore=0 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290034 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782707489312158500 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 Mon Jun 29 06:52:23 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=1782707560; cv=none; d=zohomail.com; s=zohoarc; b=fn0PrpNYmUfu3neRB/F4W2l3RB2t8kikd7roRBlHe4ri1FaHDNonhilIDCBeQVWL1SwqsAGwTRxyfYjF+Pys71x/5OepJ8byYagoYns6lWll0DnWN8F0nVShL4kcULSgvCnW9zMqAvi0k89TnxBlQENBUg4fOSu16qPVZnLewV0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782707560; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=cUiSALbdFrurv/aYWdPEtHh9OZBaN7QFzGplCZwER8Rz9DNCN20rlG5MsJJUHTG41JMUrMEnD/BOSEMAg6wIelQNgvbcluNjQFWhtDdFhiwLgD3M6Aa8uJICdIl7T6R9TaL+YpyyuN2OTt/T9AbgRZ6IPBZIJrefYPqLLy6eG2Q= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782707560103271.550591045283; Sun, 28 Jun 2026 21:32:40 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1we3du-0003DH-ED; Mon, 29 Jun 2026 00:30: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 1we3dY-0002tF-Ot for qemu-devel@nongnu.org; Mon, 29 Jun 2026 00:30:26 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1we3dS-0001TD-Ph for qemu-devel@nongnu.org; Mon, 29 Jun 2026 00:30:21 -0400 Received: from pps.filterd (m0279864.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65T4NOc11719481 for ; Mon, 29 Jun 2026 04:30:16 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 4f27pf49yk-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 04:30:16 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-30ca81e05bfso2802964eec.1 for ; Sun, 28 Jun 2026 21:30: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-30d3af0d2e4sm21314609eec.22.2026.06.28.21.30.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 28 Jun 2026 21:30:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= W9aRU99FRJkCFdVjE14GeGuaLGKvifAUAOZ13h7xav8=; b=acpyvwFvxBG0lzvp 7TfNn/ZU4NP24YotvdLTbLxtgZaw78pgKD/5LGN0NbIViwMVVyN3cuS3fEJXozbg j/eI42NrGpskt3jVAzmyaHZ5S7dFgjwrRY4VYXNQJjd+S8FEg1YHtPxSqLMKbaal vD1t2pCGN3qTcg4e8rE671bF54K4lJdGW8ZL0AmaL6XiPVHW8uPMuEYqnZzivZ5y +gmNl8FCnMDIcxodDNzRPdFefGZQX2x2wkpGHPlynXg+MpHCOcQMbu1IV66R+r6g xS3rv0DnEm7iii4YXDlrcD9mWZ9EwO8dOGnbgkMZUQAS/nKNBccO1rH360LDmKbP VsylTA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782707416; x=1783312216; 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=inTG1FswR3SapZ/WT/og9XCPMET2yFeLmtF+um+qYS7jIP1N5qLc9ZZ4n0fSjpWit0 AUJYQZcbGA3Y4W5mv89b1jBV8qyVptsbDcQuy9OMejEiaYJuT+Tl4RWCrA8ZKKnkDQaL eBuUkV+1qDa4c8hewDEjxVrwhtWiGyeG3TArer+OEGj2xdMeaxM0ooCAqjKEHwEsHqk8 xzbNexqB1pZb3Zo4P5tN4dbeiBRJbSD1yq/K3DSaZkkR2bLWRx1tR3/iFCPtFT0t7AXO ASU96A9WRvzvzitvHSQZjYU7hpgWTFtTU23XmbPB9cKfGDvYD+DVgvMJ9YtVn1HB/Z9b 9YHw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782707416; x=1783312216; 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=Kw66wiV+/UwtTmbmGO4duNcmh19c8ZCO5XlUmZRX0c5bI9H3wMlE9u1KkHZxuJ944r JVx0lhCZ5IqlhuXEONpdFxNca4ERfebLIg15OkHmSD0Eq6DFG4olWA91KbNS0LMoMgbF UsImTkead54NVNpo/P1+ydHzAyoMz3xvU46YflWjoM9Qy0rEqRmjn6zgFaa8jMBMDUjo 5mgWroH2mJx54AxckGbRR+M95RT6ZQ91iRX6FBXNr/Yy98MdfJEVmuLgIb1Cfjsr/SvB 9/bsgtciepFYLMbWZK09Ef5LKkE0juL+Brc0eFT7++4LchpubDdKMRiJQIKeajjHKUmq NWJQ== X-Gm-Message-State: AOJu0YwldnVv0rgzX4Z4n50b72+45BTBzeGlzQte9/br32DBygIhcm8q lLPPIUepicyG4qvyYdMJuNDPvonriKQOh9n+QXu5W04Du74xSPvSIosl7vHfb/LJvF5kaBME+tM f8QmwL0frMlbFVAU6Ax6dK1GGbY8KBdPGv7z5yV/BwWA8uejPY+k4zdT2hrdorePvWA== X-Gm-Gg: AfdE7cmLtcI7d/gu92ba7U8T9bTGhH/vWzmv9e+nVFxQsG15F0jXsGQBdE1CqDnZwiU /H4oatzRcZM14ztNS+YEC3EmKXO8Zqn1nwTTIJL8ev4s+7cayRGblB9uwa7TAWdBvrpSm5WGaPV 8OI5QL0qWj8EgzGKt9qoOmo21/tyOGe9AS1gq++mUxqghaZhKLuZWacp3riVuEj2MY237YOXxUS bVYbFgMIqgBtNbdzdnDZbEuLOB/AofsUnqbLFFmsZw6TkPrwN5Z1TyALes0sDUZEJVE+WwLvNIz Qo5UYXWLDOKgNPH3eAH/VzL6F5PbTU35UbtoVHCwruHwwl0vp3+407zz442QSVesMhH1SGwujle XX2j2Tw3/L7XjaTqGRuIRv4a24FWVkqf7LonVqXuuBg5MVZ8t6vtb7j76dME= X-Received: by 2002:a05:7301:9f02:b0:30e:d6ca:61a2 with SMTP id 5a478bee46e88-30ed6ca64bdmr180820eec.35.1782707415903; Sun, 28 Jun 2026 21:30:15 -0700 (PDT) X-Received: by 2002:a05:7301:9f02:b0:30e:d6ca:61a2 with SMTP id 5a478bee46e88-30ed6ca64bdmr180795eec.35.1782707415363; Sun, 28 Jun 2026 21:30: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 v4 67/77] target/hexagon: Add support for loadw_phys Date: Sun, 28 Jun 2026 20:58:20 -0700 Message-Id: <20260629035830.1520296-68-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629035830.1520296-1-brian.cain@oss.qualcomm.com> References: <20260629035830.1520296-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: AW1haW4tMjYwNjI5MDAzNCBTYWx0ZWRfX1S6X7Wk9ZVo7 qyliZA3oslbi3Opd9E6QlkOY650yi3gOxSJwuLktDPW+zkTkF88DihYkf8AtVcdUJJdnFIK39xP vc6UXJoMmNpKfkEYv239kApzdug5Hr0= X-Proofpoint-GUID: 3vHDSdg9hwAKeoS9CfJqL4AJSjAzaPHu X-Proofpoint-ORIG-GUID: 3vHDSdg9hwAKeoS9CfJqL4AJSjAzaPHu X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDAzNCBTYWx0ZWRfX+FUA5LXUp+ak eMeccB9f8xRiF2uc8rNIHqwLLVLW7Sv7jlYAgs2vQYECbUf1SVxGnLBicsz2nTTnMsN7wpWG1zI a6H7i4BhPY1FqAjRtCySwnWLqF+OmDw8fZALc895oHqGFkdhpDFE/GYKdYLvjrvN4GYy4FW/zKy M99Ic5Bs+leitpD442hZSlEtFRp27CQi8AelQKzStOWbqEThbnVb954tIyKjk+4hp8cX+XHeCuo /J2ut1mfzeoIH4HK+u5vQLxergV6OeCFdNKDrMUnEQL6TJUBShl6GjvENkb0JXViyJ3q5DiNRGv dDh2tSTE8gkOtWt8Msb1bpn7P2nyMxPUUIEPf7P6ZIcXedX43T+TOu6DYEfoWimWv05RjgtFr4i aBALSz9K6/RUKO3r8beV4vOJdbLWhktGU4BIZx0KLZe/sr1pDSElIMfbJfrSFaXOHeUm6IssCCK q347tathqx4+4Ul+yLg== X-Authority-Analysis: v=2.4 cv=R7Mz39RX c=1 sm=1 tr=0 ts=6a41f4d8 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=DJpcGTmdVt4CTyJn9g5Z:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=M_0_kNSAHlZdZebFLzYA:9 a=QEXdDO2ut3YA:10 a=scEy_gLbYbu1JhEsrz4S:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-29_01,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 adultscore=0 clxscore=1015 impostorscore=0 priorityscore=1501 malwarescore=0 lowpriorityscore=0 spamscore=0 bulkscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290034 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782707561274158500 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 Mon Jun 29 06:52:23 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=1782707648; cv=none; d=zohomail.com; s=zohoarc; b=HXUh78pSttHVOdkoppxs95/8HAY3aLsW1w5EwrojGgEHW/pikmyWHuolJdEulI+9SY/S3OIRN80DAXOBTPLtTe4sNiKmTRK46XC0oXgD+wAiMGrNnLHeTowlplIAdq9RaWQyTUSzivrqsiuD5xLNrSVDevKIsAKNNF5r4wvyU/4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782707648; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=XnPeXPXUqqTrYGKVTw7rZKIhiSIl9fF4squ87n/wB6KK7ETR42c2zQCtc7jXMb9vG8h7KqKL2G+0lOjiDOwDJiQKra90Zo43OiafCo1AylyPzjgm4jX9G932+BJi5HzKyXvCM9hP6StKWrULKH1+d/1KWudgwOuXPPGV+ckSvM8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782707648563458.3331127336428; Sun, 28 Jun 2026 21:34:08 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1we3dv-0003K2-Ms; Mon, 29 Jun 2026 00:30: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 1we3da-0002um-OX for qemu-devel@nongnu.org; Mon, 29 Jun 2026 00:30:28 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1we3dU-0001UK-M7 for qemu-devel@nongnu.org; Mon, 29 Jun 2026 00:30:25 -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 65T4NCTx1771912 for ; Mon, 29 Jun 2026 04:30:18 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 4f27084dhe-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 04:30:17 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-30c011c7cb9so7192421eec.1 for ; Sun, 28 Jun 2026 21:30: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-30d3af0d2e4sm21314609eec.22.2026.06.28.21.30.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 28 Jun 2026 21:30: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= c10dnjx3jWBtOFG53LaPJvlCxFR1rsBjBNQjpvdRffY=; b=X924drqt0OhrtJiM M+ztbRjyE7QVHWqC1KZx9UzHV0aGN2xI5/QcDRFEwidSaq0WSZtkAmB/W3EBOi/a tjvQqnQC+9EC0Pu/9WXqbI8VZkKrsyVTz4Dox/QsSqdXnTXFRm+eFjJVBSadOK5N Ie14eO4O3DoI86dmrMNVsoddMbnzSVxtXUVd17PyvLtDXbmSMXfUz7yb93+5TY6w m65OOOSNVpNIG77jUSYcDjP3L9IlaMCFPF5dX+EcgOLRdUs5iUhm77pzYDITgy3M z9yiAZ94KQI85Rr4K3BENN0K3xF+MRG9m4/3Dix/F2TRCMXCppxb6hClSdIo85lX uCuVzw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782707417; x=1783312217; 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=Kcpi4bgCXOg5MLvgdcEzoNcai3N91XiCJTvJWo7UFL/6SrsF26rugCJRK7qFrlIrMw 8Mw/IJVQscFVzwiVEKh1OhDWuT7B67ePlNMkUb7fgS21tR0UhuIXCouEjsfU6lMCmCpH GR4lJhkYacXEUzgJZVczzu2KxSVO7VIZ4aLnI6vSm9FybzjwhbBRjYf/MCfRG8k9UduB m7ZpcQR+1KB1nipUnazuaZ+KUJBV+EWi9g8WpXKcfKa94VxMPHURgCvyWF0FHuNahTKC SDugt2d9FkGSLuVpwwR/TEc5Rj+gwwhb3klNhBoG/FJjxdppbt+SBEN+5FCUG4v9fpN8 dlpQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782707417; x=1783312217; 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=emF8oOWXtLd0TRqJ2tTRVborQ8fsGyoE0tpYuasvQuyS2g7viFmeBGlR1DAe3d1b2r A9nd1n/tVaNhMThf9wzpPLGIpjWN4tK10MiUhzCylsyrcNU3P588QGkQU1QwBeGYjDTZ 3CzGrsfW1u+S1HLIyLjZV3ff7XObydXSExI+I10cLZ5pcI7SEcB6YEC6r4Ev/jMoBqFe PReyQZ86hZDJS1+xZBPlOSu8B0LzRaoFZIXU32b6k46nF1QOaIuyVvhv2YU9ydqR0DZY QSivqo1qBjKmiUXB8Uxr2mcn5+qMJNTgRvtnKCPIU+COxj33vtzN3Ie0BBzqCDnI4IgR B0lQ== X-Gm-Message-State: AOJu0YzQJb6dbFtv7yb5pWPaBbw5rcUUVBitmIW8xeWq6zZ64bnGdhof P4qxZx9ST8AsIq6CCkOfMCW2Sk44xIJaCI3ef1NbqO6pT/WDTf2KwBrf0ZY0jrPv3/oYGPPm4lU awxrlrVPvs5HZsfSGfLRmC4DeBzVHgoWk+vHP6LNmV4IHSFNny6ybDUHZ6CPH47HnFw== X-Gm-Gg: AfdE7cl+xOWw0E0IU1GcQyzbLo9kQGj5ozGGEC3v2Dwrt09vFfttqM035I2wbAI/LfA aEzdrMcTrvTUjmYcth6vi+iLeNWiGrK7AySJP7LYMO1kWQIyr0+8UXOrAfj8htUsR9zCs1Rjp7m 16Gc/JW1FnPCdkcwRKQ1fQAMQJUtycRYWYBXVPsWGNiZZCH/w48Ne8vWOyNBo3BpAbmS3gvUGxu BfBzhkZeXDgN3nK/4aMXfP2Zz96u7yCQeDORfEEt4ungBGtE4aq9u1GsuUycKSTLd76c3Aafw7S ujTBF+Xnzn0vBAYNIWlfzCAQUHDQXrX63RCMvdYctPrxwcW+D7KiImxre3CCiDzBMmIN7CvcBVv iF8pBwk4B9l2agsF4wFaDge539MnywhbrBFEEc89ak4vxEugoA+cEHCS2Gc0= X-Received: by 2002:a05:7301:6003:b0:30c:39b3:20cc with SMTP id 5a478bee46e88-30c85124ac1mr15157247eec.35.1782707417212; Sun, 28 Jun 2026 21:30:17 -0700 (PDT) X-Received: by 2002:a05:7301:6003:b0:30c:39b3:20cc with SMTP id 5a478bee46e88-30c85124ac1mr15157220eec.35.1782707416623; Sun, 28 Jun 2026 21:30:16 -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 v4 68/77] target/hexagon: Add guest reg reading functionality Date: Sun, 28 Jun 2026 20:58:21 -0700 Message-Id: <20260629035830.1520296-69-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629035830.1520296-1-brian.cain@oss.qualcomm.com> References: <20260629035830.1520296-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Authority-Analysis: v=2.4 cv=ObKoyBTY c=1 sm=1 tr=0 ts=6a41f4d9 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=IJQQmebJWjVxhimlKuwA:9 a=QEXdDO2ut3YA:10 a=scEy_gLbYbu1JhEsrz4S:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDAzNCBTYWx0ZWRfXwf/trzMir10+ c1RlR7mz1iFLIqXkgyAwWgkUmUrD8HqvbRqdFPAzkPXrngU/FfA5w4o+gVf7wErWoRSui7ZpUVg 3vyh0LCrxHJMPV0Isqg3qG9lLE0NJWXMyTC3FBFt+Ffq2TC6mGkmfypsKQ9J0G3IuVTck5BPbut /FeRiNxUheIVnZT5DXeqRuIetBrb6IBONmk1gtCDjZntIQKxdYbn7iBjqw0aefTbrvXR3GxtKLz 6rb+BmxTrcDoi5aZ7T9/QyYovgP+43CJujj9IYKNAMF4sDm4yWwND8hLi9/grn/5cPUxVmaKz5p gsUN0Mz18a6SD7n2cZk2giCXo7UWRLzIkGsdmp1tAqk+gZoM2b78YQ9ZDfJmMS3I77Smili/M5E x87V2uqjm2XX/HnOZlh/nS+abKU10RrwELai8XaFBzW+xlo8qZa8mcsJZRGP4Gs0k42rCcktWAF 6ZXHLRzIOL8zL+Cgxuw== X-Proofpoint-ORIG-GUID: 5mkrxDkdnSMBW5rto7WORhA0b0wM7h2L X-Proofpoint-GUID: 5mkrxDkdnSMBW5rto7WORhA0b0wM7h2L X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI5MDAzNCBTYWx0ZWRfX18zfinL9zpBl xHCuqUOJ47jlTjixzVtmazJKSLSPRFaMgBkIR8dpivdDIzr4brB3JAKd8bqPT4Cf925JmxZgzhW T8KczjkZNJf9PvDIMZnvDw09tgNIdnI= X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-29_01,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 spamscore=0 lowpriorityscore=0 suspectscore=0 impostorscore=0 clxscore=1015 bulkscore=0 malwarescore=0 adultscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290034 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782707649752158500 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 Mon Jun 29 06:52:23 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=1782707561; cv=none; d=zohomail.com; s=zohoarc; b=b9pwUd8Ih6MSm3+Qw8beKeHT6Kn3f3UI5o3C2K/vanZU69ijwYjMv6NbMf0QLi0W9i7yG9wSo59KklZx73FqH/jymBfbjSkr7qQyc0B+R91U+eBz7/UToUq/fdShAZGqkU74Gw6ixi9/HjZwl5gdMbBdet6SqHNr4g03Hu0LImk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782707561; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=EwSb1vWeOnPUe+34SGHyFflfQ0R1Mq0QAdeJarSwnHSTkPsSjCTcMhgA5Uvfa7dzEkJ6AiCMBYD7KmyOUoMsHfmDopNrzEhmsRZkaY5XIeVhvCC9jY7EMhoFL8IZ2rL+cP7waJAc5txl8vm6+8WfIWDAHwIbjCNSmyuyPs9dmbw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782707561141427.4058699945092; Sun, 28 Jun 2026 21:32:41 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1we3e6-0003O9-99; Mon, 29 Jun 2026 00:30:58 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1we3dc-0002v2-99 for qemu-devel@nongnu.org; Mon, 29 Jun 2026 00:30:32 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1we3dW-0001Ut-Lz for qemu-devel@nongnu.org; Mon, 29 Jun 2026 00:30:26 -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 65T4NHaA1737487 for ; Mon, 29 Jun 2026 04:30:19 GMT Received: from mail-dy1-f198.google.com (mail-dy1-f198.google.com [74.125.82.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f279cmbc5-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 04:30:18 +0000 (GMT) Received: by mail-dy1-f198.google.com with SMTP id 5a478bee46e88-30ca81e05bfso2802999eec.1 for ; Sun, 28 Jun 2026 21:30: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 5a478bee46e88-30d3af0d2e4sm21314609eec.22.2026.06.28.21.30.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 28 Jun 2026 21:30:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:content-type:date:from :in-reply-to:message-id:mime-version:references:subject:to; s= qcppdkim1; bh=IR53Mjz5etxJrjMQaZOHC4cu/qgzTKOGEQyPVYlQwQ0=; b=kq nRGfjPYBbOpuKxGeu0HITHMTEETCM0LYMMjkreM9PR9a3sd2lOPDXkreW/owVVxP 6RpFxnLhuA7rfkpnYzezHsaAcmEmu4KITIkwXIhG7v/Hz9cnkPi18FC2jES6SP2b 7eLw6v8ep0caSQ+Mmwr90lkiATjASIcHYZ8ixdaSEvaEaAV51I5y7d9x6IMprXcf Qd/y+fXZNuuh46Y+TS2EeUngX9fXcYEAhRAnDRTC3LJ2MUxovfD0eLNLar2fiiI8 /EKxqZkgAJEA3MzvO51JMs+brTyp7akKvv1gL5pWhfdeulqiAvD6WiklYHYcjy04 uhIEI8rpegrxS2lmO3BQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782707418; x=1783312218; 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=NBADYnW/RIWLRMJoXa68vfYA86GQAtEh/ZjmYgi1FpWeHSQW5qT6/cRP2C1kZJghMb ishWCsS/t+rjJSNpCbMz0c8W/zoaHypq3UmZsbU7/Lza4vV1/NB1QZA0thVVUIRJeKth F49BIU7yoZHc5Acl9v+w18XPKf0IEb++zm7sMvR1wP7YM+x3Goc5w/lhzoFGEkb68Okt cAwgUm2KPc5hE7ZwDqT4ESkCkmAcHPdcXTMJn2biid3DClWuby3AiPDFFQaQHC+UrYvz pzTqCvBAw6hGoa6KTqeEnjHHg6uAfNrMbIse+oa8Si5AN73nj/hMs98qAPt/YZudnK0r f8Iw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782707418; x=1783312218; 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=EtYNSJMkZ3eGBsoOrnZEsdIESwWS2HbqkV4wS3f2BmtiiK00zyma3FcvZMcGRzx5/Y HZEfXrq/RfYTsAcE/PSS7YQ3JU02ZOn8kfHAveXgyy+d6J5QnBeATBwv/DcROhh5QdyQ 8/v5xJaHQ0mvGT98y+/mzQhkRbIAoCV1sL9bp0auz6+Ozz49Ek7LX6WQJFDJQ2DTQEcI ZBtVFBPAmg1e0DmbTsV5hNP4e6apTyA3goA91ry0lJfXKqdbw80kKfmhJkhDE15VogZZ Xs1wlEjfTsGgTwoqOxLQZk3SK+Texh5qRnYyNIm0DxjB5/Uhw2IWzkj6LbPaJCxCD5Fm 3vZw== X-Gm-Message-State: AOJu0Yy5ypZ6IKpJUme+2eAzFZt7JMIRWSGcKLVYKK0ZwHgsGhrHyghh FOsstYYdgou40DBKqwbFSz2yFB92vN3s/DGp33Ngu9agr4B4vTV1aLEizoUQErrxhDoQ83cnvsq gwIDJtIFPuUwwxEn6rXgd16/KTsDMbkyRTQ4FMBfsZtjdEHf/WHX/sjhSZQFPkZ05+g== X-Gm-Gg: AfdE7clL6ZrpTIyYZG+1xOtw0J/6YBm/BEoabmqK7MPbS9S0Ogpti2S9vjxUfJhNc83 3C7lujGb0udz1eXwp3R1rUCX65bxf8CI5LggU3ufWo6Q86SeYL/N+jYA9dICs5pHxfH8ZNJunKy lPZAK3YVNQ2IIuVWuVkcDEKjna4+H/Q/NlqBm7pxCcFw+yfs3PULJE/bnswyORC/3Ncm41qlJ2g 6F/uCt2TPGlLZFswIc05h5smWghKLbIxcpRxGNRXAUWtmwj6wTiaYsLkMTkpp5qdaE1kwHSCs5a mKzf0L4mz+7JoXNd0j9j9ZBrUhuGRa2qKDr1gE9Kwj9lYpxTlvf0vx7nKIhfw9N8+qRlTpanEeg UyDZZZJT196vY2zpBjHhcyeiz4gY+NHH4/CZdPR0wiOYu5X2PoSL6JjpE3yo= X-Received: by 2002:a05:7301:9c95:b0:30b:bda8:a70b with SMTP id 5a478bee46e88-30c84b71c2fmr16046634eec.4.1782707418043; Sun, 28 Jun 2026 21:30:18 -0700 (PDT) X-Received: by 2002:a05:7301:9c95:b0:30b:bda8:a70b with SMTP id 5a478bee46e88-30c84b71c2fmr16046606eec.4.1782707417478; Sun, 28 Jun 2026 21:30:17 -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 v4 69/77] hw/hexagon: Add globalreg model Date: Sun, 28 Jun 2026 20:58:22 -0700 Message-Id: <20260629035830.1520296-70-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629035830.1520296-1-brian.cain@oss.qualcomm.com> References: <20260629035830.1520296-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Authority-Analysis: v=2.4 cv=evzvCIpX c=1 sm=1 tr=0 ts=6a41f4da 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=_K5XuSEh1TEqbUxoQ0s3:22 a=EUspDBNiAAAA:8 a=KKAkSRfTAAAA:8 a=ykHTVMA0J60qDn7DFlgA:9 a=QEXdDO2ut3YA:10 a=bBxd6f-gb0O0v-kibOvt:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI5MDAzNCBTYWx0ZWRfXyn00zJmtTlly FxRF351PUHhzxGGF8RXTJm02jZhjBG45oCRAIQuayzWxzCdeZpXRIMybZNvn0eNMJgY2Rp5zm0j YM9sHGlD1u1xMVwfbpjw61CLWc+cn1E= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDAzNCBTYWx0ZWRfX1YHVN5U33ZKn /JqpLLF8xjYJCXm+mv0eyCnR25yqmrHTvS543nR1uG1kY0okEHIdKYXSNgkcCMxqQ+Rpm3rddgE 560r090+Y4Czcb5HLYIB5g/z/5AmetKxNS3Hx2wyu1l2x9cD/a2Aqo0Zsa19zEjvktB1i7KbqTU YGsG7D3IiZJF7kn/n2V6O/08dRWlO0IGKuw/fmjN25lCIwotnt/YMQapulffPO1ZCh6zde+IVOJ Jcbg+gabAGI/Zm1G3UQLcjGT4CclLCWEE+PcI6Slz047v2JiMf4NnYzzkq9dM/9egLSciMFWECj /1Vge0WXCQpK8zj8IdLc60+6yTw5M7V3s6hRZhlPg4+8am0ZT3Xa9XMU+Zh5n+AkCcZr2zeVTcP mivVKYLDbcmb5Av+hZFKkmBW3pnm5wrDpBqUrpxNeptVAFQtBS3PSk34nN16STrjWHRsHP3Y4df MApHUJTxUAkdYuFUTJw== X-Proofpoint-GUID: bCWGIZfqdHLpn1EjPGQ1QLzhYGvIinfK X-Proofpoint-ORIG-GUID: bCWGIZfqdHLpn1EjPGQ1QLzhYGvIinfK X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-29_01,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 suspectscore=0 priorityscore=1501 spamscore=0 adultscore=0 malwarescore=0 impostorscore=0 clxscore=1015 lowpriorityscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290034 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782707561239158500 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 Mon Jun 29 06:52:23 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=1782707637; cv=none; d=zohomail.com; s=zohoarc; b=VkH739yZJwLpwMLqojZ3Ba3gevBBwM7V+whtTJ4f87Hvo1IBnN9/i3KQ5b2vka3fHm0pY7bG0+Np7QcMwHi+oEB4UKsNlEg4b5QTlgAA2/d25jgRPz1bmlkSI+Tio5dYvNdn5aABUgK1hDpKexKl9Y3dl4R6O16QO/Idck2p0f8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782707637; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=BFhkHhB06xj2jNq6DMXryUbiv3cOyAH+xorCjxywqkA=; b=aF3hxW8MBpT/QlcB8ksVOm2OUwvFoo81/vpiaBz7ogV7L6Ge7YF6wtQUfy4kjvV7Sp/tiILa8fJo2SrqEb5FSEnuiiMCHOCNGjdN/sFGMj4cF0fZRBHrAVS4z+tX2SzCKzJcB7T9aIIsVcRBBIHu2FDathWWjsUFVyJgqNfCDJQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782707637698700.261363930855; Sun, 28 Jun 2026 21:33:57 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1we3gj-00005M-1h; Mon, 29 Jun 2026 00:33:41 -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 1we3dk-0002wz-UU for qemu-devel@nongnu.org; Mon, 29 Jun 2026 00:30:38 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1we3di-0001V3-6I for qemu-devel@nongnu.org; Mon, 29 Jun 2026 00:30:36 -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 65T4NXqm1730203 for ; Mon, 29 Jun 2026 04:30:20 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 4f27t7vajn-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 04:30:20 +0000 (GMT) Received: by mail-dy1-f198.google.com with SMTP id 5a478bee46e88-30ba395b047so10569220eec.0 for ; Sun, 28 Jun 2026 21:30: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-30d3af0d2e4sm21314609eec.22.2026.06.28.21.30.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 28 Jun 2026 21:30:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:content-type:date:from :in-reply-to:message-id:mime-version:references:subject:to; s= qcppdkim1; bh=BFhkHhB06xj2jNq6DMXryUbiv3cOyAH+xorCjxywqkA=; b=DE bqz09sOwoGsOJm8jMxfTj16JtzgfMF5M1/Qp9hbZBseepRba1Qf3jggpUcGZzt3x SJCtOa+IOc6lkZZrxZHRsLZl4r/B7pwbWtRhfum68xgvnaTiKzCUpLAkGu6njkS3 LkzE7cm9b7ZRTTUKc/TCoKtCA+sV+1ebM0TBYMOAXlVUx3yQFndGM8wNHkNm+rim KW9+kO0wLydGRGAnkIeLJFeJ1SrlRJkBf/NrSD9exwcTLa5r4szz+xvYIlsuiUQP wvLGeaDIbktWoqEIY+czquV4kBo3PtoFFKmUAUNDbi1F7oCZwLIaFFs2zaRRGuY1 rd0vnRaOSYVeNOIDQdNQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782707420; x=1783312220; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=BFhkHhB06xj2jNq6DMXryUbiv3cOyAH+xorCjxywqkA=; b=hCnPB2CXKlufCt4ui/DzYP/FW6k0oeVUu492gs2bl3RRAenzYaXYUVdK0ScwfHdJ3V URcNLU9ujDqTyvL3pV4XT5wSPQcV5rZmpcig4GRyloLMISwuW3Y7txaB5M1ohxzLpzp1 CFQq2vaMUg3u4qGFF2QP6/Hbb+jzNzZ3LAQv8/b3Ny0Pt1drT6qbBqbZx0F5HYfPEQYe TFiAChn7IdhsP01+OvwjaHNmgtu/L/bl6sBmhbxUBx1WDt0qk5rPsKDrGV9GqZgrwSq8 mYU5msTArUU1A/3mflGAixVaOQCn1u8G5HVpWfExHubESf620tn/Gp57XSEqKj4aoH42 J3Fg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782707420; x=1783312220; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=BFhkHhB06xj2jNq6DMXryUbiv3cOyAH+xorCjxywqkA=; b=AdIImWslIgWtAn1+oIykQB7jQa3FagXSOnvkKSKmZM/ArhG+5cQqnq6d1aeX3pwviu odPEFMw5o+LHngE23qWe6RBmpQVIoAr1QheWaAcbntyPe3E/2D6MEIIU05RJ6uWtKeQI wY1m2r2te1u2rFiqmnaBjt/wOHcyltunNEYcGAdGqlvb5RPldW1n/P6i1pwhbE8DmuEu RBd13JpOQCd/fQKyP6E6A+xwvlto1/0XTAGRzEtDERnEEUDNkR8QlkgeG/aN5NAXzOu8 q5RKeJhD/olOolMf8vF3u2YHWjsr7s8bg4Kt4FnxTKJOzkXIh0niJBk1etRMO1DJl4ao 4FEw== X-Gm-Message-State: AOJu0Yzs4Y9MYsbOHFZmzYuSy3YGJvba0vcJUhiMIhIG1WN7pHxB/IzL c06eWmAzLUrrlJTW1fcKGPOfhwpneu/SfAXezb1ElDm4BVFtN5r4kvVamaYNPuflcAbG/xwlDtQ c++sD+W8hKl9M0vbML3M1ieNnnKbCyvO7fp/MHjCpl0EDbZRNMHOSJWQcJTlF1x2DnA== X-Gm-Gg: AfdE7ckRs3j00i+u/47EV12BS2+TzwvnWRXV3J6sVWY5GTAeYBE77Zq/KPg2kUzbvTN TS6ocFrOnIjCnEGE4a32E0G/9O9Iiu3VaXn744r6imGl/x9iJl9x0mJC/ZrjgUiQnZTD4M+az5c NTzZxOwuFfzRjxsLGpwQ1R4K+SM80po/4slg2neGOKlA00vqXBC8aK4BFGluO9qOndZFTOq1dcI w4xOHufUrktORRG2lMtCZRVtT9Xphs+rBEabF2RHCk+lbOPkNVCrTDlqU4KbL3kHPYyGPHfM7Bu WhJMfSNQ6s/ELY2aEjuAvtPVUdzuP9xDnfVPfVTzzCvpY3WlRQJv48e9Wa4MOEtAZcXjInw4OP2 lUhcCqXUZY3f7LDwGpT71nTjE8sRemBRs+GgbwbvEsd1O2YY5Rdqhet6ul0c= X-Received: by 2002:a05:7301:6502:b0:30c:a9a:ee57 with SMTP id 5a478bee46e88-30c84c1c69emr14860521eec.15.1782707419756; Sun, 28 Jun 2026 21:30:19 -0700 (PDT) X-Received: by 2002:a05:7301:6502:b0:30c:a9a:ee57 with SMTP id 5a478bee46e88-30c84c1c69emr14860492eec.15.1782707419156; Sun, 28 Jun 2026 21:30:19 -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 v4 70/77] hw/hexagon: Add global register tracing Date: Sun, 28 Jun 2026 20:58:23 -0700 Message-Id: <20260629035830.1520296-71-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629035830.1520296-1-brian.cain@oss.qualcomm.com> References: <20260629035830.1520296-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDAzNCBTYWx0ZWRfX1pfCGFHOskiA 7FLC4N0NArcLt36GFtK8pL8ZpcWI130HZt7nm7mgx/nYgbLwf1g5DdosMKD+5x43PZyga02GUwT y1arGWhHlWh5gbgrbPVlYSns8HMXtEq9JJFde9BJKyN6ydGnrSecBNCgBZHCy28qXT+tuV6Ycqg /LK2v+RE0KpPzVL5w3IRWGu2HI85bxomyFLlppJpmXpTmYpISq2r160M1Mn1mQboMX/AdQwsLDT wAo2GlhUaXOWmXP/n5eOrft2+eNXFlP65P35H1riwh7WWGR+jUJyYNUgv4jPU0jwfaR4qtojQe4 +swV6Ia87g2aWsJr6MBsG3i/AkoqgGAQ4yQw+vS0XCPLcwlurce5iV1FBY0icMOi3tewFnSuXzO LBdeH5ge5VHuCgNDl1pU+hP1qFqKNG0IanTXIonmED4bhVnU1MtHZ91LhqNOznLrwouQ0//Mxyf tgmiBROiycer7gU5iUw== X-Proofpoint-GUID: 2nZM3gGwwzOuE3J_V15qGaQJ-PPWKSU6 X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI5MDAzNCBTYWx0ZWRfXzlrLOn007b8q WxAu6wIp34spn75wIuuEvNFI0hoZZxcoiy6ho8xEQgH0LDHO8iH4HHYF/4d1cst3D4k1xvJn860 uW4AM951tS/pMLVqMa5zz13pkin+RpQ= X-Proofpoint-ORIG-GUID: 2nZM3gGwwzOuE3J_V15qGaQJ-PPWKSU6 X-Authority-Analysis: v=2.4 cv=BdnoFLt2 c=1 sm=1 tr=0 ts=6a41f4dc 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=KKAkSRfTAAAA:8 a=EUspDBNiAAAA:8 a=8QmChvNvioVktlEtA_0A:9 a=QEXdDO2ut3YA:10 a=bBxd6f-gb0O0v-kibOvt:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-29_01,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 phishscore=0 clxscore=1015 suspectscore=0 bulkscore=0 impostorscore=0 spamscore=0 lowpriorityscore=0 adultscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290034 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782707639700158500 Content-Type: text/plain; charset="utf-8" Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Brian Cain --- meson.build | 1 + hw/hexagon/trace.h | 2 + hw/hexagon/hexagon_globalreg.c | 73 ++++++++++++++++++++++++++++++++++ hw/hexagon/trace-events | 3 ++ 4 files changed, 79 insertions(+) create mode 100644 hw/hexagon/trace.h create mode 100644 hw/hexagon/trace-events diff --git a/meson.build b/meson.build index 0d1df06ccc8..164328ded83 100644 --- a/meson.build +++ b/meson.build @@ -3601,6 +3601,7 @@ if have_system 'hw/display', 'hw/dma', 'hw/fsi', + 'hw/hexagon', 'hw/hyperv', 'hw/i2c', 'hw/i3c', diff --git a/hw/hexagon/trace.h b/hw/hexagon/trace.h new file mode 100644 index 00000000000..9e0b39f3c66 --- /dev/null +++ b/hw/hexagon/trace.h @@ -0,0 +1,2 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ +#include "trace/trace-hw_hexagon.h" diff --git a/hw/hexagon/hexagon_globalreg.c b/hw/hexagon/hexagon_globalreg.c index 28cb5a4158d..b5e5913507e 100644 --- a/hw/hexagon/hexagon_globalreg.c +++ b/hw/hexagon/hexagon_globalreg.c @@ -16,11 +16,82 @@ #include "target/hexagon/cpu.h" #include "target/hexagon/hex_regs.h" #include "qemu/log.h" +#include "trace.h" #include "qapi/error.h" =20 #define IMMUTABLE (~0) #define INVALID_REG_VAL 0xdeadbeef =20 +static const char *hex_sreg_names[] =3D { + [HEX_SREG_SGP0] =3D "sgp0", + [HEX_SREG_SGP1] =3D "sgp1", + [HEX_SREG_STID] =3D "stid", + [HEX_SREG_ELR] =3D "elr", + [HEX_SREG_BADVA0] =3D "badva0", + [HEX_SREG_BADVA1] =3D "badva1", + [HEX_SREG_SSR] =3D "ssr", + [HEX_SREG_CCR] =3D "ccr", + [HEX_SREG_HTID] =3D "htid", + [HEX_SREG_BADVA] =3D "badva", + [HEX_SREG_IMASK] =3D "imask", + [HEX_SREG_GEVB] =3D "gevb", + [HEX_SREG_EVB] =3D "evb", + [HEX_SREG_MODECTL] =3D "modectl", + [HEX_SREG_SYSCFG] =3D "syscfg", + [HEX_SREG_IPENDAD] =3D "ipendad", + [HEX_SREG_VID] =3D "vid", + [HEX_SREG_VID1] =3D "vid1", + [HEX_SREG_BESTWAIT] =3D "bestwait", + [HEX_SREG_IEL] =3D "iel", + [HEX_SREG_SCHEDCFG] =3D "schedcfg", + [HEX_SREG_IAHL] =3D "iahl", + [HEX_SREG_CFGBASE] =3D "cfgbase", + [HEX_SREG_DIAG] =3D "diag", + [HEX_SREG_REV] =3D "rev", + [HEX_SREG_PCYCLELO] =3D "pcyclelo", + [HEX_SREG_PCYCLEHI] =3D "pcyclehi", + [HEX_SREG_ISDBST] =3D "isdbst", + [HEX_SREG_ISDBCFG0] =3D "isdbcfg0", + [HEX_SREG_ISDBCFG1] =3D "isdbcfg1", + [HEX_SREG_LIVELOCK] =3D "livelock", + [HEX_SREG_BRKPTPC0] =3D "brkptpc0", + [HEX_SREG_BRKPTCFG0] =3D "brkptcfg0", + [HEX_SREG_BRKPTPC1] =3D "brkptpc1", + [HEX_SREG_BRKPTCFG1] =3D "brkptcfg1", + [HEX_SREG_ISDBMBXIN] =3D "isdbmbxin", + [HEX_SREG_ISDBMBXOUT] =3D "isdbmbxout", + [HEX_SREG_ISDBEN] =3D "isdben", + [HEX_SREG_ISDBGPR] =3D "isdbgpr", + [HEX_SREG_PMUCNT4] =3D "pmucnt4", + [HEX_SREG_PMUCNT5] =3D "pmucnt5", + [HEX_SREG_PMUCNT6] =3D "pmucnt6", + [HEX_SREG_PMUCNT7] =3D "pmucnt7", + [HEX_SREG_PMUCNT0] =3D "pmucnt0", + [HEX_SREG_PMUCNT1] =3D "pmucnt1", + [HEX_SREG_PMUCNT2] =3D "pmucnt2", + [HEX_SREG_PMUCNT3] =3D "pmucnt3", + [HEX_SREG_PMUEVTCFG] =3D "pmuevtcfg", + [HEX_SREG_PMUSTID0] =3D "pmustid0", + [HEX_SREG_PMUEVTCFG1] =3D "pmuevtcfg1", + [HEX_SREG_PMUSTID1] =3D "pmustid1", + [HEX_SREG_TIMERLO] =3D "timerlo", + [HEX_SREG_TIMERHI] =3D "timerhi", + [HEX_SREG_PMUCFG] =3D "pmucfg", + [HEX_SREG_S59] =3D "s59", + [HEX_SREG_S60] =3D "s60", + [HEX_SREG_S61] =3D "s61", + [HEX_SREG_S62] =3D "s62", + [HEX_SREG_S63] =3D "s63", +}; + +static const char *get_sreg_name(uint32_t reg) +{ + if (reg < ARRAY_SIZE(hex_sreg_names) && hex_sreg_names[reg]) { + return hex_sreg_names[reg]; + } + return "UNKNOWN"; +} + /* Global system register mutability masks */ static const uint32_t global_sreg_immut_masks[NUM_SREGS] =3D { [HEX_SREG_EVB] =3D 0x000000ff, @@ -77,6 +148,7 @@ uint32_t hexagon_globalreg_read(HexagonGlobalRegState *s= , uint32_t reg, =20 value =3D s->regs[reg]; =20 + trace_hexagon_globalreg_read(htid, get_sreg_name(reg), value); return value; } =20 @@ -89,6 +161,7 @@ void hexagon_globalreg_write(HexagonGlobalRegState *s, u= int32_t reg, g_assert(reg < NUM_SREGS); g_assert(reg >=3D HEX_SREG_GLB_START); s->regs[reg] =3D value; + trace_hexagon_globalreg_write(htid, get_sreg_name(reg), value); } =20 uint32_t hexagon_globalreg_masked_value(HexagonGlobalRegState *s, uint32_t= reg, diff --git a/hw/hexagon/trace-events b/hw/hexagon/trace-events new file mode 100644 index 00000000000..5d623ed2516 --- /dev/null +++ b/hw/hexagon/trace-events @@ -0,0 +1,3 @@ +# Hexagon global register access +hexagon_globalreg_read(uint32_t htid, const char *reg_name, uint32_t value= ) "htid=3D%u reg=3D%s value=3D0x%x" +hexagon_globalreg_write(uint32_t htid, const char *reg_name, uint32_t valu= e) "htid=3D%u reg=3D%s value=3D0x%x" --=20 2.34.1 From nobody Mon Jun 29 06:52:23 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=1782707560; cv=none; d=zohomail.com; s=zohoarc; b=ffFilVen2WvFPplLQ2QH43d6zWfkr836ajBheOT7a7SuCESW+fKU/mnEKIsRvCe1j/7oAckEq5BX9GUwwCjExtZ5WGMerKkmLsypGd9i3yWaW8uYgMOJ4hYzH+5Qy/aZGl/2u6pt+YD4GZKJuuEJ8eOwW1ukYkGfVaY27EpTUQA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782707560; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=EW3+UVRor6yb69fzRSeFwqUzRRjbBJBOujD1qXwexeAJAfFWgTPtBuLmJsDbL8/Q493mxGSDKaFgIdqWGVY+GKw2+2M6H4bFRewyyBO015fxH7bhYlFkP4R5PJVEeDI5aYf2MuLIoxGErPaE4Gbye/QEW8ihNLZAF5Jrikx15fM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782707559903893.1580537644472; Sun, 28 Jun 2026 21:32:39 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1we3dv-0003Iw-Iu; Mon, 29 Jun 2026 00:30: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 1we3dn-0002xM-9B for qemu-devel@nongnu.org; Mon, 29 Jun 2026 00:30:40 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1we3di-0001V8-Gq for qemu-devel@nongnu.org; Mon, 29 Jun 2026 00:30:37 -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 65T4NXqn1730203 for ; Mon, 29 Jun 2026 04:30: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 4f27t7vajr-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 04:30:21 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-30ca3374c6aso7999947eec.0 for ; Sun, 28 Jun 2026 21:30:21 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30d3af0d2e4sm21314609eec.22.2026.06.28.21.30.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 28 Jun 2026 21:30: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= EzOvoGhvtPKig+yChPX1XxYwqHpTeQ/TAqtl6EODqY0=; b=GmPeZI/wxVbjG8wE sgKrAlE0MDLZzXAh3fNTYATpoCM9fU2hLi3ga+fzVr9f+NvElJIoscDB4uGfi4Bm pP7uQ6ks++M+UaaJ+1Py+Ek2sNT8yzffmfAxlVQhyWGmJ1C4gQrZV88eit3SVumH DWMGUUFfp6vpBeMV6hLlPVezJjnDWrvOdL/42Hpcgvdmv9mLtH+vLmHISnee6kOM JgbtT7m+WNqWYWuIGp/4OyZYI7M/qNyMwipScpRdr9sOXqXb3Xs8fbPDAlsHkwD9 yz8OQ3NIYHg+HRszotL8r8KW1A4y9vlxAVlnwroLU0jb9OOsLNosGUVLgbS8Q7+4 c1sxtw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782707421; x=1783312221; 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=OyoFZwUuENnjkmCt99ywf0B6kV3Mxm4Lm2/UYjexOXulcnMIunrlPmI3JT7PdNCsTk aPJDYNYY9N31OiRnlfxB8mlfi2TiRAK03ooTILq9WIruFI0a6zL+lbPisvF3vsYtQ+MJ 0kMR9XE3Bz7LBk2Oz7N6hO9XsQXC4ge6cnkIMRx5ZP9S1zKKhbAZfgAzlt7VCwNWy3sH frXPFKPcAxe+ghb0O6918SoODFFWga7HjS1yzsY7PTVrUfAvfLfoUnpfbWax/avHLna/ dNjAWgSUnPTBIs/6BEeIpMxRHt5hgnCE94RGa1/WvOmkS6NraQQV7iOq0q10tW8XCaiz TRXg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782707421; x=1783312221; 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=sSoTyOtbSvXMkeQBNjddmV1+YHbp9/5YBdjpD0Wwg5RP6BX7/raAbchD5XoCxJog/i 1Sd6iDR+h/xYEaRatPS60Hx6Fqpn3F3ntP+6NWAxH+7/UCzVLP1IGc3Mltr4NBo6rj78 3kWOqTaerk7Vej3N7K17kBjFD6Xgoy437hb7A8TOwYnQbx9WQYn59qNmjrAqcttj8H+v AuuyAqNI8vDbPaoT895hMno3E8yPKyO5S776sXmW5CtJYRfy/J6r81iGmyNokmGtT9T7 06FBDVYyRGbeAiMu1FpwDaK/1DvjUfBn6KseG+UqD8rGzYjtwU6m9z0QpDjI6BuISZpE K2pw== X-Gm-Message-State: AOJu0YzRSr9oC6p4TJVEurpI41rEVsXC/xrk4TQXp74uPyJUjicAzIns AQgVU4t7Nq1qAppZUNhcn/tY0gPFKT3q45Fayf3TKRIfFuqzKk9DTBo5iw5Zn7mSf1qvi9gAxEC Jpel/0GOiQQbkXNHQ8dpIkPAUpDHOcx5sgEKdxw/xbozusZawWDlmr+z0to/PbGhn7A== X-Gm-Gg: AfdE7ckr+nWIzx3AAx/7Lt/nzK+GLMI/nvtpeQklviJdawwL49oHJT+V1qu1mgjzHLa hWOlHM5kSka4KvV3o5nuktsGFwpQYwNMKNsylgtRTRw9ggrFJ8ocmPN65kTuAe1ZWs+qEBJVpxD 99lFA6NnVG+6rqcajJ3u5xfeyJZ6UiwwQ3yM43TIcyEMhsP+doUsUlVBntfbsGA+EQ29Zifd/0V kZ8QCTYcaQApNZ97dEUynJGOXvrzx0Z+qtw+V09Yntqaterv/vFc+F8BGRscW0CWFDgPlFMFo5k 8tZ12SPh1FIpz2LLdqnKuUp42SEJ+melG7wHu812YmNVWTAyQZBNXc6u9bsmU/JWr53/ZEIl3kr BEhNNbrJX8o4wRmZKZJGufCl7dgUKZJHKq1jevMcspaRWqYTXMuY5dISjbZ8= X-Received: by 2002:a05:7301:686:b0:30b:fb9c:f8ff with SMTP id 5a478bee46e88-30c84b6c53bmr15707553eec.6.1782707420754; Sun, 28 Jun 2026 21:30:20 -0700 (PDT) X-Received: by 2002:a05:7301:686:b0:30b:fb9c:f8ff with SMTP id 5a478bee46e88-30c84b6c53bmr15707530eec.6.1782707420120; Sun, 28 Jun 2026 21:30:20 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Pierrick Bouvier Subject: [PULL v4 71/77] hw/hexagon: Add hexagon TLB device implementation Date: Sun, 28 Jun 2026 20:58:24 -0700 Message-Id: <20260629035830.1520296-72-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629035830.1520296-1-brian.cain@oss.qualcomm.com> References: <20260629035830.1520296-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDAzNCBTYWx0ZWRfX0qDoUL7J/H3B Kiuhe5r5jqlr0cqOHpiu7oBhM9l37bfKLm3bksOzdZ+dIdGvBMAaiNNwUE8K/Q6fgzwv5dmslfO GUHGgK6ZPrT9+Cr1nGMslKTsWh/JgXWuUyLtTWa46zxB6FHSPks5M6QCxea7G9wJgk6qbqTCAfw XaRVLj8M7cQ6dlux5hSVqcjH17b9RAqzVZwqvcdIdIncLl51Ec0Ghy1snk/EZFr51oQh3uFhKP+ iB7g01tTr9MA4M5LzAHI/M9JalkNY1B8mrtegqQUL1kf7IJDSj+zlZk5jObqwIxUXKZNotSj9Gv qzxGkS7sJbZBryXszgdO8RjOzA+fZquyb9gOzBdnSoL2FOXWv/+7rBsRI+uOnC9QRh1htGe4HJV /gsamm21oDjz//vILUIFTG82Er4uKFL93W5UK3cbnvPk3IA9VDhorMrylOaoQKDteiALiVebn0E ld9EvR+EKmb/inp5/8A== X-Proofpoint-GUID: c-ik7_OmYC4Mzyht8oHIU1I5ENTqAw8W X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI5MDAzNCBTYWx0ZWRfX8IFOkYnHBoBh XPoVIh0lUnueDFLOttEbhVQGLnrCrc5yfhMfPMiPO4kLrpP9nQ6JPx7BbX26H/E1EgxORWe2Eud Mo2lA7lgC1aO2S7a4SoK3SNlY8YmTiE= X-Proofpoint-ORIG-GUID: c-ik7_OmYC4Mzyht8oHIU1I5ENTqAw8W X-Authority-Analysis: v=2.4 cv=BdnoFLt2 c=1 sm=1 tr=0 ts=6a41f4dd 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=YMgV9FUhrdKAYTUUvYB2:22 a=EUspDBNiAAAA:8 a=PVkRrmxsJ_TG981LwpgA: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-29_01,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 phishscore=0 clxscore=1015 suspectscore=0 bulkscore=0 impostorscore=0 spamscore=0 lowpriorityscore=0 adultscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290034 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782707561360158500 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 Mon Jun 29 06:52:23 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=1782707494; cv=none; d=zohomail.com; s=zohoarc; b=jn8cqCoj+uKxAdPZjHs+JlDx9Bnwk6o+Og8K54DE/QeYNNSVsCUmk1Y1oh2QU1zum+uZD8xF7kfeB8Qoe1gn/fvVAnfZlZa7lvlX7ZdTERNZDpyZ8gTvd5iKF0NF+oTax1nfD3OXRXoM/UM1OZtW93EgT+GqQUSmDajVDZmE62M= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782707494; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=y6CxL32NuFJaEjknoim1Iu1/zyb3eMIE3FRb/YCDnEs=; b=e86T0Qqfk8W9yb1U+DhpEI9QVDNOdn7MtThPPW9BvLxJbJVIJw/WUIU8m5zuASdUsOpmSDiN//oDerJ/t0TIIkejk24uVkRDFMvRCy5zj4+RBLTPNTfCTeBCjaeAxM2ZF4KOQY5496ZJGsOE43uKvhQal5IXj0ksT7V58sY0MqA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782707494540946.956299487688; Sun, 28 Jun 2026 21:31:34 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1we3eK-0003rk-K8; Mon, 29 Jun 2026 00:31: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 1we3do-00033t-Tt for qemu-devel@nongnu.org; Mon, 29 Jun 2026 00:30:42 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1we3dk-0001Vf-EK for qemu-devel@nongnu.org; Mon, 29 Jun 2026 00:30:40 -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 65T4NEgd1729590 for ; Mon, 29 Jun 2026 04:30:23 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 4f27t7vajv-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 04:30:23 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-30ecfc5dea0so409176eec.0 for ; Sun, 28 Jun 2026 21:30: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-30d3af0d2e4sm21314609eec.22.2026.06.28.21.30.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 28 Jun 2026 21:30:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= y6CxL32NuFJaEjknoim1Iu1/zyb3eMIE3FRb/YCDnEs=; b=VO7VyKhk/SiaDUDm HxV66otrJr4Ly3E28czvdRf5kpulyrCkYnapqAQAgbTrrsCPrj95G0XdpaCBKz2X 6semMhTXoZ+i8tg67C8xl998ocZBS0mrNy7xjdhfzmW4AedsW8r+FbT7In9n+7BJ 2SyBDbFrniS4/gSahbbXtCAg9ITv8Jn2H00sJKkktGGIyYluI7pfA9Qk0E+z6GaF EIn9NpqqeQ93IEgTAmesWUZHOQpa5HOfldzLSqu1FAtOB1SREy7E3IFO8iqcvvfH pSwmRz0vC8C5RYzdhZF9zcHTtPM6pDssK60Vj5OymjjX7FaOMI7fPqDLt5GsTRsC t5P8gg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782707423; x=1783312223; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=y6CxL32NuFJaEjknoim1Iu1/zyb3eMIE3FRb/YCDnEs=; b=eAMU5ACySGZjeFMAoanOvHATGZ1PlvYFjqrLcq6Q/E5+49Y/Q2tZ4jQE0J56Y44r4y kgIBtFt6a4OljqJTeR52O7XneGI/TqDsjr236IlrRhpf5pAB1KsXkHaCAuw79wuhLKfA p2FO+EUc62KiYdy98YR892dXQwMT+Fdx6ijFN9+zCEsbvOqw/dBL+5kBq4dul3xDOydH LvPptGyGZM4CdslSQ3LVL1NbwwNWDYa3nxmRshHxbsbhwwh9KUjPK0HyjTzJS3wbTOZO 4dv65/BSoYk0hVNftMs+1WdYJ8b60gdhKIUa6nyrvV+f1t7yZEIINVItYdXKDo5oil86 O2Tw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782707423; x=1783312223; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=y6CxL32NuFJaEjknoim1Iu1/zyb3eMIE3FRb/YCDnEs=; b=A08DD8N67DMj4Bd+fNZ3kgQLnQtHR/5rsU7ch8ALzjYl55FoslPfHqq6EsKZIOIJWw eObRZT43Fk4YBpAuWiUU3Nehv2ydsi4++kOvRbAoVxwHUlH1CeQDS7VStrsusA38mtGm lJTKPXSjNNTPpvQ2vF+96mvUDlT88ZhDqd5NrLJoXWTmeyDOMqxjpkhK3xDoBZXBB20Q yLh5oAOOdj0cNmvZzJTIRIyz2jug4Q/xDZiTFhRx47uWwniE73/YtitXSpsfx1bajI8l Za1rMAIUx8in4FHx0tE4SENwlYkUrB5KjRgIH71ezkIex+Ul3Di6AuOqUdp0vFIs3F4I 8IGg== X-Gm-Message-State: AOJu0YyWHl1dRzEMZvCpW0yamM6DUmCR32buG/ZNy/8zdrLEIPNjAmN3 DjlrvxFZKgo1tkDo94Ds6TYDo1cGmzrJwh5zdHORamz+k0KB6FpglwR6lzQOIpAXmjBRSt4mu0n Sqt6Drs5uRKAhzHgzeTH0TvOT2K2P5fZInm17Zh2j7aYyom+GEWcq1bWIX0Vi3Ezaiw== X-Gm-Gg: AfdE7cmfU2poRv5+OMW++htMmsm42+k7M3l0YF+CMZqwPc9wCrat/NgkufI7sv4gC+V fdSVkcb1ZhGFFZdVJljqkaGOOeWmNgVloUBleik1YZKE5T/eCiK1PbxyrB1qXTzNKQNOFtqi2Cr AiuaXYn+qlt3NvWDvxcz5G0dIsCsrmAIlsvlNzfDQF46xraHWX2FCq5KRPV2iUnvy/B67PALksa yEkfASSR3KNgTpaMDAaW78SbFZqtIpt7ulXcj3ts3KEaFYgtcJ5rgN5NNxR3ho8mcXO0z+r/tjZ XIk8FVBllkYKIqekudAAiLAKY7/kRgJA43YhB1LjsivfdgHrzmQZNY8gPSeVw2LZdzLQ7DX8fSP Wg0r9vuuPw3h7Xk6RtRVfqOtLwpcoZlI7Kq7pPyyEQh6y3BNbuDkOVAWYqEs= X-Received: by 2002:a05:7300:80ce:b0:30c:ab4f:46a2 with SMTP id 5a478bee46e88-30cab4f490fmr9305205eec.38.1782707422596; Sun, 28 Jun 2026 21:30:22 -0700 (PDT) X-Received: by 2002:a05:7300:80ce:b0:30c:ab4f:46a2 with SMTP id 5a478bee46e88-30cab4f490fmr9305164eec.38.1782707421920; Sun, 28 Jun 2026 21:30:21 -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 v4 72/77] hw/hexagon: Add machine configs for sysemu Date: Sun, 28 Jun 2026 20:58:25 -0700 Message-Id: <20260629035830.1520296-73-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629035830.1520296-1-brian.cain@oss.qualcomm.com> References: <20260629035830.1520296-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDAzNCBTYWx0ZWRfX5xuvUKl8qSdS xKDpKCQeX1UsvMi+4xw+Rp0MBvHqEeLFPJVXC1px38kVNB+AtwTAUmiowzQcHz2vaD4/W3gs6Y7 2T94pXT6nkIt89VGsbq06Ew8eUlbi/s32Zy+d0EVVvTYffn0bxph/Hq6WUthly0vpKCaCR30M8C m4ADSyQy3a5/QUyKBko6GYzBvrm9+sGIKIhFWPJ1CfxVRcv1ETq1E5/MPGU+/ELWbBM6Iblki/b jQ3/0qDxvwDcDM+iXx/+efnjoQupBOtUMS7dApPnAg5lfPeQKSFc3XriDuaFhI5D6g8Maf/cj9c TRMADQwMogMHMZff9wxDOJUmxwoA6kU8bphjfi8JRoMNsw3WAWbwnCV73NZUqxnPMR4f0Ky1+4j 6eahk0M/jaeOkv10WTG/oesCgS6EDCgyLZDI/tB++gIhUrOhmXearZr1rwz+809TGVA7jnNi1XD Dqu3BwRnQqzGfM4U1Og== X-Proofpoint-GUID: i-8l4xgXeLdUIBngpzUKz-rgVc_qyKDD X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI5MDAzNCBTYWx0ZWRfX+yU8V6gyZi/5 kRs/HzbbLg7Ra0O1+QzNXQSxNTEvo6tj2M/EoGuobWW+NR7p2lcMJJN5T3JGbiu9uRbf+kIKopV jNlTfOyv9JGnoigXPx8QCKKBnf0/qMU= X-Proofpoint-ORIG-GUID: i-8l4xgXeLdUIBngpzUKz-rgVc_qyKDD X-Authority-Analysis: v=2.4 cv=BdnoFLt2 c=1 sm=1 tr=0 ts=6a41f4df 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=YMgV9FUhrdKAYTUUvYB2:22 a=COk6AnOGAAAA:8 a=20KFwNOVAAAA:8 a=EUspDBNiAAAA:8 a=eE4CN_At-pr7qPS3jZsA:9 a=hiJlUhq8NronkB9Q:21 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-29_01,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 phishscore=0 clxscore=1015 suspectscore=0 bulkscore=0 impostorscore=0 spamscore=0 lowpriorityscore=0 adultscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290034 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782707497288158500 From: Brian Cain Some header includes are modified here: these are uniquely required for basic system emulation functionality and had not been required for linux-us= er. Acked-by: Markus Armbruster Co-authored-by: Mike Lambert Co-authored-by: Sid Manning Reviewed-by: Pierrick Bouvier Signed-off-by: Brian Cain --- MAINTAINERS | 12 ++ include/hw/hexagon/hexagon.h | 161 ++++++++++++++++++ hw/hexagon/machine_cfg_v66g_1024.h.inc | 64 +++++++ hw/hexagon/hexagon_dsp.c | 221 +++++++++++++++++++++++++ system/qdev-monitor.c | 2 +- target/hexagon/translate.c | 1 + hw/Kconfig | 1 + hw/hexagon/Kconfig | 4 + hw/hexagon/meson.build | 6 + hw/meson.build | 1 + 10 files changed, 472 insertions(+), 1 deletion(-) create mode 100644 include/hw/hexagon/hexagon.h create mode 100644 hw/hexagon/machine_cfg_v66g_1024.h.inc create mode 100644 hw/hexagon/hexagon_dsp.c create mode 100644 hw/hexagon/Kconfig create mode 100644 hw/hexagon/meson.build diff --git a/MAINTAINERS b/MAINTAINERS index 5376f7d8d26..3998abaecf1 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -1344,6 +1344,18 @@ F: pc-bios/hppa-firmware.img F: roms/seabios-hppa/ F: tests/functional/hppa/ =20 +Hexagon Machines +---------------- +V66G_1024, V68N_1024, sa8775-cdsp0 +M: Brian Cain +R: Pierrick Bouvier +S: Supported +F: hw/hexagon/ +F: include/hw/hexagon/ +F: configs/devices/hexagon-softmmu/default.mak +F: docs/system/hexagon/ +F: docs/devel/hexagon-sys.rst + LoongArch Machines ------------------ Virt diff --git a/include/hw/hexagon/hexagon.h b/include/hw/hexagon/hexagon.h new file mode 100644 index 00000000000..1034b09c2ac --- /dev/null +++ b/include/hw/hexagon/hexagon.h @@ -0,0 +1,161 @@ +/* + * Hexagon Baseboard System emulation. + * + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. + * SPDX-License-Identifier: GPL-2.0-or-later + */ + + +#ifndef HW_HEXAGON_H +#define HW_HEXAGON_H + +#include "system/memory.h" +#include "hw/core/boards.h" + +struct hexagon_board_boot_info { + uint64_t ram_size; + const char *kernel_filename; + uint32_t kernel_elf_flags; +}; + +typedef enum { + unknown_rev =3D 0, + v66_rev =3D 0xa666, + v67_rev =3D 0x2667, + v68_rev =3D 0x8d68, + v69_rev =3D 0x8c69, + v71_rev =3D 0x8c71, + v73_rev =3D 0x8c73, + v73m_rev =3D 0xcc73, +} Rev_t; +#define HEXAGON_LATEST_REV v73 +#define HEXAGON_LATEST_REV_UPPER V73 + +/* + * Config table address bases represent bits [35:16]. + */ +#define HEXAGON_CFG_ADDR_BASE(addr) (((addr) >> 16) & 0x0fffff) + +#define HEXAGON_CFGSPACE_ENTRIES (128) + +union hexagon_config_table { + struct { + /* Base address of L2TCM space */ + uint32_t l2tcm_base; + uint32_t reserved0; + /* Base address of subsystem space */ + uint32_t subsystem_base; + /* Base address of ETM space */ + uint32_t etm_base; + /* Base address of L2 configuration space */ + uint32_t l2cfg_base; + uint32_t reserved1; + /* Base address of L1S */ + uint32_t l1s0_base; + /* Base address of AXI2 */ + uint32_t axi2_lowaddr; + /* Base address of streamer base */ + uint32_t streamer_base; + uint32_t reserved2; + /* Base address of fast L2VIC */ + uint32_t fastl2vic_base; + /* Number of entries in JTLB */ + uint32_t jtlb_size_entries; + /* Coprocessor type */ + uint32_t coproc_present; + /* Number of extension execution contexts available */ + uint32_t ext_contexts; + /* Base address of Hexagon Vector Tightly Coupled Memory (VTCM) */ + uint32_t vtcm_base; + /* Size of VTCM (in KB) */ + uint32_t vtcm_size_kb; + /* L2 tag size */ + uint32_t l2tag_size; + /* Amount of physical L2 memory in released version */ + uint32_t l2ecomem_size; + /* Hardware threads available on the core */ + uint32_t thread_enable_mask; + /* Base address of the ECC registers */ + uint32_t eccreg_base; + /* L2 line size */ + uint32_t l2line_size; + /* Small Core processor (also implies audio extension) */ + uint32_t tiny_core; + /* Size of L2TCM */ + uint32_t l2itcm_size; + /* Base address of L2-ITCM */ + uint32_t l2itcm_base; + uint32_t reserved3; + /* DTM is present */ + uint32_t dtm_present; + /* Version of the DMA */ + uint32_t dma_version; + /* Native HVX vector length in log of bytes */ + uint32_t hvx_vec_log_length; + /* Core ID of the multi-core */ + uint32_t core_id; + /* Number of multi-core cores */ + uint32_t core_count; + uint32_t coproc2_reg0; + uint32_t coproc2_reg1; + /* Supported HVX vector length */ + uint32_t v2x_mode; + uint32_t coproc2_reg2; + uint32_t coproc2_reg3; + uint32_t coproc2_reg4; + uint32_t coproc2_reg5; + uint32_t coproc2_reg6; + uint32_t coproc2_reg7; + /* Voltage droop mitigation technique parameter */ + uint32_t acd_preset; + /* Voltage droop mitigation technique parameter */ + uint32_t mnd_preset; + /* L1 data cache size (in KB) */ + uint32_t l1d_size_kb; + /* L1 instruction cache size in (KB) */ + uint32_t l1i_size_kb; + /* L1 data cache write policy: see HexagonL1WritePolicy */ + uint32_t l1d_write_policy; + /* VTCM bank width */ + uint32_t vtcm_bank_width; + uint32_t reserved4; + uint32_t reserved5; + uint32_t reserved6; + uint32_t coproc2_cvt_mpy_size; + uint32_t consistency_domain; + uint32_t capacity_domain; + uint32_t axi3_lowaddr; + uint32_t coproc2_int8_subcolumns; + uint32_t corecfg_present; + uint32_t coproc2_fp16_acc_exp; + uint32_t AXIM2_secondary_base; + }; + uint32_t raw[HEXAGON_CFGSPACE_ENTRIES]; +}; + +struct hexagon_machine_config { + /* Base address of config table */ + uint32_t cfgbase; + /* Size of L2 TCM */ + uint32_t l2tcm_size; + /* Base address of L2VIC */ + uint32_t l2vic_base; + /* Size of L2VIC region */ + uint32_t l2vic_size; + /* QTimer csr base */ + uint32_t csr_base; + uint32_t qtmr_region; + union hexagon_config_table cfgtable; +}; + +#define TYPE_HEXAGON_COMMON_MACHINE "hexagon-common-machine" +OBJECT_DECLARE_SIMPLE_TYPE(HexagonCommonMachineState, HEXAGON_COMMON_MACHI= NE) + +struct HexagonCommonMachineState { + MachineState parent_obj; + + MemoryRegion ram; + MemoryRegion cfgtable_rom; +}; + +#endif diff --git a/hw/hexagon/machine_cfg_v66g_1024.h.inc b/hw/hexagon/machine_cf= g_v66g_1024.h.inc new file mode 100644 index 00000000000..cc4d89b89c9 --- /dev/null +++ b/hw/hexagon/machine_cfg_v66g_1024.h.inc @@ -0,0 +1,64 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +static const struct hexagon_machine_config v66g_1024 =3D { + .cfgbase =3D 0xd8180000, + .l2tcm_size =3D 0x00000000, + .l2vic_base =3D 0xfc910000, + .l2vic_size =3D 0x00001000, + .csr_base =3D 0xfc900000, + .qtmr_region =3D 0xfc921000, + .cfgtable =3D { + .l2tcm_base =3D 0x0000d800, + .reserved0 =3D 0x0000d400, + .subsystem_base =3D 0x0000fc90, + .etm_base =3D 0x0000d805, + .l2cfg_base =3D 0x0000d81a, + .reserved1 =3D 0x00000000, + .l1s0_base =3D 0x0000d820, + .axi2_lowaddr =3D 0x00003000, + .streamer_base =3D 0x00000000, + .reserved2 =3D 0x0000d819, + .fastl2vic_base =3D 0x0000d81e, + .jtlb_size_entries =3D 0x00000080, + .coproc_present =3D 0x00000001, + .ext_contexts =3D 0x00000004, + .vtcm_base =3D 0x0000d820, + .vtcm_size_kb =3D 0x00000100, + .l2tag_size =3D 0x00000400, + .l2ecomem_size =3D 0x00000400, + .thread_enable_mask =3D 0x0000000f, + .eccreg_base =3D 0x0000d81f, + .l2line_size =3D 0x00000080, + .tiny_core =3D 0x00000000, + .l2itcm_size =3D 0x00000000, + .l2itcm_base =3D 0x0000d820, + .reserved3 =3D 0x00000000, + .dtm_present =3D 0x00000000, + .dma_version =3D 0x00000000, + .hvx_vec_log_length =3D 0x00000080, + .core_id =3D 0x00000000, + .core_count =3D 0x00000000, + .coproc2_reg0 =3D 0x00000000, + .coproc2_reg1 =3D 0x00000000, + .v2x_mode =3D 0x00000000, + .coproc2_reg2 =3D 0x00000000, + .coproc2_reg3 =3D 0x00000000, + .coproc2_reg4 =3D 0x00000000, + .coproc2_reg5 =3D 0x00000000, + .coproc2_reg6 =3D 0x00000000, + .coproc2_reg7 =3D 0x00000000, + .acd_preset =3D 0x00000000, + .mnd_preset =3D 0x00000000, + .l1d_size_kb =3D 0x00000000, + .l1i_size_kb =3D 0x00000000, + .l1d_write_policy =3D 0x00000000, + .vtcm_bank_width =3D 0x00000000, + .reserved4 =3D 0x00000000, + .reserved5 =3D 0x00000000, + .reserved6 =3D 0x00000000, + .coproc2_cvt_mpy_size =3D 0x00000000, + .consistency_domain =3D 0x00000000, + .capacity_domain =3D 0x00000000, + .axi3_lowaddr =3D 0x00000000, + }, +}; diff --git a/hw/hexagon/hexagon_dsp.c b/hw/hexagon/hexagon_dsp.c new file mode 100644 index 00000000000..ac01d359928 --- /dev/null +++ b/hw/hexagon/hexagon_dsp.c @@ -0,0 +1,221 @@ +/* + * Hexagon DSP Subsystem emulation. This represents a generic DSP + * subsystem with few peripherals, like the Compute DSP. + * + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + + +#include "qemu/osdep.h" +#include "qemu/units.h" +#include "system/address-spaces.h" +#include "hw/core/boards.h" +#include "hw/core/qdev-properties.h" +#include "hw/hexagon/hexagon.h" +#include "hw/hexagon/hexagon_globalreg.h" +#include "hw/hexagon/hexagon_tlb.h" +#include "hw/core/loader.h" +#include "qapi/error.h" +#include "qemu/error-report.h" +#include "qemu/log.h" +#include "elf.h" +#include "cpu.h" +#include "migration/cpu.h" +#include "system/system.h" +#include "target/hexagon/internal.h" +#include "system/physmem.h" +#include "system/reset.h" + +#include "machine_cfg_v66g_1024.h.inc" + +#define TYPE_HEXAGON_DSP_MACHINE "hexagon-dsp-machine" +OBJECT_DECLARE_SIMPLE_TYPE(HexagonDspMachineState, HEXAGON_DSP_MACHINE) + +struct HexagonDspMachineState { + HexagonCommonMachineState parent_obj; + + hwaddr isdb_secure_flag; + hwaddr isdb_trusted_flag; +}; + +static HexagonDspMachineState *current_dms; + +static void hex_symbol_callback(const char *st_name, int st_info, + uint64_t st_value, uint64_t st_size) +{ + if (!g_strcmp0("isdb_secure_flag", st_name)) { + current_dms->isdb_secure_flag =3D st_value; + } + if (!g_strcmp0("isdb_trusted_flag", st_name)) { + current_dms->isdb_trusted_flag =3D st_value; + } +} + +/* Board init. */ +static struct hexagon_board_boot_info hexagon_binfo; + +static void hexagon_load_kernel(HexagonDspMachineState *dms, HexagonCPU *c= pu) +{ + uint64_t pentry; + long kernel_size; + + current_dms =3D dms; + kernel_size =3D load_elf_ram_sym(hexagon_binfo.kernel_filename, NULL, = NULL, + NULL, &pentry, NULL, NULL, + &hexagon_binfo.kernel_elf_flags, 0, EM_HEXAGON, 0, 0, + &address_space_memory, false, hex_symbol_callback); + current_dms =3D NULL; + + if (kernel_size <=3D 0) { + error_report("no kernel file '%s'", + hexagon_binfo.kernel_filename); + exit(1); + } + + qdev_prop_set_uint32(DEVICE(cpu), "exec-start-addr", pentry); +} + +static void hexagon_init_bootstrap(HexagonDspMachineState *dms, HexagonCPU= *cpu) +{ + MachineState *machine =3D MACHINE(dms); + + if (machine->kernel_filename) { + uint32_t mem =3D 1; + + hexagon_load_kernel(dms, cpu); + if (dms->isdb_secure_flag) { + physical_memory_write(dms->isdb_secure_flag, + &mem, sizeof(mem)); + } + if (dms->isdb_trusted_flag) { + physical_memory_write(dms->isdb_trusted_flag, + &mem, sizeof(mem)); + } + } +} + +static void do_cpu_reset(void *opaque) +{ + HexagonCPU *cpu =3D opaque; + CPUState *cs =3D CPU(cpu); + cpu_reset(cs); +} + +static void hexagon_common_init(MachineState *machine, Rev_t rev, + const struct hexagon_machine_config *m_cfg) +{ + HexagonCommonMachineState *hms =3D HEXAGON_COMMON_MACHINE(machine); + HexagonDspMachineState *dms =3D HEXAGON_DSP_MACHINE(machine); + MemoryRegion *address_space; + DeviceState *glob_regs_dev; + DeviceState *tlb_dev; + + memset(&hexagon_binfo, 0, sizeof(hexagon_binfo)); + if (machine->kernel_filename) { + hexagon_binfo.ram_size =3D machine->ram_size; + hexagon_binfo.kernel_filename =3D machine->kernel_filename; + } + + machine->enable_graphics =3D 0; + + address_space =3D get_system_memory(); + + memory_region_init_rom(&hms->cfgtable_rom, NULL, "config_table.rom", + sizeof(m_cfg->cfgtable), &error_fatal); + memory_region_add_subregion(address_space, m_cfg->cfgbase, + &hms->cfgtable_rom); + + memory_region_init_ram(&hms->ram, NULL, "ddr.ram", + machine->ram_size, &error_fatal); + memory_region_add_subregion(address_space, 0x0, &hms->ram); + + glob_regs_dev =3D qdev_new(TYPE_HEXAGON_GLOBALREG); + object_property_add_child(OBJECT(machine), "global-regs", + OBJECT(glob_regs_dev)); + qdev_prop_set_uint64(glob_regs_dev, "config-table-addr", m_cfg->cfgbas= e); + qdev_prop_set_uint32(glob_regs_dev, "dsp-rev", rev); + sysbus_realize_and_unref(SYS_BUS_DEVICE(glob_regs_dev), &error_fatal); + + tlb_dev =3D qdev_new(TYPE_HEXAGON_TLB); + object_property_add_child(OBJECT(machine), "tlb", OBJECT(tlb_dev)); + qdev_prop_set_uint32(tlb_dev, "num-entries", + m_cfg->cfgtable.jtlb_size_entries); + sysbus_realize_and_unref(SYS_BUS_DEVICE(tlb_dev), &error_fatal); + + for (int i =3D 0; i < machine->smp.cpus; i++) { + HexagonCPU *cpu =3D HEXAGON_CPU(object_new(machine->cpu_type)); + qemu_register_reset(do_cpu_reset, cpu); + + /* + * CPU #0 is the only CPU running at boot, others must be + * explicitly enabled via start instruction. + */ + qdev_prop_set_bit(DEVICE(cpu), "start-powered-off", (i !=3D 0)); + if (i =3D=3D 0) { + hexagon_init_bootstrap(dms, cpu); + } + object_property_set_link(OBJECT(cpu), "global-regs", + OBJECT(glob_regs_dev), &error_fatal); + object_property_set_link(OBJECT(cpu), "tlb", + OBJECT(tlb_dev), &error_fatal); + qdev_realize_and_unref(DEVICE(cpu), NULL, &error_fatal); + } +} + +static void init_mc(MachineClass *mc) +{ + mc->block_default_type =3D IF_SD; + mc->default_ram_size =3D 4 * GiB; + mc->no_parallel =3D 1; + mc->no_floppy =3D 1; + mc->no_cdrom =3D 1; + mc->no_serial =3D 1; + mc->is_default =3D false; + mc->max_cpus =3D 8; +} + +/* ----------------------------------------------------------------- */ +/* Core-specific configuration settings are defined below this line. */ +/* Config table values defined in machine_configs.h.inc */ +/* ----------------------------------------------------------------- */ + +static void v66g_1024_config_init(MachineState *machine) +{ + hexagon_common_init(machine, v66_rev, &v66g_1024); +} + +static void v66g_1024_init(ObjectClass *oc, const void *data) +{ + MachineClass *mc =3D MACHINE_CLASS(oc); + + mc->desc =3D "Hexagon V66G_1024"; + mc->init =3D v66g_1024_config_init; + init_mc(mc); + mc->is_default =3D true; + mc->default_cpu_type =3D TYPE_HEXAGON_CPU_V66; + mc->default_cpus =3D 4; +} + +static const TypeInfo hexagon_machine_types[] =3D { + { + .name =3D TYPE_HEXAGON_COMMON_MACHINE, + .parent =3D TYPE_MACHINE, + .instance_size =3D sizeof(HexagonCommonMachineState), + .abstract =3D true, + }, + { + .name =3D TYPE_HEXAGON_DSP_MACHINE, + .parent =3D TYPE_HEXAGON_COMMON_MACHINE, + .instance_size =3D sizeof(HexagonDspMachineState), + .abstract =3D true, + }, + { + .name =3D MACHINE_TYPE_NAME("V66G_1024"), + .parent =3D TYPE_HEXAGON_DSP_MACHINE, + .class_init =3D v66g_1024_init, + }, +}; + +DEFINE_TYPES(hexagon_machine_types) diff --git a/system/qdev-monitor.c b/system/qdev-monitor.c index dfc95a08c10..00fed791cce 100644 --- a/system/qdev-monitor.c +++ b/system/qdev-monitor.c @@ -71,7 +71,7 @@ typedef struct QDevAlias QEMU_ARCH_SPARC | \ QEMU_ARCH_XTENSA) #define QEMU_ARCH_VIRTIO_CCW (QEMU_ARCH_S390X) -#define QEMU_ARCH_VIRTIO_MMIO (QEMU_ARCH_M68K) +#define QEMU_ARCH_VIRTIO_MMIO (QEMU_ARCH_M68K | QEMU_ARCH_HEXAGON) =20 /* Please keep this table sorted by typename. */ static const QDevAlias qdev_alias_table[] =3D { diff --git a/target/hexagon/translate.c b/target/hexagon/translate.c index e0418ee990d..77235916f4b 100644 --- a/target/hexagon/translate.c +++ b/target/hexagon/translate.c @@ -32,6 +32,7 @@ #include "translate.h" #include "genptr.h" #include "printinsn.h" +#include "exec/target_page.h" =20 #define HELPER_H "helper.h" #include "exec/helper-info.c.inc" diff --git a/hw/Kconfig b/hw/Kconfig index c109f5537b2..c92ca2b13a3 100644 --- a/hw/Kconfig +++ b/hw/Kconfig @@ -53,6 +53,7 @@ source arm/Kconfig source cpu/Kconfig source alpha/Kconfig source avr/Kconfig +source hexagon/Kconfig source hppa/Kconfig source i386/Kconfig source loongarch/Kconfig diff --git a/hw/hexagon/Kconfig b/hw/hexagon/Kconfig new file mode 100644 index 00000000000..cdf7770a305 --- /dev/null +++ b/hw/hexagon/Kconfig @@ -0,0 +1,4 @@ +config HEX_DSP + bool + default y + depends on HEXAGON diff --git a/hw/hexagon/meson.build b/hw/hexagon/meson.build new file mode 100644 index 00000000000..f528d2bc4ab --- /dev/null +++ b/hw/hexagon/meson.build @@ -0,0 +1,6 @@ +hexagon_ss =3D ss.source_set() +hexagon_ss.add(files('hexagon_tlb.c')) +hexagon_ss.add(files('hexagon_globalreg.c')) +hexagon_ss.add(when: 'CONFIG_HEX_DSP', if_true: files('hexagon_dsp.c')) + +hw_arch +=3D {'hexagon': hexagon_ss} diff --git a/hw/meson.build b/hw/meson.build index ef65ba51950..7fa81db453e 100644 --- a/hw/meson.build +++ b/hw/meson.build @@ -3,6 +3,7 @@ subdir('alpha') subdir('arm') subdir('avr') subdir('hppa') +subdir('hexagon') subdir('xenpv') # i386 uses it subdir('i386') subdir('loongarch') --=20 2.34.1 From nobody Mon Jun 29 06:52:23 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=1782707506; cv=none; d=zohomail.com; s=zohoarc; b=BOFTNnexxiCcZyYzinCuB6uv+LYcO47d1+NxkMNgUl0mAy4+AlqbtOpp3UM69PZsWG4btWVwBxgcrY5uQT2IJTA+CVPMxdsG5aIM5r5JzDEIAQr7WLHPeg6waC+4ydCyX1BusO/fr+uIhvqeYzvfSDHmSJpG76siaxyhcU6e090= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782707506; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=koogbpqsRfa0PrvfbI4x1+QqWqwbbpCsK4Ya9bbJIn4=; b=ie2VKeqLu2fV64c2HqBWJcd6YcLtumpGnPfdJ1XNs48/cTJllD2m3m48nbDH+rNXRa/7VrWCEhmsJhw8pzUrlOOZM/YI76vfDIt73M1OBPNtmiqMexrIYToGGhse+20HIuXgoyAgN4aY+0M2aD+musICzEC2QL8egUnUL/q189Y= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782707506393579.7328671499954; Sun, 28 Jun 2026 21:31:46 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1we3eG-0003ou-T1; Mon, 29 Jun 2026 00:31: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 1we3dn-0002xN-9O for qemu-devel@nongnu.org; Mon, 29 Jun 2026 00:30:40 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1we3dk-0001W3-Ep for qemu-devel@nongnu.org; Mon, 29 Jun 2026 00:30:38 -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 65T4NHDs1771453 for ; Mon, 29 Jun 2026 04:30:24 GMT Received: from mail-dy1-f197.google.com (mail-dy1-f197.google.com [74.125.82.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f26tumctc-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 04:30:24 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-30c0d568830so13505789eec.1 for ; Sun, 28 Jun 2026 21:30:24 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30d3af0d2e4sm21314609eec.22.2026.06.28.21.30.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 28 Jun 2026 21:30:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:content-type:date:from :in-reply-to:message-id:mime-version:references:subject:to; s= qcppdkim1; bh=koogbpqsRfa0PrvfbI4x1+QqWqwbbpCsK4Ya9bbJIn4=; b=QI ZTgDxBTlikgC1eyUw6cSi+DXObY3gPjiRbTBUz5g48AZkAtrtMTlFpZ9wRumYuj5 +S4RPEfqLwKG0iWzkBj5Hd33swAJBrKnj3BtII+FI/fLEB3bYkJ5HYyZsqlY0WBW VJH8nMm6NB+/i1TU9PL4R2Nz7noR52Nxko2i44gkSgzyTgMmZcXG64R+XSLoh5ji Gft9Ek2bTf9MuD7oYCjVih0x4IOeibhrBcHSGjCpGDVGwvh1xWWUvAWBdfXA0Bd1 LhjpCUTUgt4Gup0ZgZWvO2dVjK39W1qa7qs3Re7hOpcvPhxRtuXNatwtYqKYaxxX wgjGj4oJjoCwsnJx5e7g== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782707423; x=1783312223; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=koogbpqsRfa0PrvfbI4x1+QqWqwbbpCsK4Ya9bbJIn4=; b=EgTzW0mHLQPeTGxltyiYhw1Ehw0SeEFIAVvBfm+ud3zPItB/6x+JFHlqCb+yqpHT4Z yUR3np+orKKuG6hKPDWre+Rhub/Wh+w4bJhhQ5vtS3pfCayUH8Z7HmM8NjNRV6FV9wg6 DWLqSoa4rf+PmuckxLudFlDl3jEO3J4vdXsUYpyT+UF4aQ2BH9MDq/MTcMGdv15EhbrZ 3kqCpiye+p6yFu9vSw1jY2xCnOBhTylAEp2hkwOPy/pDIzvrBfE5mILNKwMxWaE87WrS t21o7Wcy86fAu1w/aShWsiRqPSKoWGV62E4UHWq9E7Uaid3YCZmp6p5ff9mp4z5ET05z c3hQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782707423; x=1783312223; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=koogbpqsRfa0PrvfbI4x1+QqWqwbbpCsK4Ya9bbJIn4=; b=RQ/tEfVu//5VYrwAluQnn4UcqPhn6+v4pfLQ1YW6Gi47aFSmIiFh3LqK6Xj/G5loTN /Lp4l9fYWV+QRCXgLvhG7BXxy3favO6oaT//izLBfq2GtsypS/bc+1H7iqykjo1KUZ6D IvdK/dt5ifWhUBAmlo3ViClpokosS/aZTNgjH+nj5ptrTdbAfzuyCc+FexyoCoeQA3sU 99Ex0Wcm7QhsgZblPxYRCIfeDdznhXsc74sB4PpCJ6ku9GD5Vt6djS9BGh6WKaV0IHYL kKFycTYKGm1wmk96E7PixFOpduX1ndtcLre1EDlxHXwN9n7xGpIGJbxlYFAQGB4N+jNF O24Q== X-Gm-Message-State: AOJu0YyXgxSY37yw9VNboc3hlvsrUGiXNYKX1s4oc5F54qC5C8kG0lV+ 2HEC2Y74qh09ogE9fRY92JuqfqrnD0HNttKjgsqld9VLRPgbWnFfaWSXBJQJNPMbcWemb0lJXoN Z7Ko7rssCIZNAddbOQ/nhtIQjp+xey8g6lGmuY0M0EVJ2kEyx0J2N4PDjMn2cLWxr2w== X-Gm-Gg: AfdE7cmgmG1c1AGFn4yLolKekdGK+DeP37JNIcWQ+wheZu/jSeQ4WlKj7FcU3O+5PAh gBkhLpnNIralVAI2o1L17/XF35gTizGm5mw/flQ0fCZKpszaFRpCFBqvSdS1zpgUcM0bl1utpRB hr9cEuYq/qloleJHu9eTrD18N52/k7iNe1NxwSnoCp4HIuql9LQawhMCCxfSTBWhxhH43L5tRWN n9XqthE/N/+zQvleztM0O8lcT+c6ZYNBMdU+4Lrqi1QRxbhrsJscA7AVR+DnUtefOP2TLc77VS6 HUa6y2N++R9e3Py4EhKapXoFJh24F/aUnrGdha9q1Q8GZGV1dAXUbMP7tQkauV8q0chMZuUZrcP EbQUKsz6L9KDIiCpQqZxSe6UzwZhur19dmcy+DCBJGscKA6WkA75r6n/aM2I= X-Received: by 2002:a05:7300:548:b0:30e:952b:ddf4 with SMTP id 5a478bee46e88-30e952be013mr5674662eec.3.1782707423461; Sun, 28 Jun 2026 21:30:23 -0700 (PDT) X-Received: by 2002:a05:7300:548:b0:30e:952b:ddf4 with SMTP id 5a478bee46e88-30e952be013mr5674639eec.3.1782707422960; Sun, 28 Jun 2026 21:30:22 -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 v4 73/77] hw/hexagon: Add v68, sa8775-cdsp0 defs Date: Sun, 28 Jun 2026 20:58:26 -0700 Message-Id: <20260629035830.1520296-74-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629035830.1520296-1-brian.cain@oss.qualcomm.com> References: <20260629035830.1520296-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-GUID: --NVk41cjGkq0vKGIIdeJ3WjJSpCf9-z X-Authority-Analysis: v=2.4 cv=A8Rc+aWG c=1 sm=1 tr=0 ts=6a41f4e0 cx=c_pps a=Uww141gWH0fZj/3QKPojxA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=eoimf2acIAo5FJnRuUoq:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=KKAkSRfTAAAA:8 a=EUspDBNiAAAA:8 a=G5se95cPlkO2hgD9IGUA:9 a=QEXdDO2ut3YA:10 a=PxkB5W3o20Ba91AHUih5:22 a=TjNXssC_j7lpFel5tvFf:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-ORIG-GUID: --NVk41cjGkq0vKGIIdeJ3WjJSpCf9-z X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDAzNCBTYWx0ZWRfX9z6ODXOLnICH 86iNG0QE1fsDWGhedktHNiEfRzJfrATS29GeYPXBUHPsrFYqqIvUT37tNqYAUA7woNf1ZWM8DZW 8IR/rEAxa8YEJZzJnWm6OtDDUzUvNZhC7C1UctzBkaeJuruhfdKYeWpjiYg/TKkDzUxFk4uB1ta h9KqGgtCZXe9DJ5Atq+o/HVuBac5t5TpGpCFscicy96PS04XRg1ibAqeeQ2e9LOwxqOEDtFpGdL n8tnfRXGQqaAtYGCSb4YkdwHz5xoBhwJ313inXiDXzCDpbI/sl7iyz35/VDk/0XK+Bcvr5VDHhU Qy2SwJtVyZQLek4JMbRC4SS8vkxTwi1J35LulFzJQybbBYT1pCc2VNdUF6rT3zjHNJTxiM6IHcv I4bXqmnf9JAEZ+wmNV1wXRBKUqaetDBs1kb6I1PU2mX/EIMxYXgxqYAxZZg/bcZcFdDovwvQTrP bloB6Ahj7nWKpouhvVA== X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI5MDAzNCBTYWx0ZWRfX5VMploHCu+ND ybdOLINEcMil7TaDLqt19ex8Ei/yDwczB1WffvPtxoA0UuTjk2xoIyWu4Cbcn0JpFoU1k5NicaC eoKZ+DpMANafKW9UWRxXEndGni8Fj1k= X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-29_01,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 adultscore=0 clxscore=1015 impostorscore=0 priorityscore=1501 suspectscore=0 malwarescore=0 phishscore=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-2606290034 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782707507306158501 Content-Type: text/plain; charset="utf-8" From: Brian Cain Acked-by: Taylor Simpson Acked-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Pierrick Bouvier Signed-off-by: Brian Cain --- hw/hexagon/machine_cfg_sa8775_cdsp0.h.inc | 64 +++++++++++++++++++++++ hw/hexagon/machine_cfg_v68n_1024.h.inc | 64 +++++++++++++++++++++++ 2 files changed, 128 insertions(+) create mode 100644 hw/hexagon/machine_cfg_sa8775_cdsp0.h.inc create mode 100644 hw/hexagon/machine_cfg_v68n_1024.h.inc diff --git a/hw/hexagon/machine_cfg_sa8775_cdsp0.h.inc b/hw/hexagon/machine= _cfg_sa8775_cdsp0.h.inc new file mode 100644 index 00000000000..442cbe3be31 --- /dev/null +++ b/hw/hexagon/machine_cfg_sa8775_cdsp0.h.inc @@ -0,0 +1,64 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +static const struct hexagon_machine_config SA8775P_cdsp0 =3D { + .cfgbase =3D 0x24000000 + 0x180000, + .l2tcm_size =3D 0x00000000, + .l2vic_base =3D 0x26300000 + 0x90000, + .l2vic_size =3D 0x00001000, + .csr_base =3D 0x26300000, + .qtmr_region =3D 0x26300000 + 0xA1000, + .cfgtable =3D { + .l2tcm_base =3D 0x00002400, + .reserved0 =3D 0x00000000, + .subsystem_base =3D 0x00002638, + .etm_base =3D 0x00002419, + .l2cfg_base =3D 0x0000241a, + .reserved1 =3D 0x0000241b, + .l1s0_base =3D 0x00002500, + .axi2_lowaddr =3D 0x00000000, + .streamer_base =3D 0x00000000, + .reserved2 =3D 0x00000000, + .fastl2vic_base =3D 0x0000241e, + .jtlb_size_entries =3D 0x00000080, + .coproc_present =3D 0x00000001, + .ext_contexts =3D 0x00000004, + .vtcm_base =3D 0x00002500, + .vtcm_size_kb =3D 0x00002000, + .l2tag_size =3D 0x00000400, + .l2ecomem_size =3D 0x00000000, + .thread_enable_mask =3D 0x0000003f, + .eccreg_base =3D 0x0000241f, + .l2line_size =3D 0x00000080, + .tiny_core =3D 0x00000000, + .l2itcm_size =3D 0x00000000, + .l2itcm_base =3D 0x00002400, + .reserved3 =3D 0x00000000, + .dtm_present =3D 0x00000000, + .dma_version =3D 0x00000003, + .hvx_vec_log_length =3D 0x00000007, + .core_id =3D 0x00000000, + .core_count =3D 0x00000000, + .coproc2_reg0 =3D 0x00000040, + .coproc2_reg1 =3D 0x00000020, + .v2x_mode =3D 0x00000001, + .coproc2_reg2 =3D 0x00000008, + .coproc2_reg3 =3D 0x00000020, + .coproc2_reg4 =3D 0x00000000, + .coproc2_reg5 =3D 0x00000002, + .coproc2_reg6 =3D 0x00000016, + .coproc2_reg7 =3D 0x00000006, + .acd_preset =3D 0x00000001, + .mnd_preset =3D 0x00000000, + .l1d_size_kb =3D 0x00000010, + .l1i_size_kb =3D 0x00000020, + .l1d_write_policy =3D 0x00000002, + .vtcm_bank_width =3D 0x00000080, + .reserved4 =3D 0x00000001, + .reserved5 =3D 0x00000000, + .reserved6 =3D 0x00000003, + .coproc2_cvt_mpy_size =3D 0x0000000a, + .consistency_domain =3D 0x000000e0, + .capacity_domain =3D 0x00000080, + .axi3_lowaddr =3D 0x00000000, + }, +}; diff --git a/hw/hexagon/machine_cfg_v68n_1024.h.inc b/hw/hexagon/machine_cf= g_v68n_1024.h.inc new file mode 100644 index 00000000000..0c79689bc21 --- /dev/null +++ b/hw/hexagon/machine_cfg_v68n_1024.h.inc @@ -0,0 +1,64 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +static const struct hexagon_machine_config v68n_1024 =3D { + .cfgbase =3D 0xde000000, + .l2tcm_size =3D 0x00000000, + .l2vic_base =3D 0xfc910000, + .l2vic_size =3D 0x00001000, + .csr_base =3D 0xfc900000, + .qtmr_region =3D 0xfc921000, + .cfgtable =3D { + .l2tcm_base =3D 0x0000d800, + .reserved0 =3D 0x00000000, + .subsystem_base =3D 0x0000fc90, + .etm_base =3D 0x0000d819, + .l2cfg_base =3D 0x0000d81a, + .reserved1 =3D 0x00000000, + .l1s0_base =3D 0x0000d840, + .axi2_lowaddr =3D 0x00003000, + .streamer_base =3D 0x0000d81c, + .reserved2 =3D 0x0000d81d, + .fastl2vic_base =3D 0x0000d81e, + .jtlb_size_entries =3D 0x00000080, + .coproc_present =3D 0x00000001, + .ext_contexts =3D 0x00000004, + .vtcm_base =3D 0x0000d840, + .vtcm_size_kb =3D 0x00001000, + .l2tag_size =3D 0x00000400, + .l2ecomem_size =3D 0x00000400, + .thread_enable_mask =3D 0x0000003f, + .eccreg_base =3D 0x0000d81f, + .l2line_size =3D 0x00000080, + .tiny_core =3D 0x00000000, + .l2itcm_size =3D 0x00000000, + .l2itcm_base =3D 0x0000d820, + .reserved3 =3D 0x00000000, + .dtm_present =3D 0x00000000, + .dma_version =3D 0x00000001, + .hvx_vec_log_length =3D 0x00000007, + .core_id =3D 0x00000000, + .core_count =3D 0x00000000, + .coproc2_reg0 =3D 0x00000040, + .coproc2_reg1 =3D 0x00000020, + .v2x_mode =3D 0x1f1f1f1f, + .coproc2_reg2 =3D 0x1f1f1f1f, + .coproc2_reg3 =3D 0x1f1f1f1f, + .coproc2_reg4 =3D 0x1f1f1f1f, + .coproc2_reg5 =3D 0x1f1f1f1f, + .coproc2_reg6 =3D 0x1f1f1f1f, + .coproc2_reg7 =3D 0x1f1f1f1f, + .acd_preset =3D 0x1f1f1f1f, + .mnd_preset =3D 0x1f1f1f1f, + .l1d_size_kb =3D 0x1f1f1f1f, + .l1i_size_kb =3D 0x1f1f1f1f, + .l1d_write_policy =3D 0x1f1f1f1f, + .vtcm_bank_width =3D 0x1f1f1f1f, + .reserved4 =3D 0x1f1f1f1f, + .reserved5 =3D 0x1f1f1f1f, + .reserved6 =3D 0x1f1f1f1f, + .coproc2_cvt_mpy_size =3D 0x1f1f1f1f, + .consistency_domain =3D 0x1f1f1f1f, + .capacity_domain =3D 0x1f1f1f1f, + .axi3_lowaddr =3D 0x1f1f1f1f, + }, +}; --=20 2.34.1 From nobody Mon Jun 29 06:52:23 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=1782707658; cv=none; d=zohomail.com; s=zohoarc; b=LYkIYnQGormNy6qE30vBJkRXxaTiHuCHk/ARcWDnBpy8pCCLpeJO9bMaTu8ZSK/Ub1XvVFbgk39Bd4Qq1YzE8w986b8oqrAdnqFzYseFWnDTpyOIk9Q3vSnyTaC1Fm6v86pL64GZp6ANkNMQni2+5ffN9kyKL0Ew2wg2Mv7YG7g= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782707658; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=SfSLET5POX54xZ1l9r22xGKJOfF2DUu+EJZSs5aP5JIAdfA8Xli/GcNpM+Lremjjvu+3M98I1lxrgyKgPYwrU847YrTw3aM827JSUp0QhmvzK354Gy8sImjvY+uZ5Exuwx4A8ZubzuE6SXPm/6BV+WOn7YviBVefBoHjqftcAvI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782707658362960.2489381556505; Sun, 28 Jun 2026 21: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 1we3dv-0003KV-R8; Mon, 29 Jun 2026 00:30: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 1we3do-000346-Uq for qemu-devel@nongnu.org; Mon, 29 Jun 2026 00:30:42 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1we3dm-0001WA-1u for qemu-devel@nongnu.org; Mon, 29 Jun 2026 00:30:40 -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 65T4NO3H1766946 for ; Mon, 29 Jun 2026 04:30:25 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 4f270a4g14-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 04:30:25 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-30cb2bcbf7cso2341878eec.1 for ; Sun, 28 Jun 2026 21:30: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-30d3af0d2e4sm21314609eec.22.2026.06.28.21.30.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 28 Jun 2026 21:30: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= rn3nrXF+9M3gB0m5jL2ztn1CUMGQuvNbgLv/5EwohVs=; b=cn2g6HLHUH0YbOhC 4Z1xOphuKRKbU8c2YcSFeXGk/lhbb05VR3rUd6aGRQmmSeHZV9ZRWbfa6M0r2SSI wyoPMmN8XEfo0N4/2savDgxYJY3J3uzTqW7I7aYYBtRcoytq/WUgem9Xxhp6IAlm QvL3lralZxsp6umrEC70K+RaVt1ruOfUbMtFkn3RKymgf/ZIaB27sBQgNN3L//Dp ki9X9T9OS6yZLZPiYBYZMmSRV6rU0LFJmCN8F3nJ7Fjl/gcInjksLyZiHOFaQWId YYk4MloDtWCUB77CnGCUIpngLODk93f58SYLLU06r/+7RYOJSP7aMGiCNDiayc6+ kkICRw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782707425; x=1783312225; 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=el7hfBd0aJnmH3b6czpAbcRTp1cd0/59kiQU8D6ies/uwsRvQfqQxLv7ZEbxuhybcW VThImPwUruvz/yAjAj1T6lAiBYpOvTbQV7OQZRFvQJOP+KJSOo/CKFgG1Ubq/eKNWnJc /4mHoRhtFrPgkrODnzscKwTSb72eyWJTUL/AD3fkG1cTqSUejpOghbGAditK/lZW5wVv y6BfTja35i6daSC+U9m68y0ic+fJRjMIWTlecCasYLMZdKEGkkm5/hngUPWJKAuiwRcA qkQ8Q8M0P9TgG1C1ugQQj4yz9fSMuZgZMlqWGbBtytpF69LvVbBM897hCT+DppLbN+EK a37w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782707425; x=1783312225; 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=NOMjWxMVu+0zpVSnX2jKO+1JChyzmrLKvHJu5kWKIKI4EGIOOYBvl18Ea26vG9cabO +nlkgOlrfo2meFxqozok7MTmaaKIWq6/rc1xzNBbg3w2lxa3v7vk+GHPc35rVbE3y1ja fJIefcMucF4tiNE+tG/4Ddw6fMMX310hRDdImNVguSSHRUPyPuWNoVcSIkJTIVyojK+0 dns/TvigAZVfAm0V2boii3UaDB49Jr5dCqU/W5h/V65NuQ3XML8FZtAnykIk9OMWHLGG qxVM2douqhnusjeVW3T9/ZHUQ9g9c99xD6sqfK3BxfuecCjojBDtLAjXHADsm3gjiJnV EgGg== X-Gm-Message-State: AOJu0Yz1Y1hbMQ+0I0ikTYPHPJ3Cyl7HcilWyTDEQHzsgZ1LBITSUYEr k2dUn6caDpnyZgqCQmA81rnffHI4dRAxMqQy/u0SCdJt7aF5LJVERlBH+sNYV3yvWRR2el7SoQk /KrPLYuzL6Y4EajtkVav0kpnY9JUF0HWF/gE2ZuzTgN6xQhxakLF6aM2lOoytjePF5g== X-Gm-Gg: AfdE7cl5/5yhetm+q8AA3BY129E0TuQUTiUn6wYjU9VcBPb+t+kLii2yWExQWUEiejV MvFJJneppelwTJ5TFlhzngNIZpr9Oohk8d2qe02V5GJfRX8SgLtwzr52vO7rvsaOf4rwEi9ZFSv jvSCXG/18rcEnUt1unSxf9SWCz81kTnyopA4L9sjomfAhtd3VDBFvmRfFU+dSt6nQxK8srk+K/Q gRkeavp4t68zGBzZFEsylK5DXCkqCzaC8Bk8zzBkyQDHgANQJ1HGOFWyNFiRnulpiz4UFsZNeRb 3AYnMgcWvE9q9lI9la1YRGi/x+U47IAll0LzyRPZyRiu8wBVTg8voo8gyc4w9mkaOSTNgfqIvV5 LAMUQjmMVMD61wnMcazO8oIdmVgGz705QqvdnAdAhRxOnIC6epfknnjlzSfg= X-Received: by 2002:a05:7300:e8a9:b0:304:bce8:fa30 with SMTP id 5a478bee46e88-30c84b2c0c8mr15278189eec.5.1782707424547; Sun, 28 Jun 2026 21:30:24 -0700 (PDT) X-Received: by 2002:a05:7300:e8a9:b0:304:bce8:fa30 with SMTP id 5a478bee46e88-30c84b2c0c8mr15278170eec.5.1782707424065; Sun, 28 Jun 2026 21:30:24 -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 v4 74/77] hw/hexagon: Add support for cfgbase Date: Sun, 28 Jun 2026 20:58:27 -0700 Message-Id: <20260629035830.1520296-75-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629035830.1520296-1-brian.cain@oss.qualcomm.com> References: <20260629035830.1520296-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDAzNCBTYWx0ZWRfX+fPAHmgQcpAQ pUujq1UI9d1UUV4nmPc8zHtzllGHp7Irp8orxYAEivpUPA/lfkSMBiljsnfh4DA1XI6CylWFuWD TsFY/6UJDEPXLho4wMLwQFM/J3Jrs+9F2dKjh5d5em17si08sBOYnNbYl8QeoJ1sj1q1l0Rymn3 g2hsRIUO+miW6NjSZbVtd9uqc+NFAZnROEJNLWL1tLTq1jdV4u2Hk865Fw1A3fZQ5w7NYM0TmY9 L66doTM2Uc94hUkpNvILm420GBFuCxk8bN2fa1ZeHbWTQbOUHMjQl6GcwuaqcsrSnKnw3jUjanF DDEK/vsF+tOOSvNqBvFbCrIZhhJIZHaE4rk1Vy9fjOwzhSl/tyYvU13rl1QoUYPX011MiICQmGJ vCxLA1Yh9c2kRnURguGDx7Ug6g9AiKVQ7+Ndp8YcvPn+2CWErX8JbweKAlTGcnpsuPU9Z/CU8Y6 Jk8ZPNpZqRUBtIZYFOA== X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI5MDAzNCBTYWx0ZWRfX1UmV4DLcceGp kRzDuepo2Y2Yxd0vdMBCJI3jl3ifS84p0Gg4ju3e7Q9thUvpiwzxKUiCWfoX2UIGY3/lS8fys5u 5VGXOtjGiv5+kN0z6WRbjKTIQcxfX80= X-Proofpoint-GUID: rtJ9ekdlLaGyfNS1NM_7Fb93O0a3UAwv X-Proofpoint-ORIG-GUID: rtJ9ekdlLaGyfNS1NM_7Fb93O0a3UAwv X-Authority-Analysis: v=2.4 cv=Fe4HAp+6 c=1 sm=1 tr=0 ts=6a41f4e1 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=yOCtJkima9RkubShWh1s:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=7umkzkyUMl8fFcUskJ4A: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-29_01,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 bulkscore=0 clxscore=1015 priorityscore=1501 impostorscore=0 adultscore=0 lowpriorityscore=0 phishscore=0 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-2606290034 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782707659778158500 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 Mon Jun 29 06:52:23 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=1782707723; cv=none; d=zohomail.com; s=zohoarc; b=S7VfMSqhYuzeGJjVSIXUnTnXGB0FDw7ZFN1MYi50iG8DF+fJlVbgOEPgeqh5BRr5XoBzyk/62byYAnPBZMzCOufzuWHsuioe2XKiKDEvOITsXzKpxb0dACKCdSskIXDOwra2rvFD3GuIATZ22f8LOrd9SbPEVaW12ZW5yZzlyGk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782707723; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=DM7++QGB9GmTMFbDy49xEx0+EvG3fHygx+cTnWTwfqg=; b=TaXBbylrIQ7LZqUhlTtpomB7P019ujot0ZA5p8BNZ8Hax6EP2p6fRoDjHI5smDe3FM3ywBhqDDmJKXc4o+tIUxrC13FBTke5HNP1iU5coLzLyFZznqqPCi0B8ldJeR8fyXpBL0gnFG8z96yxa93BvqfMYKsSpagn4E3D4rb1NN0= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782707723807399.8725066333923; Sun, 28 Jun 2026 21:35:23 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1we3gH-0006zT-UG; Mon, 29 Jun 2026 00:33: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 1we3do-00034A-Vk for qemu-devel@nongnu.org; Mon, 29 Jun 2026 00:30:42 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1we3dm-0001YG-Al for qemu-devel@nongnu.org; Mon, 29 Jun 2026 00:30:40 -0400 Received: from pps.filterd (m0279864.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65T4NDGM1718813 for ; Mon, 29 Jun 2026 04:30:27 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 4f27pf4a0e-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 04:30:26 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-30c95b0e22aso10829816eec.1 for ; Sun, 28 Jun 2026 21:30:26 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30d3af0d2e4sm21314609eec.22.2026.06.28.21.30.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 28 Jun 2026 21:30: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=DM7++QGB9GmTMFbDy49xEx0+EvG3fHygx+cTnWTwfqg=; b=lq VH301jrJlNp44xJhV59FHu/Wkh0emOA3kxaimM/a7VHJunephivAhgkhUFhhTgWL AVW1Fp9GurAZR7Yw4FM9Wk7X1TV3MQUyQG3i0l2dFhaTdStys/lqK73/cZxLpys6 nI+/Cs7KB55skUKqk1jrKvI2LwSvRqrCpX6OnWFvgPDtLuOjg+IoOmhZWVUxybYL HblgwxL/r8u+IS2u9iuekdOvQ+XIYgA1YUVg4v6E5CcKDZxYMf17phRQKHyQts8p 7G3gkZloNhHUZ7bP3iss3z2ZN1yPn2JPOBepFxTzvDyCqaBvCn8dMpfs+sWc6bm3 TKVbk2TP7N9eT4pl9Tpw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782707426; x=1783312226; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=DM7++QGB9GmTMFbDy49xEx0+EvG3fHygx+cTnWTwfqg=; b=CzUxznsl7hoI9Esi/EWDZbTp0Jor6/0Uv1loznXqVkR84gwjsUSycGBFPXOM+K9ihR bSzKzkD5KLJE46hLZ329zBuNK8j4ohZ1y5TYw1RedaQBkBWAJgeSXE45jEeW09Ns62af 541k+NyWZhx8dq4JvKpOviIQt68to68YJPxz40W43ArjVpLsRnvJXmU4Dei2P+85Yqp3 oewkTom+9Blq+lQJ8fsCXBYSzI9YfUXustBPH0hygtmgnBdMCMTxYJi+6qkczhYe3yA9 /n0RIzOiS74V8vrtvfK39BdpiuJ3OhfGkBZhAclbZfijYNBFvmqjbNyNzjYQbio7B0cJ rJXw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782707426; x=1783312226; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=DM7++QGB9GmTMFbDy49xEx0+EvG3fHygx+cTnWTwfqg=; b=J/WKEmbIK/rDizwS3qXnh9UoTZgyh5+B+IcyUdPZYr2itAsXwUTvb25cOFHu7oTOHg 0i77bb52Jv1BzJfOEUTSvdF/57fGBkLhTm48cDva9g9H5Ixyt+coB7LvzrvmDAjgVZHk LZiqlw/QDiLZBZVH67PLtP1iz0YhJ/VNjq4bw6P7L560rBe+pKfOFXp8J3oV9CL2aaUc gkh1InxAxohZ+aaUzkptK5uo27mrAE839uY33bynmsN1GrejKbEODjiwg81nUwiKbpsh nVd8lyKj+soYe7IcSIsB4VBy07s1ArNiSp008w198xh2/uFNkzSHkE69WQ4CDG93lquk AM0A== X-Gm-Message-State: AOJu0Yy1lfMoexWWRF71XQ94diYQINWasmLi2DTTKMulg+oPak3z5jZT hV0aeZT6N+8BscdW7rEZX0UWbg3vCylULXpshjKCp5CuMzFy8CW4H4OFrXwxe0eo2dGWuD+HH7o 2wVKRrI6i1hxTxOgcko0Pq8fk2bzuQ+KErYF23IvacuTlMj+PbgRhzvs+majt+qc8uw== X-Gm-Gg: AfdE7cmKvyhtUE04piNpzEm6qtklXCLZ5nINzK+k5bRf3MPBg5HrDh4xPpffk1zFA0P q2Dsis04mQCmNqbX6wF/eKC0rhH7w4SdGnapT5yRbah01agcXAiMWlVLUwkXd0GyCAcIsCL+ffh FCVb6PPp3gicKR/x6zxCyGAPg4P7dkfrLQNbSJkuwzvPYF0vGCzL/Z5WJWE/+rOBwZlHYX1yTv9 zmW9jwqrloaV+hA4Y6KUMuImSr7CtUDtc8yz4zUDeDVrjO1TefLj4EBkLSA8M58v9zD+xcpHsfl YVDT4TVziZ87sJfgbV7XaeEAD9z0gsNWG2AN62qZGo/Y1f2aURMYQQKiIJOKQIlhdv/FLkDyvFG eInedzpOUIHPCzXm7S27yV711CIBbQqHMcf7b2kIsw7NUWBu79XUQSVnQ68g= X-Received: by 2002:a05:7300:6ca5:b0:30c:283:9018 with SMTP id 5a478bee46e88-30c84bfe0a2mr14016586eec.11.1782707426093; Sun, 28 Jun 2026 21:30:26 -0700 (PDT) X-Received: by 2002:a05:7300:6ca5:b0:30c:283:9018 with SMTP id 5a478bee46e88-30c84bfe0a2mr14016558eec.11.1782707425547; Sun, 28 Jun 2026 21:30:25 -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 v4 75/77] target/hexagon: add build config for softmmu Date: Sun, 28 Jun 2026 20:58:28 -0700 Message-Id: <20260629035830.1520296-76-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629035830.1520296-1-brian.cain@oss.qualcomm.com> References: <20260629035830.1520296-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI5MDAzNCBTYWx0ZWRfXwZNZTWSAs5Dh 3ILEpVGenH7rQ5GkRxtg/pEh99QMYaYrHhTXW+vH5a0wkwARTbtnwNsKmacwDlmOXyG2kRFMuNk mtcAP6zxX1rY4xEEPhyVE/nTvIv0jHk= X-Proofpoint-GUID: zjztOIhSfU5eVNf4lnM3xNKQofTiLAU- X-Proofpoint-ORIG-GUID: zjztOIhSfU5eVNf4lnM3xNKQofTiLAU- X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDAzNCBTYWx0ZWRfX5PKTDFSbr++w 71xXmVU9cOoJyxE5sU97+ZdkzcuuEM+u8UsUdEgFPbETwd06PZP8K0D8K9gNr/ZOWvEQml9j+oy 9XdPWDjLsrhc/7kNNV5tRSkG57JxU2IjZat/7ymC4+zuNNDiKa4gsmd+TMePyUplh5aMYK08XZh yWHk0IDKWoMPM87+1yi+OpYqeXKMT+K8H/xtI9z1VTGDpF4SUDtyIznG55GSnArjytah0Vh6ibh j9LlAKzzTZSgMR4Yf5LA86bk57vwKChOt/q4uk03JhuMMa/saeDx5etvFtyIz0sl7L6gDDAaOjr rDPmHuRzhIOJPb+cufY2OV5+n60dKG01d3ZFCzfse2T6w0bV2iISoQVSm/Wuy37EB6Ib6t4RF/E QtLtf2eu7XoP/asBN5RM1VJ0n8H1XkjneOHogkXxP0nnwSv6QQVzwr/MTgyBJKyN54YdJB5rIwa CClOWPkUpKMW9XqM3gQ== X-Authority-Analysis: v=2.4 cv=R7Mz39RX c=1 sm=1 tr=0 ts=6a41f4e2 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=DJpcGTmdVt4CTyJn9g5Z: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-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-29_01,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 adultscore=0 clxscore=1015 impostorscore=0 priorityscore=1501 malwarescore=0 lowpriorityscore=0 spamscore=0 bulkscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290034 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1782707724069158500 Content-Type: text/plain; charset="utf-8" Reviewed-by: Taylor Simpson Reviewed-by: Pierrick Bouvier Acked-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Brian Cain --- MAINTAINERS | 1 + configs/devices/hexagon-softmmu/default.mak | 6 ++++++ configs/targets/hexagon-softmmu.mak | 7 +++++++ target/hexagon/cpu.h | 5 +---- target/Kconfig | 1 + target/hexagon/Kconfig | 2 ++ target/hexagon/meson.build | 13 ++++++++++++- 7 files changed, 30 insertions(+), 5 deletions(-) create mode 100644 configs/devices/hexagon-softmmu/default.mak create mode 100644 configs/targets/hexagon-softmmu.mak create mode 100644 target/hexagon/Kconfig diff --git a/MAINTAINERS b/MAINTAINERS index 3998abaecf1..3b305d8ed0c 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -256,6 +256,7 @@ F: linux-user/hexagon/ F: tests/tcg/hexagon/ F: disas/hexagon.c F: configs/targets/hexagon-linux-user.mak +F: configs/targets/hexagon-softmmu.mak F: tests/docker/dockerfiles/debian-hexagon-cross.docker F: gdbstub/gdb-xml/hexagon*.xml F: docs/system/target-hexagon.rst diff --git a/configs/devices/hexagon-softmmu/default.mak b/configs/devices/= hexagon-softmmu/default.mak new file mode 100644 index 00000000000..f7fc874eb0c --- /dev/null +++ b/configs/devices/hexagon-softmmu/default.mak @@ -0,0 +1,6 @@ +# Default configuration for hexagon-softmmu + +# Uncomment the following lines to disable these optional devices: + +# Boards are selected by default, uncomment to keep out of the build. +# CONFIG_HEX_DSP=3Dy diff --git a/configs/targets/hexagon-softmmu.mak b/configs/targets/hexagon-= softmmu.mak new file mode 100644 index 00000000000..fdfa29b4f39 --- /dev/null +++ b/configs/targets/hexagon-softmmu.mak @@ -0,0 +1,7 @@ +# Default configuration for hexagon-softmmu + +TARGET_ARCH=3Dhexagon +TARGET_XML_FILES=3Dhexagon-core.xml hexagon-hvx.xml +TARGET_LONG_BITS=3D32 +TARGET_NOT_USING_LEGACY_LDST_PHYS_API=3Dy +TARGET_NOT_USING_LEGACY_NATIVE_ENDIAN_API=3Dy diff --git a/target/hexagon/cpu.h b/target/hexagon/cpu.h index 4a12dc04727..7694fd91fa8 100644 --- a/target/hexagon/cpu.h +++ b/target/hexagon/cpu.h @@ -38,10 +38,7 @@ typedef struct HexagonGlobalRegState HexagonGlobalRegSta= te; #include "hw/core/registerfields.h" #include "qemu/bitmap.h" =20 -#ifndef CONFIG_USER_ONLY -#error "Hexagon does not support system emulation" -#endif - +#include "target/hexagon/reg_fields.h" =20 #define NUM_PREGS 4 #define TOTAL_PER_THREAD_REGS 64 diff --git a/target/Kconfig b/target/Kconfig index 3c73e3bae01..0288a3f4164 100644 --- a/target/Kconfig +++ b/target/Kconfig @@ -16,6 +16,7 @@ source sh4/Kconfig source sparc/Kconfig source tricore/Kconfig source xtensa/Kconfig +source hexagon/Kconfig =20 config TARGET_BIG_ENDIAN bool diff --git a/target/hexagon/Kconfig b/target/hexagon/Kconfig new file mode 100644 index 00000000000..7e556f35063 --- /dev/null +++ b/target/hexagon/Kconfig @@ -0,0 +1,2 @@ +config HEXAGON + bool diff --git a/target/hexagon/meson.build b/target/hexagon/meson.build index fd3d69feffd..59cb09c1070 100644 --- a/target/hexagon/meson.build +++ b/target/hexagon/meson.build @@ -235,6 +235,7 @@ decodetree_trans_funcs_generated =3D custom_target( command: [python, files('gen_trans_funcs.py'), semantics_generated, '@= OUTPUT@'], ) hexagon_ss.add(decodetree_trans_funcs_generated) +hexagon_softmmu_ss =3D ss.source_set() =20 hexagon_ss.add(files( 'cpu.c', @@ -253,6 +254,14 @@ hexagon_ss.add(files( 'mmvec/system_ext_mmvec.c', )) =20 +hexagon_softmmu_ss.add(files( + 'cpu_helper.c', + 'hex_mmu.c', + 'hex_interrupts.c', + 'hexswi.c', + 'machine.c', +)) + # # Step 4.5 # We use flex/bison based idef-parser to generate TCG code for a lot @@ -262,7 +271,8 @@ hexagon_ss.add(files( # idef-generated-enabled-instructions # idef_parser_enabled =3D get_option('hexagon_idef_parser') -if idef_parser_enabled and 'hexagon-linux-user' in target_dirs +if idef_parser_enabled and ('hexagon-linux-user' in target_dirs or + 'hexagon-softmmu' in target_dirs) idef_parser_input_generated =3D custom_target( 'idef_parser_input.h.inc', output: 'idef_parser_input.h.inc', @@ -390,3 +400,4 @@ analyze_funcs_generated =3D custom_target( hexagon_ss.add(analyze_funcs_generated) =20 target_arch +=3D {'hexagon': hexagon_ss} +target_system_arch +=3D {'hexagon': hexagon_softmmu_ss} --=20 2.34.1 From nobody Mon Jun 29 06:52:23 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=1782707745; cv=none; d=zohomail.com; s=zohoarc; b=XIXoIcZyMAs9hvny4CnuEAPt7uwOMSqv0qnemyLovID8P6jnOC7k3KjWFMvf6xwSUESui52ZSeqPTA/rINxDaMoDv8G5fGsmksdbSUcQFWVugwLQib+YvNLnDYLNnC1vewHWmit4zQn/fPEIz0WL25Wq6ND+32GFa2rO+L92IQI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782707745; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=RXNQIp39k/HcSwqMOus6whtF2u+FyKZmyNUCaOVVpiXlkWLffWJZ8pI5BcOQPDfyiHqM7lDayWQbSY1HS6iZMClu60k9ReEL+HHOG3bV/5hkJu/zOMnWcm8Spf10ooUHiQ+RsWw6z6VBc7guc3v/44+FgmY4rlevw5Wlbuxek2U= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782707745508598.583174145289; Sun, 28 Jun 2026 21:35:45 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1we3fv-00068a-3B; Mon, 29 Jun 2026 00:32: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 1we3dq-000368-LH for qemu-devel@nongnu.org; Mon, 29 Jun 2026 00:30: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 1we3dn-0001cA-QM for qemu-devel@nongnu.org; Mon, 29 Jun 2026 00:30:42 -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 65T4NJEb1780994 for ; Mon, 29 Jun 2026 04:30: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 4f26u74gm5-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 04:30:28 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-30c62861b3bso9462297eec.0 for ; Sun, 28 Jun 2026 21:30: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-30d3af0d2e4sm21314609eec.22.2026.06.28.21.30.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 28 Jun 2026 21:30: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= yceAhRCtNZOpbaG7j5M0kMisT3HAlYGvNKxciZB2G+k=; b=JATXcy6DDfLPNNZh 0/c+WZIK78aPk+iVQz1Q//h0HuwbUeh5tzAnMMpbYhQTc/ffcKZJbNf/QnRMxBtl hqj7yMKz0j1FIhq8qE0hcbicmCWUYLPdkPaYzMAmctvDRvwMl4CTMdlAIONvRoQ0 TCCN8abcw7b1OC/IlLsDmPqyt6I4cuE8TL1FEz4Zzu7bgdYCU2OsquJvn8cNCi8u jI3zn82yHxDYuZiypSw2ybyrERGe2ZU/QIdN7J+WYMJgK+04QJeIC6DtIZrGlcSk NtweDjSIBWD/oL8awTSnAnvzi9QRUNHFyouKwCH0A1NO+TbbCQIHQYFnbOPZSava rEgbxw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782707427; x=1783312227; 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=TTEaA87gqd4mlMPwg/DEauFNF3JCK3NrVvpGnCe4LasZWnyxfWnCHuR63qeybslz1F jdX3pV+QgsT3YulULEeB94eoonnVN1VDJdBhcs/Ff/rTAfjPcUgbo7wgy6PElYbIGPYD gMFXlEDl3M+jloyKywmGhzJoMjnMHsl4x18bllHkjAODRvQDTiwFjsYzfD7Au+yAIQAk xw6+XWMFuJtQ20kJXFLDsDVa4kOU45UdR6Mulhaa77yXFD0Gvj7DomjqoXrc1HxOfGi8 eqxOWsY9F8nN1JHlq8NiS7B5LMYC6Qiio29gfjN8LxTuZVACAhlbxdeVCONLMinnELB5 cIjQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782707427; x=1783312227; 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=H1wOU79/CEbY/5cusy+kd97tGiF4wsOZHREQ7c7ZRnc3S+e3MmW+59VraCHuLzjyAX w2pcW3JWMihx7OEvmCEJykPuOYzhKcrmpvEMRIOoKyUh6vt4U7daml/MaPV5SJpsy7pK lWsvuN3w7Mn3TflZn6dM7S1tndvOz3IM5zkUZ8LCAqhw39zL0XTwwy26hutl1OEtmqJd 5p8PFZBQoIC8zAAcimthBJ0xNgem8JmUKZ6Tnopws9P9M9M0PsgfjP7K5MfU+h4BraKg fKiSDTVtPEvAWRm3HUI8ptsYyvufdnNMJe7PRCi8EVYTptfNDUWaSDRYcElk3poViAoh xKzw== X-Gm-Message-State: AOJu0YyDtbOnKz8cn7avTusAZr+hLdlO0urwPdO3A8a059l9/FVYlQez mUZq6pEuPCyDPqHUnCCLSTg+savC/z6MdSeC+Sa78rQK//uxmZwPePBZyfCUswkKb+wKbxQIMVN dvxv2bo2WqI8fOjQOhj/V7maiYd3VeEbDqBkadUJe7MpAh1b8QwlWl9QY2Eupbo/xog== X-Gm-Gg: AfdE7cmmFnbrzH9J/j/Y5duNdvuWaC129fCzRSwJr6dJcBvlpDe32zbW81pQkd6tzSe w63QglabTpPybWJj0ShPmuYohpOnC1YX0s4hR7vH0ldsAvg1VK1F1HKpGSeVCMET6EHRhVeNhHb 4yNhJsUGeoWgMldQhNZTrGflvOcps52juupz6tGftV7cRQlSAAL3VVKoSbPKuHmqWZT2HRbRZDm djdSLOsts3vY4gpQD3QQFU/Yc36Zc1EuGsYp79OMSkXnHeoMS0WN/pS8dsIZUeOLBsfBEmJJhAF I3cgh8aqhhpFMmj38gUszJDeSswpCN3hfrNN3fzG5jufXKvoYk3edIy9doQWtQVfBRfei1ztb00 VEbb7qfdqY7GUkuGKOm2WLQPvfKmrUo7+CYma5ngtfIHOuB480UtoV7NvFUY= X-Received: by 2002:a05:7301:2bcb:b0:30c:ab97:d7ac with SMTP id 5a478bee46e88-30cab97dc21mr8004489eec.38.1782707427370; Sun, 28 Jun 2026 21:30:27 -0700 (PDT) X-Received: by 2002:a05:7301:2bcb:b0:30c:ab97:d7ac with SMTP id 5a478bee46e88-30cab97dc21mr8004469eec.38.1782707426744; Sun, 28 Jun 2026 21:30:26 -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 v4 76/77] hw/hexagon: Define hexagon "virt" machine Date: Sun, 28 Jun 2026 20:58:29 -0700 Message-Id: <20260629035830.1520296-77-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629035830.1520296-1-brian.cain@oss.qualcomm.com> References: <20260629035830.1520296-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: AW1haW4tMjYwNjI5MDAzNCBTYWx0ZWRfX3UaAxK9jppAn xM1AY8t1sPhkJqDwdqIPHNXuqw76LM81pJ5/mH6F+ckc8jjMGXc/7iyyMnV3ACykv5f4HiGHd3u OEKGUNnvzGXLy41bXP5fGuLayllfvU0= X-Authority-Analysis: v=2.4 cv=ftnsol4f c=1 sm=1 tr=0 ts=6a41f4e4 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=CPh6EXbgsUTdwlFVG8oA:9 a=QEXdDO2ut3YA:10 a=scEy_gLbYbu1JhEsrz4S:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-GUID: fJmP3BpO1-8yNDLNkvDRQxRA4mN1_cRc X-Proofpoint-ORIG-GUID: fJmP3BpO1-8yNDLNkvDRQxRA4mN1_cRc X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDAzNCBTYWx0ZWRfX0BIRF7Hj1em+ Bzsf3/Ryq6iLHNTIqZYA+ziuRW6ak/4muIPVYd0c3UzO22sWx3oAYcfIJyG4EbyyFOlSomOKwjo JNtlSxmi5n5gvaeXV30vVypI7fyBOfR4/72HFr4XXmUx0bmi32haondoQC57Ip1b6DSIj4MkNiI 5hmMeSYJTFqyOx4LE/DkvDWtdLkZiEuEfpkOuD/KfDPL5D3htIxxoOmjLqYaCkHpZ+RewUiTn0u hb9LSt1KltbIF8WGKW90Yw8VKVaJfHNDGyyjcHZzQ7QXL3JErEEVV/AZxaa0k1ruwglID7TiWxa gUnZRwtf9zTxo5EBtGBWLsxqkvN9iO9HSljZTkI7aYG8CXRyuZBO68kT7kBBa1XGrh7hQxjKEgT GzYn8bAcjpXtH+sX/UQYxuDUe6BHxlmIs51RCZHj4OsNcFjrfwVrbq9p0D6Z1HyPe//hE48+A70 mfDzJKJDUK5fl8ma5ng== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-29_01,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 malwarescore=0 suspectscore=0 lowpriorityscore=0 impostorscore=0 priorityscore=1501 adultscore=0 bulkscore=0 clxscore=1015 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290034 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782707746339158500 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 Mon Jun 29 06:52:23 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=1782707737; cv=none; d=zohomail.com; s=zohoarc; b=HDcoWAEjiJNkTYOUQoc62XaJN+hfxQ69pkhXPIejqyoBt5W8Ryixfp5qimHvYmoUEfu9e8XAfH6f34AawK2Hxj66VweTRLfuopJpi6ZJZPgbHhyCDpgfxZoqMrrRIHdqBUJGthm5ieKeA5nMZMjDUI0RzQKn7uCan0Ynkrb3aR4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1782707737; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=6Wt5EJgewH9h32VqnTvpeUdkce3hlYMJmq6TBx1dEGg=; b=dqcmvx4lLt9TQZOQUkIoGXDVmqylVuP7Lscq4ny2xd1FHVKtDOZtsp04rwDTgxJRj5TBNRl+5uQHSuUwf6Vr0BQDfDH8ML9If5qLa/9a/r8Hb7lpDnC5covZvbauRRTZGCNN0sQIwAEdbqVkeXsUDb3ylYz0TbjDloQkh6aogrs= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as 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 1782707737585300.39618056829295; Sun, 28 Jun 2026 21:35:37 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1we3en-0005Fh-Fy; Mon, 29 Jun 2026 00:31:41 -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 1we3dq-000356-GD for qemu-devel@nongnu.org; Mon, 29 Jun 2026 00:30: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 1we3do-0001cP-Qy for qemu-devel@nongnu.org; Mon, 29 Jun 2026 00:30:42 -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 65T4NTRv1777377 for ; Mon, 29 Jun 2026 04:30: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 4f26x8mga4-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 04:30:29 +0000 (GMT) Received: by mail-dy1-f200.google.com with SMTP id 5a478bee46e88-30c42d96713so1771264eec.1 for ; Sun, 28 Jun 2026 21:30:29 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30d3af0d2e4sm21314609eec.22.2026.06.28.21.30.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 28 Jun 2026 21:30:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:content-type:date:from :in-reply-to:message-id:mime-version:references:subject:to; s= qcppdkim1; bh=6Wt5EJgewH9h32VqnTvpeUdkce3hlYMJmq6TBx1dEGg=; b=Ez QGniSR6VsE0JuKKC0hBq17HaFCoOs1bqG666oHO3oU0BjkgHdCoj4qvgC5ts25SM op7pvx1HTWfkGZVFAvUsw1yZcZXYelPmQ0cHwYYMtlK4VhgSp4nUPAIpQf2PrFr0 0IcTvkd8lmjVUND5R5TDm2D+w+LgdG50Y34sHRdiNrIYMWGrNEwfC73RXWKHf8TR lY/iUu0GD2+5AXIZocVqFmfahjd9Wj5oJCJHZaNBPYwQPU2/mTdZK2i3Gh0+p840 HrLYuCqbQYLutMXCclm7e/3QunBM+qweeI5e0DgY2Y3MVZ0p0LiFhXVGEzZwn7KE vegVNodbzreaxwItGbBQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782707429; x=1783312229; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=6Wt5EJgewH9h32VqnTvpeUdkce3hlYMJmq6TBx1dEGg=; b=jFawMbclTkagjkY6vInKKtex3Uv2ir2fOSIkOrfAzMZmCSAaK1kaKFFY7CpiduXfqy +5B986ytOASIkrOgyE1EWPI7S6//jcsyy0Ff+XB5mhTV9N7V3M6tFSO8BWbH91CB3CQh 6V7MpKqyAiUui55lsTMr+k71+fE+yCiIobdIqUDuwzRli2Fap5jtCNoH6acrr0AHPfzH mgggAU2AGIpdSDEVre96Vf/AO9d82xmMQ0dASQR/rgNHFRVvUMcHeV05sCfOhzrv1565 m7H1LX+c8X8V8TXzizk9zqnfFaOPxofh5Y2Qy5Cn5sITXtydHa2U6u7C6uWaDMOpGQnN UYAQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782707429; x=1783312229; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=6Wt5EJgewH9h32VqnTvpeUdkce3hlYMJmq6TBx1dEGg=; b=EdZs2h93Up4lRgD1Lnn5Dxiqa0sI7itE9dSfkgKMtZy7ZO2yGk0bYqTBgj7hAb6ArD 7qttICh/aTuBQN8Ve7jJy3vY0GCKal3AL9YRUqiVQ1OthcxCaCSLqrDNV96jabdj3HkG rYYe13l5dJ7S1EeIQ4fvU31nDSVEIX1URO0hOYY9FKN73ctQNvKtV9Kx8yMvoFt128/i rcTbsVk2nSrAxN9b4njgHniUXZw7GPgwBIWEQ4oXUK9o5ERXd5VgbMrU9bwAwLV3K9Bk qliwngdb86H6fPC88MZUbF4ofQALo4qrAhLBUmmPAbDt/Ol37kVQXeF5e3SjRxOpDAPA q1xQ== X-Gm-Message-State: AOJu0YxovnFdLI8pwAAffHTDrsEyvU/x26A3lUr1Gv2GlfYHmHVCe9z5 YAf1aEjVRDoO+TYD2ilqNgi1uqNLwLzobIbu57GMjzyduWbnq5dfCyA0vBL6wSdjivEKUqlX5U3 kWjE0lVjBMht+MIlg2O1oLvg3k7mmN5XQI/yFj3dHtolArjLIw9QriGgKHQrH7FNLTg== X-Gm-Gg: AfdE7cnCuiVE4Fllf8ZrCcNXurYBT0c6G/u0mQN+FQiE/UGOOXraxJ6dWEM43tepmrm tsKE5ZwOitCTXKMluq1iUGYtkEMaav+TTRBj47EwrxY2FamCw+tg94QV8Qg6BcI8vGrHkoMciz1 gd68UttnU9VZ+Ua0hETdWf4Ghkf5QZLZeq19pXW0S64H4akpJzisq8isu7O1Yzq5R2U13EweQ/l x/BkQNs/yThG6COg/XF4WVxZExrAU6XCcE1tFBpIHoWFNHTn4v3RcAxkKgafnaZolYFFkGI1fgB UqMelBstrKxitlgbwc+JIDk0ytARPunL3XketmX80YTfLzmIxVbt70soVFr+m95XN6brXAEh7Sv fAPXohf6KY+p6Pi5rFDKp0RAzdQesW6Sd8RKtVqcr2Hby75eWuluJGNUO87c= X-Received: by 2002:a05:7300:4316:b0:2f2:6dde:df66 with SMTP id 5a478bee46e88-30c84f3ed92mr17448822eec.22.1782707428830; Sun, 28 Jun 2026 21:30:28 -0700 (PDT) X-Received: by 2002:a05:7300:4316:b0:2f2:6dde:df66 with SMTP id 5a478bee46e88-30c84f3ed92mr17448796eec.22.1782707428228; Sun, 28 Jun 2026 21:30:28 -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 v4 77/77] tests/qtest: Add hexagon boot-serial-test Date: Sun, 28 Jun 2026 20:58:30 -0700 Message-Id: <20260629035830.1520296-78-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629035830.1520296-1-brian.cain@oss.qualcomm.com> References: <20260629035830.1520296-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI5MDAzNCBTYWx0ZWRfX31q1lcziLMqu +xtfpz6X1Naib5e62R2Zh8n11skEYxaQOdBqzIkgw6nSD3itFGkx5l2KsNB4lHwGc/x53qcCwgQ yobQs7ZXeVqmXt4eo+NR6qIRRt+aRGo= X-Authority-Analysis: v=2.4 cv=D+N37PRj c=1 sm=1 tr=0 ts=6a41f4e5 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=KKAkSRfTAAAA:8 a=EUspDBNiAAAA:8 a=_K2MQWaM9sUw3x3I4k0A:9 a=QEXdDO2ut3YA:10 a=6Ab_bkdmUrQuMsNx7PHu:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-GUID: aa5JAUs6Hxxydi8WOo8VBXrkNoRs2ygo X-Proofpoint-ORIG-GUID: aa5JAUs6Hxxydi8WOo8VBXrkNoRs2ygo X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDAzNCBTYWx0ZWRfXx51L/4T+vZaJ bZUIr1NURW2fKnGAtdc3eECYVDV79F7HVtE9scnw9AAFR9Tj5SkQIhkrPcIIdSxZSvVnh6g88wZ nEMndO2DQvcSaGcAQDg41I8mi6y/9zBiU/FJmWU+5Vl/hCjU5RVJUOHgPNZQsG4C0fi0MlxvnEb U4mbdJ+7KKko14PctI2IAvnLCftJdSP1M2x+pohVHPhNhxvD9muXLT9ha+JYnXHQkwGrt+RDGLQ vY+clHzVyajOSJO878+k3IIzHnPws1NBh76nX0ruAlezV8cWdBq9HaKuvY+U3YsUQ4snNpTw2v7 fBorewxpfCCMBvxJB0sjDJ9sv6sfVZbL0m5mRsjyIAlwvYl8QvwszdYiCMofLrru84c8WMpRFQ+ cBVSzbOU0o1puz9tVYh3rGrpWuxxus8m0Gd0jg5H3sSaGb7T5DoBof8EwOl4aCJs7qGijJiuP1T dF1rMpxgEXoT3qUwNFA== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-29_01,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 clxscore=1015 suspectscore=0 bulkscore=0 impostorscore=0 malwarescore=0 lowpriorityscore=0 adultscore=0 spamscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290034 Received-SPF: pass (zohomail.com: domain of gnu.org designates 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: 1782707738096158500 Content-Type: text/plain; charset="utf-8" Add boot-serial-test support for Hexagon architecture using the virt machine. Reviewed-by: Fabiano Rosas Acked-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Pierrick Bouvier Signed-off-by: Brian Cain --- tests/qtest/boot-serial-test.c | 8 ++++++++ tests/qtest/meson.build | 2 ++ 2 files changed, 10 insertions(+) diff --git a/tests/qtest/boot-serial-test.c b/tests/qtest/boot-serial-test.c index bcd0a9c50e7..37fee7a91c4 100644 --- a/tests/qtest/boot-serial-test.c +++ b/tests/qtest/boot-serial-test.c @@ -142,6 +142,13 @@ static const uint8_t kernel_stm32vldiscovery[] =3D { 0x04, 0x38, 0x01, 0x40 /* 0x40013804 =3D USART1 TXD */ }; =20 +static const uint8_t bios_hexagon[] =3D { + 0x00, 0x40, 0x00, 0x01, /* immext(#0x10000000) */ + 0x00, 0xc0, 0x00, 0x78, /* r0 =3D ##0x10000000 */ + 0x54, 0xc0, 0x00, 0x3c, /* memb(r0+#0) =3D #0x54 Write= 'T' */ + 0xf8, 0xff, 0xff, 0x59 /* jump 0x0 ; Loop back to sta= rt */ +}; + typedef struct testdef { const char *arch; /* Target architecture */ const char *machine; /* Name of the machine */ @@ -194,6 +201,7 @@ static const testdef_t tests[] =3D { { "arm", "microbit", "", "T", sizeof(kernel_nrf51), kernel_nrf51 }, { "arm", "stm32vldiscovery", "", "T", sizeof(kernel_stm32vldiscovery), kernel_stm32vldiscovery }, + { "hexagon", "virt", "", "TT", sizeof(bios_hexagon), NULL, bios_hexago= n }, =20 { NULL } }; diff --git a/tests/qtest/meson.build b/tests/qtest/meson.build index e154abb05d2..822e0bd2869 100644 --- a/tests/qtest/meson.build +++ b/tests/qtest/meson.build @@ -296,6 +296,8 @@ qtests_riscv64 =3D ['riscv-csr-test'] + \ ['iommu-riscv-test'] : []) + \ (config_all_devices.has_key('CONFIG_K230') ? ['k230-wdt-test'] : []) =20 +qtests_hexagon =3D ['boot-serial-test'] + qos_test_ss =3D ss.source_set() qos_test_ss.add( 'ac97-test.c', --=20 2.34.1