From nobody Sat Apr 11 18:34:29 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1775676668; cv=none; d=zohomail.com; s=zohoarc; b=FO3OOlixsMIMeav3hlaS/AuBXM6QsetmQIpKpDLCGdhoU/N8xMN2d5I4ZtaKrFCNKHXqZw46tzCV0MhTeDMYgiSlv0WrXElxSPjgyOwQD5nWNaXGD8Hx/vr4z2T2m31/M0xSc5qNgay9tdKGPoxhQg56xsGtopMIIRVt/tshnaw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1775676668; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=7jxkk2sWTnge936nkYK0El/Q5cgEUJH6TW4dEtKN/20=; b=bLMJYPhbUAPAXEIXZYpqjQUbhu3RIeLPkdlKWSzCET0ybchSJ/opkvn2jW4yxmx8kSv/ck5kGZDap9lN+7P/xGJFVCctoriGYumoUEySqtDlhqUlmHWD1VnaavzkY7qQHzYw5JgcC715JzbWNYydmjQGYi4VrTpLBMgkLbP5VMQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1775676668276204.36586591378102; Wed, 8 Apr 2026 12:31:08 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wAYTz-0008PP-0Z; Wed, 08 Apr 2026 15:22:35 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wAY4j-0006WO-8k for qemu-devel@nongnu.org; Wed, 08 Apr 2026 14:56: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 1wAKOl-0005Yg-9f for qemu-devel@nongnu.org; Wed, 08 Apr 2026 00:20:17 -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 637KP4Q8251791 for ; Wed, 8 Apr 2026 04:20:11 GMT Received: from mail-dl1-f72.google.com (mail-dl1-f72.google.com [74.125.82.72]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4dd8x996w4-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 08 Apr 2026 04:20:10 +0000 (GMT) Received: by mail-dl1-f72.google.com with SMTP id a92af1059eb24-127133794b6so9493071c88.1 for ; Tue, 07 Apr 2026 21:20:10 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-12c14a371b1sm6480362c88.13.2026.04.07.21.20.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 07 Apr 2026 21:20:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= 7jxkk2sWTnge936nkYK0El/Q5cgEUJH6TW4dEtKN/20=; b=Dt+uLGyAjgAXxMNz MAcEa2zFpHQWcHjkubwKs7C4Esk0o+lVm2VGYOEW//K0DJPbYb+M+jBXIvcvDVl3 yeoy+SZ9CtLySeD173kJBm2K2CrGiO7iWQB+tLnFc/R0VLVQ7W4qqgIxBKenZH86 vWLJwTf8XMzqEkgl+e8FZLk+WtGpr0l5uZBLZqrLegwNz9walMT+uzcl01/OVxIG Z4bR+SeLSkec4IiNbilE32TOr8oBD35zIqqWgXSZg88i6D7cnoYpHybogOUV9cQY 5erJ0XdqcMBr27k3lU4RFBxTANY45UKvtLZPlJw8zVbx7sXiFSYBtkmZhMXjhX8E zgbr3w== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1775622010; x=1776226810; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=7jxkk2sWTnge936nkYK0El/Q5cgEUJH6TW4dEtKN/20=; b=iyczIh/sIWjLIIKUBBLizE4iSYgS9KQ2r2x0UkMu4rAfy01YG0VUU6ZwsIEzPJqhoS /qv3xYZ1Ga68zKfdK8Zdj1fmp1kvyTvYntf+56pxg6wGkeCDTydPw0W5mNebSDNO7ZZk 0PCYP2QfjQ5ckTg6sKvj8N8Q0gpBO/OLBl7/siEhXO3O+3QoSGgqtH+gmka3TKfJunzq VvvBv67HWdcrQhf8wLJwE4l5hWqLg5e7hEc5fsqf8gj4NwRQsLqnNfLFZbnRN+dcmQMu BbIX9RIqWbwshRA413hrAeAN47dqqRSriPqWZFFAyW+vIJ0MDhh/wiU6QhhlgXm2POhC QzEQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775622010; x=1776226810; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=7jxkk2sWTnge936nkYK0El/Q5cgEUJH6TW4dEtKN/20=; b=kK/D4mhFAh83iI9fcCkOHtVzuo/m7nJq+2QB1DacmvbtxIFlx6L5GtSQbYZNNkn4Il nEiqL3LhrosYGEMWmsIKd6t/ewZp4oSCOzh/OPZwpqk8biXSlyh0jRvWVYPmCV+/6GiQ TtT2/bOaR6c1lkQ3tPAzcqH674xXSs22yimId0asQcE8TjiK8mkZ/in5Hd6Bfen/cH2k aMX2bx2fkujydr3bKPk9wB4vtXbe+vqmPjHvtW0hXVD6uVgCUfuyPLZiv6HvAa/Uh47A pP8GDwy70qv39KXGOcHE5HY70oOeF7br/SDaJ0whYdrhk/sC5PmG3P0wW/zWdi0iimN4 9w0g== X-Gm-Message-State: AOJu0Yz6tKD8z0bqLDRytcN2WIvmfcg43yr8uIkD1sB4V+FtEkVkFG1A TK7IGF1GSdfOsWjdvLO/QYruMnEanw+b3KOfIkmqfjJMV1KHny2yIp8qLUIer90KnH3ijkDhciX knm5U9GcHS+s6rUxx5DPSjTdcyCn/ZZAbR6jI939C38tD4boiGXPnTyVktFzb5E2xMQ== X-Gm-Gg: AeBDietf3xeT93XuolyGNMo3E48n7kwTlRBlgnVllEAw2FGFVJkPDlnuhBrKbPR8LVk 8YYZgU7vr4t5refGMfnA1ohPexTbFtYLNASiGiDrKn/sL4FPIBSy3RmLa+/m4ovbK9x5kMm3n3W 8hMVCe2Ej/GNpPq/j/hHSNRp7sO+vIMQrFIK2CKiT1rrapWxV4CWGq2I3Y/vyA4OAU+/RR9qhu3 snpurUhJ/buo6LpMsOfafO6N7unkqva1UNh2Cn/UDySFFsGwBdJ5B7dnAlenxrnLfWnHLvh3rGo 8XelyXUY/J2X/MMjj5uSABvEdOAd8L8o+sIpYnaCdY3CT5FPTOf2doUQkAk0l79zZi17aAbMFH7 9IntGmpzY5XwzvdcYmXs1fZ+OiS8jYMeSMfhcQUAARklVeYITjMEiNv47rNicZnFXMmrtTA== X-Received: by 2002:a05:7022:b9c:b0:128:e0dc:6428 with SMTP id a92af1059eb24-12bfb760ba4mr10001403c88.17.1775622010150; Tue, 07 Apr 2026 21:20:10 -0700 (PDT) X-Received: by 2002:a05:7022:b9c:b0:128:e0dc:6428 with SMTP id a92af1059eb24-12bfb760ba4mr10001389c88.17.1775622009606; Tue, 07 Apr 2026 21:20:09 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, philmd@linaro.org, ltaylorsimpson@gmail.com, matheus.bernardino@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, Brian Cain Subject: [PATCH v4 01/28] target/hexagon: Implement {c,}swi helpers Date: Tue, 7 Apr 2026 21:19:26 -0700 Message-Id: <20260408041953.1899532-2-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260408041953.1899532-1-brian.cain@oss.qualcomm.com> References: <20260408041953.1899532-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=Rr716imK c=1 sm=1 tr=0 ts=69d5d77a cx=c_pps a=bS7HVuBVfinNPG3f6cIo3Q==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA: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=KN34Fzpn9o_w8YhA2GgA:9 a=QEXdDO2ut3YA:10 a=vBUdepa8ALXHeOFLBtFW:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDA4MDAzNiBTYWx0ZWRfXyo9K0stYF9Pu 3Qir9MoYEn4KLRi0ClfSWZWn3ZZZ9YJM3qn/3eh0TxC04cYsSeHCsLsuBlxZJEs0ijqBWYO7q6O f759Fnr3e1dAyEA+Igz8+ViAR4+ossLiBcGhiSSaUSby8+kRZNDOhLc7Oad/RxappOt7estT8EO p3R3FNfo2EYy5en23hztkeYhpW7KMVAcGW/uu5Ir7HFV26gnxIma3xgF9XpUgjbCZha2ilxj8lM mcz7Vaz5rlDEMONQeyJfOhHSJwP08FLWGxTCqTACyAHY3Jw+ODuxqEsk9xeKvNhLfwb5CpNKiPJ CAsyrVsu5AerLImyC+ObFIr3wsCrE87iuvilUQvvqOJivWO5JxQRjvnWT/RmhimznHg6h1bJOGn X8leDYGFwgjmSCiJvMM4vL2HzYdBj/hz6grm/zjVqJitYHL6HEM+4gMFL9gkdQJJSl67Ulnn+tM Xxgmr0u9tDI+z66jQhw== X-Proofpoint-ORIG-GUID: sY_W95dmiN7R9bK_Doz45wVmEd9WiC-Y X-Proofpoint-GUID: sY_W95dmiN7R9bK_Doz45wVmEd9WiC-Y X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-04-08_02,2026-04-07_05,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 priorityscore=1501 suspectscore=0 malwarescore=0 clxscore=1015 bulkscore=0 phishscore=0 adultscore=0 spamscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604010000 definitions=main-2604080036 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1775676669456158500 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 947988d2456..04d9f1286c9 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -23,6 +23,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" @@ -35,6 +36,7 @@ #include "cpu_helper.h" #include "translate.h" #ifndef CONFIG_USER_ONLY +#include "hex_interrupts.h" #include "hexswi.h" #endif =20 @@ -1402,12 +1404,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 Sat Apr 11 18:34:29 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1775676431; cv=none; d=zohomail.com; s=zohoarc; b=TJc9hVc5L4Vn0Ldanjz7gWTbzqRRnpZI49ZHwTKUfmIuZpSl80Pkie+2t5iXgzI3tJsBr9ISoYJbsHUtW0KiwxE0nHVoVhjagNM1zjMcbHqmyza5ypOILSHY6IcOa6gGIbYwLqPelfxVFkuLNaexT2KrSTBuf/Q1jujSkYpKe+8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1775676431; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=BQPx51Ys0BSe0nfcuWwE/ESRFU/f2P1cefwHo05cHP0=; b=V/PWTzsOA/HqRReqbQGdgaIbccks9AmscE9w3NcJmeA1lDfekTa/OMHRpOYryTl6G7CroxcdPV5Y56SUbnifVIp9HjwUzW+2qLMbhAS9EmYJifeyzaChXD6LKkc7w3NSlNvCJxDYFeniklB26gPu67tXhENnXKBO+BkRroToY44= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1775676431921679.5617782117338; Wed, 8 Apr 2026 12:27:11 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wAYT7-0006pO-K9; Wed, 08 Apr 2026 15:21: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 1wAY4V-0006Pb-OB for qemu-devel@nongnu.org; Wed, 08 Apr 2026 14:56: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 1wAKOl-0005Yp-Qk for qemu-devel@nongnu.org; Wed, 08 Apr 2026 00:20:18 -0400 Received: from pps.filterd (m0279870.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 637M6pEx2451580 for ; Wed, 8 Apr 2026 04:20:12 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 4ddae68wkj-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 08 Apr 2026 04:20:12 +0000 (GMT) Received: by mail-dl1-f69.google.com with SMTP id a92af1059eb24-126e8ee6227so9485807c88.0 for ; Tue, 07 Apr 2026 21:20: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-12c14a371b1sm6480362c88.13.2026.04.07.21.20.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 07 Apr 2026 21:20: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= BQPx51Ys0BSe0nfcuWwE/ESRFU/f2P1cefwHo05cHP0=; b=H0fkjJABVhqpfTB9 Lfb2hbIupYTm7q73Ka4jTZwKqrNpP8nQF1cRhVcQjnRk1vDmojJjEoQLJUbgKxfU nfe8sCxEeUUHoamVyyptOVi8f9RE1he5zvAW8qMCavHg/4/JILZGpVaEBJgyySqo Z9tNvv/ifDH9Rp8Rqd+G4SOiMpmxj7dOSTlTzBbSSXvpa2BtUZJuEHUA8r7JnxuO qG6GRhW0lCE4jfj3HA60p6cKZw2l8xaDZduNUk0uhxV5cZIs2pzK913vHSjJmhre 7BTmLWyOq2ywAoKQ8KuE8dbJQNK7k9AWcfgqQTlIxMYn5pbiIg9xOJ6C+uXuN0iO uaCPgQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1775622011; x=1776226811; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=BQPx51Ys0BSe0nfcuWwE/ESRFU/f2P1cefwHo05cHP0=; b=QAysKq6CEC2Oz+Aotcg4A83Q/kuN142MN1zXvXj4sIEcBIHwRRbdBNklKBIJfvR2mP zs0dblrgyWem6wxUVJdOWSz6KITymNo19B32dpC1nUkLGajTqvv22Veyzjjb9SW3lK3G 8TL4009FUlTsHYsiqyRbMcADgRpn2GFfMGT9q/pOCZQ3+WIc2Mur9Nd+n8OXKNzQ3v0Z ZY1hEkGpwiDHopbq8I1ejOJIeGWwc5Oa2GxiR1KkeDgsiIMmFZ93u/D+E4FFPE903RDv 5j6TYwuqspBIn0ISEjouzzUAi/vjgVgQ8ZIIzmw4AQmT978Ij5HzyL1weKVGehGs72qq mvyw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775622011; x=1776226811; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=BQPx51Ys0BSe0nfcuWwE/ESRFU/f2P1cefwHo05cHP0=; b=A4WNxSnZD6Du7xUOypPcr+UYKjpDZq+KApM7h2nfELQiueHqt+TdG+3gwbbuqp718u LGJj4Kkh1FEndhuwhq3gVnNbzqy2fmnfxSPkMiatZ0hh8bbycVmvEf0xLKvDTr9LU73i ZrTjfYzbR8TS2fy81sjkBLrYi7es/Wb0XHHncTaluZvP+IT+Bb4iJDH22p7bItzTQxG8 CCTDAqxOtEbMlwIMQQfPsA5FLo/8vqo6/e8WCfEk9ICOGTUpPFC0N3TPZFvCP2T/hESI NLKeKgQheaXnIS/ZsG4QZBLzEuuyC6ZsKCvtYhsiud4e+erAZXU+0GJUUKzYOsJTc7GL J8tg== X-Gm-Message-State: AOJu0YxjMK8/R/+noURdIBT6hl0KDCXROceN8f/BNoG8kEKKnK92DZQo zv1N7ndyG3URm7rl4IucmHmex9H5yKY4cqO4gnrny6dZBg6xhf8nl9NybVb9rhAlWhxXu8YKFLw 2kuJNJVA0lbgIFodsz1b8zQ3GBAqB12nItpFDcqs3eRVQtMWu/IV/SYGs9GYeBrWJ9A== X-Gm-Gg: AeBDiev0ssnYWf9CivjbWluH2dhOQWq3qm4mM2qP8nPZP0SxW58PF8YZLs6upfjB2cp NuJ5VAPgXx0kFQJZrBWKfB3dkPeXeJbPlwuVSDTwlnV1NsbeqVdgKlAeYRQgrsNYh9knuOQjiGb 5QDe4vV/FjRl+KHVFvL13F5KPUBf4Cd2uXuiKquGq0n9UESSIFEzttPPJeQPdC6H8Vgptj39hUL HTdsaZacchlhu5mjF/yJCMfUXrLE3nDZP/5BEqavvnGI3frjDDpwDfKkCxV/oeDSwy8BKFV+CsF ZKAAMaCx4qfd5W4aJhI62BlQnuRPFpmpC2GpSbaZMSh7Kj2M1F/zSaGchhHoC1rL5VgftEuxn7g 1PpD6lpGlkcE94eyiJxfQ/cd5SMgmZhS5SVg+iQYWoyAZQn5+at/3pC0OX4iA01FUZmE62A== X-Received: by 2002:a05:7022:b81:b0:119:e55a:9c03 with SMTP id a92af1059eb24-12bfb765d17mr8578869c88.31.1775622011060; Tue, 07 Apr 2026 21:20:11 -0700 (PDT) X-Received: by 2002:a05:7022:b81:b0:119:e55a:9c03 with SMTP id a92af1059eb24-12bfb765d17mr8578863c88.31.1775622010517; Tue, 07 Apr 2026 21:20:10 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, philmd@linaro.org, ltaylorsimpson@gmail.com, matheus.bernardino@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, Brian Cain Subject: [PATCH v4 02/28] target/hexagon: Implement iassign{r,w} helpers Date: Tue, 7 Apr 2026 21:19:27 -0700 Message-Id: <20260408041953.1899532-3-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260408041953.1899532-1-brian.cain@oss.qualcomm.com> References: <20260408041953.1899532-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: AW1haW4tMjYwNDA4MDAzNiBTYWx0ZWRfX/GabarmlZ4HV zpst8jWpHfJ2PPTkoC9+QBQNmLGmNTOHPwWWKTt4yKeFE6dXJoo4zYr/zl+eikrNUXLyIWoNbjB Ff6tcwi/KGSSPHzb0RTJa1ECyZiz08bOh/remE39tph6Pu8s00GUTIrpz3u3p9uBQXCwlwuUgND DccGaCDwxhZWGgmn5fL/pBxyO0OB1CYUNxHMBQxcXTvEUqwshkN6ukqQI5gNVLRqJ3SZ5i4al0P pNF0hwCGuaL5mkdXkDGZlP+LRK660EQuSmIQFX94Ky7Nnw5PrazG/AiBXxP/6hJk2gYCdgG1zi1 B6VLzGgcsYNdbz+flF51PXkx5SXqzkLokcqsFjq77txB0brNADk2azogblwH/eZgXq8aA8/HnZ1 ql3+vf1JxP1B8bt/QxuOg7smKzAT0kaMpxA/ZLqZlhFQ4zgPQYjWXnXin/0kBYLgUAlKB8aIZeO D8uOgRuyyguZUjppm7A== X-Proofpoint-GUID: xYaccXacgJ7mMuQ4GUWcjN0j3o4j49-4 X-Proofpoint-ORIG-GUID: xYaccXacgJ7mMuQ4GUWcjN0j3o4j49-4 X-Authority-Analysis: v=2.4 cv=K4AS2SWI c=1 sm=1 tr=0 ts=69d5d77c cx=c_pps a=kVLUcbK0zfr7ocalXnG1qA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=gowsoOTTUOVcmtlkKump:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=VnV9S1Uu6eltRR5mmX4A:9 a=QEXdDO2ut3YA:10 a=vr4QvYf-bLy2KjpDp97w:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-04-08_02,2026-04-07_05,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 impostorscore=0 lowpriorityscore=0 clxscore=1015 phishscore=0 malwarescore=0 spamscore=0 bulkscore=0 adultscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604010000 definitions=main-2604080036 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1775676434687154100 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 04d9f1286c9..7e6e04e512a 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -1416,12 +1416,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 Sat Apr 11 18:34:29 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1775677400; cv=none; d=zohomail.com; s=zohoarc; b=NLwn8kRCFJOHDAp4OK63kxOTP3OdDLvUwNgJL2lczu/aEyqYKemTxVSKxPz34ljd4+QrRJ7Y/v5MNiQ0f5TiCypzDmOd/Ka3CweI97/DCw1ji4T/NARLxyjWh/p2sCa4e/HzMZQoClQ3kK7Dh72HE6USCAYtFeZsISgsIKB0R/c= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1775677400; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=43eht5i5NYtJP0f/h9KiBbJpH+OYgI6m0lyV0s2tzuM=; b=iiblXhLuKdg1Q7Hdw7EP9aWG4kfgYVDBzZdvRbIkMUZhHpNY/9N9KqEcpvd24paCkRIXnL3Rh+2J+D9320zTk9X9J1prj6ivdS+uFf1MoKMra4Z5RYSralmaZ6/5Z6NnxHTXtMz6j8k4Y1TQB6UNsMFzy3RtESZJUdQVjZlhDoA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1775677400364888.4100676456651; Wed, 8 Apr 2026 12:43:20 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wAYTB-0007Fu-9b; Wed, 08 Apr 2026 15:21: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 1wAY4U-0006PA-1K for qemu-devel@nongnu.org; Wed, 08 Apr 2026 14:56:14 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wAKOl-0005Yv-NK for qemu-devel@nongnu.org; Wed, 08 Apr 2026 00:20:18 -0400 Received: from pps.filterd (m0279870.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 637M6KM32450557 for ; Wed, 8 Apr 2026 04:20: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 4ddae68wkn-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 08 Apr 2026 04:20:13 +0000 (GMT) Received: by mail-dl1-f71.google.com with SMTP id a92af1059eb24-1276e71652fso3470577c88.0 for ; Tue, 07 Apr 2026 21:20: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-12c14a371b1sm6480362c88.13.2026.04.07.21.20.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 07 Apr 2026 21:20: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= 43eht5i5NYtJP0f/h9KiBbJpH+OYgI6m0lyV0s2tzuM=; b=BY4dMjkhlA6mn2yF uoqX1B0UzPUPseKt5kvNX2oEqYt/4TnRWutqG8ABjNssmpwTUraEg2sZPsdkmz6W Mt2uVl7p7ccSfLQbZY0AohDc/rO3PX/xL+v3aBEmQTbvMuNtdM0cxKzawXqo2etF 5C3RCtX7KyFmVjkKP9H9jAgtZK7WqZquq810jyqBOr62Rb3hqVyrAVsWMaWb+QLg gSlkJq95TdkyZpZks2fB1/cppxi2y/HftQbTNC1UAi3uNLDKlKzUCbaB/E9Ti6+x 4iOAzX5o46hCCY4K3Nk1H1qxnabG8EcIB868EuXf8zzrE/wCQVS+VZBtRgQB9UHy fO1NLQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1775622012; x=1776226812; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=43eht5i5NYtJP0f/h9KiBbJpH+OYgI6m0lyV0s2tzuM=; b=EXAlKV5OqbXLIn/W81LSL83HWgTHFS43ClzQ+86CO+jtjc4DrCu3usnhH1FkYS3qwP dpn8vt/Ko17QVLBbSb5yttKKo2Nq2rocltcN6vM4WJPm6XgIeVMeBoJiH1J0BQ+PEP2C 3+N8FRwzwtIzPJhsoqAAXShqMJrDDyD6Yi4vf0P6BXKYarftYKchoZ9BKrdYs2j3/aL0 OtxmHaiQw3uifwoGm1rY/vTguhZ9/IW1lwFS/m07H3irjImUdVKe5DJeQQmCcvc1KbwV zGBrfJUvgfGz6dybi9JINW/M217iDNpfB5lhQJK5K0oWRC0xrV9v15CKv8F7czo4VloV hAmg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775622012; x=1776226812; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=43eht5i5NYtJP0f/h9KiBbJpH+OYgI6m0lyV0s2tzuM=; b=NAPSPr0J7hgF+LYs08zEdfzosvWosF/RI2Th8yiYhVBZ7M6r5Jfg+xk0wH9ryo4acb vevblTI+TyV6KgvGBTo/WIOfe9OiMlOE+Xuk12b+o07bqqGzzmRpqndctzyzAFcvchF0 FAVnpT7mADQcDwUYUkB/N1X/nVJlsuMMTamMPhqJdd72G2+bngA7th6dgh3TK63pDY6+ tMwcq9FyAyqF9YBzT8KDUQ+ri3U4dO214hwB0T4+6iW7MO2DE+IK8oEyiMN8HsDYaP5T 421MM3TPAJ6T7Y6TddDywICgJdQoCMW2NZxxIuhEbB/YVgzPKJJaycs/7SkV3hKsB234 ypgg== X-Gm-Message-State: AOJu0YzbyLC09P8SDff9vGnt8hYUy5mhuRN7RQyi4CvNgj0hHG5s6N5J j400mUByJZpBxng9ra6doDtBfLwjiYwE8bTmhW5Hne2EX/Rezl5iDn+OLUi455lsHcfSv+yM8Pt zpX8bKLEeNnWRcUwjHMzGGUDtHSSFgqq/nRieEhIiOsnoe33I+mlu3nZO9r6c8p5mRA== X-Gm-Gg: AeBDieugqxaiIEEiOb2EVQUnXqwkX2RwMjEcHwf74K1dbIb1dj6yyZgNdgm2o2kUZIq AD++FbRLvhPn6o618n3Uw6qo5KMVMRP6grMw3zlG4oIDhnynj6HJyls9u460BkML5441Qo5S4WP yYGg6DN5/KIrNY6pF5WJnI4Tb220+OcrDcuAB3eQ62f6/amZnKujFPDV9LTPtP/RoxxlXJEHePh rnnd6JxVhqJTHmoQ27ykVvMQm71fr/v8jnc3qetiksygb4Z4sm7VyFlMQV+hRBppdGW9GeHA9qc wFy7EfcNn9+tqZ0beTw0/uD7luh8LO2yN3/G8DsOpff3xybL1mu2tjPz3RC6ftVq+5jNyi/H79T Xm7wF6j+WPIUMP6N5ujT1My5eqLNl+UFdSDX2kWI7MrnHr7c28AlU+LGUzEWG40cWUQmCAw== X-Received: by 2002:a05:7022:61f:b0:12a:6fb7:8801 with SMTP id a92af1059eb24-12bfb7074cfmr9452746c88.14.1775622012096; Tue, 07 Apr 2026 21:20:12 -0700 (PDT) X-Received: by 2002:a05:7022:61f:b0:12a:6fb7:8801 with SMTP id a92af1059eb24-12bfb7074cfmr9452729c88.14.1775622011517; Tue, 07 Apr 2026 21:20:11 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, philmd@linaro.org, ltaylorsimpson@gmail.com, matheus.bernardino@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, Brian Cain Subject: [PATCH v4 03/28] target/hexagon: Implement start/stop helpers, soft reset Date: Tue, 7 Apr 2026 21:19:28 -0700 Message-Id: <20260408041953.1899532-4-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260408041953.1899532-1-brian.cain@oss.qualcomm.com> References: <20260408041953.1899532-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: AW1haW4tMjYwNDA4MDAzNiBTYWx0ZWRfX+MW9ZDOTMaqP q14Qg8tl5oeVdHUaUbtpk1yS8wYbvnbyMsOjYz+YY6ftLHyp554CjMsSKrsB+4/rlUYegFv9XtQ GTEwAumJiYxilj2e4uZW9y1WgNb1F6kp86PlbM55JQv+RPGPC384a92JD9i9gxRqf8RGt3RIZuT y+MZ8q0jmOPBzftREw72pYKrRl6er231i/i+8YS6Uw9Me/ELBJCPvMzZIqKJCZDee2rf9vR1gta W02OLt8GlQISQJPypzH+q6e5TtB1z6++YfCINolQdvlFQBCC5XBC+iheGGl/JN/nJwWebTBm0PE htm/AzuJI+dT0mZSwHJNYqsR5bZtUGmruKkVG/hqV2QZsu/L7RF8XkZ/BYAw3AZipANizYaPM21 9urA2ZVncSIkBLFJeeEvzQJxbGoZi1L59nPE1iEXaqC8LajOvQ5qW9mC+HPcllRzN9B7asdly4S 1oHYZxNhGL5tJhkp8Cg== X-Proofpoint-GUID: loFzOvGnRvLDpDwqVjG5Qd9NcO_C37Dk X-Proofpoint-ORIG-GUID: loFzOvGnRvLDpDwqVjG5Qd9NcO_C37Dk X-Authority-Analysis: v=2.4 cv=K4AS2SWI c=1 sm=1 tr=0 ts=69d5d77d cx=c_pps a=JYo30EpNSr/tUYqK9jHPoA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=gowsoOTTUOVcmtlkKump:22 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=Yg3Zx8E-q63MwIDgcCkA:9 a=5DSkQkq5sdZ_jMUF:21 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.51,FMLib:17.12.100.49 definitions=2026-04-08_02,2026-04-07_05,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 impostorscore=0 lowpriorityscore=0 clxscore=1015 phishscore=0 malwarescore=0 spamscore=0 bulkscore=0 adultscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604010000 definitions=main-2604080036 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1775677402849154100 From: Brian Cain 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 3049b5a411a..2938291ff1d 100644 --- a/target/hexagon/cpu.h +++ b/target/hexagon/cpu.h @@ -212,6 +212,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 9ae8e104043..fe7bb198d72 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 void hexagon_v66_cpu_init(Object *obj) { } @@ -315,6 +316,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); @@ -344,9 +367,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 7e6e04e512a..a28ed061412 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -1478,12 +1478,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 Sat Apr 11 18:34:29 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1775677272; cv=none; d=zohomail.com; s=zohoarc; b=BBi0dpLTulP4nCBy3RPOimXC5yBF8l5DOa19lutAhTbNw3sXRhugFqoZjZxWxpbwZ9U2idRJ8U8MkCOVbTVtWFCsB3iDRkljky/lssZ22lTtgdk1sJ1PFfk3Jp2Bsgfe33Y12iKxCHxZzb52s3GFGmyc4Q8Z0Q8bu+AVrPC2yi0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1775677272; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=vprTvSEgzIgWASZmcb1NhYWButaf8Vz6pBv1wMZS9Rk=; b=J7U7F/z4chVnwtMKa1SyibVJFOIYrpx3CaE7p/LTfUNqdObC3EN3rRCagsjUlrwSVb3P5/uRWNy8qPEt2Aewmo5fqPNze1wApBPJvzTGApwHoW7WkP8P6V3aW3ikTiSnhAEcmR3rYXHqNYn783uw0z53f7HX+gZNTLcQxOVKIos= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1775677272180276.4572453338145; Wed, 8 Apr 2026 12:41:12 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wAYTQ-0007fR-Mu; Wed, 08 Apr 2026 15:22: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 1wAY4g-0006US-Gv for qemu-devel@nongnu.org; Wed, 08 Apr 2026 14:56: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 1wAKOl-0005Z0-Tk for qemu-devel@nongnu.org; Wed, 08 Apr 2026 00:20:18 -0400 Received: from pps.filterd (m0279870.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 637M6NLs2450582 for ; Wed, 8 Apr 2026 04:20: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 4ddae68wks-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 08 Apr 2026 04:20:14 +0000 (GMT) Received: by mail-dl1-f70.google.com with SMTP id a92af1059eb24-1270dcd11c1so9813791c88.0 for ; Tue, 07 Apr 2026 21:20: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-12c14a371b1sm6480362c88.13.2026.04.07.21.20.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 07 Apr 2026 21:20: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= vprTvSEgzIgWASZmcb1NhYWButaf8Vz6pBv1wMZS9Rk=; b=a2BYyzSC39a73LWe 0oRDuBMArRCWjQO9ihjgxgcVNFaw5w1QqOeB8svPYeX/qY3lup/wIbXXLfdYXsYW Kk08QEEDkxUKNWZJaYVtG7XHS91kXYa/CJYQkZIUvFaM0lsvT+gF3R36ZnkyZ52+ tk3NLFH7wcn9aMZ6uDkgs1O5zc4/anxSLdvftYSkSGiJg8XeT04ifr3nl0WWhEbF n/tgZ8pExrARn/dUgCB0FIVKdLVOcHuEMasHxdUqW5r7iJ3bbMcDkFoyODDmmhAB xnu9ZGDqKsZkESnbWHViib8TNfrKCglcDZOoGuFipIEfonIMUoBzRDlHw9prpDXM lgmWgQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1775622013; x=1776226813; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=vprTvSEgzIgWASZmcb1NhYWButaf8Vz6pBv1wMZS9Rk=; b=N2Z+J+9LiaiZgy9NnObzdRCDD/Ewx+37S4+XHSn0WUchJiK6jwRsc9IBbprkt0jETh JttqyBn00V/u8kXp4FHk/jgfdn9yZY7OfqYKAoayXJuelli4f4HPKzH64lzvfiWJDNrs 4cWnj/rIe9VISaAG5qlWgveDT/11oQf0LyB8/V/LH19T5NEU11bqYrTGlJCX00rcWmjJ KUVKmQ0iJq4E03Q6ysa1WoSzeQXwv/LzbPF+wl3hLsmt5HTQK8vBqzIldCwfv5bMggo0 YNqogrleu9+R3x8Tw2VUnRPDgmDNjhcheBuPStISF5xaaeN2S0of74sHgoOGycmi1aTY 1VsQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775622013; x=1776226813; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=vprTvSEgzIgWASZmcb1NhYWButaf8Vz6pBv1wMZS9Rk=; b=G9gCkrEZgBu0ZswQeyrVGtUfAEXkfFfG0GSXonnhtw6rWEnGTQS5FAJk7K24e/YnZR JFCUqFw1DTCuYmOFgpM5O8kEG1M5OzXMNe1l1u0aQ7/mp4mHQh+4I5Fl0UI2lJsB5sip 1l4wGHfedQiqTrxydYJgThpwAIU3RiLbC3AyvJUxP7wNDWUsFUEYT8O6K+EefDCCiaKi 5nwS7a9VYTTSK63zgNorUgvKHOOZ0NR9r/b7McifZ7xj4N6oss6oDNaGO589Hyn5DD7E tWSp3yDQSy/5y0/W3D+5oW95W6PBygExI+NDWdrDIySsic7eNP1/NFg7Q0FVtF5s2RD9 RxCQ== X-Gm-Message-State: AOJu0YzPP2N0GiCTDkpwF0xdCK+Rx4p9JzGfwSnQ5goeININjS/peQjK qhaqah9rCZJRBnAUVzc4OO6pEpSHE8Pt6OV7O3SF3LC4oQJ+jlVMzJGfPS/OXo2LkaCsvwpc7NG WxioA7wgpfcDgupTuEYNEwfwzltruNmPyUgSE924sGXAYPjk+w+IiCsaTICsFgAssBQ== X-Gm-Gg: AeBDieutZTcWDDW7wIYG1bLzLDKvVJzf5f6kOzuQb7zLbKtXY2PvD1YDS5mtrtF4GCU VwSogUN8ET3KILVnn6pSfLjt7pQX5rPAEdiJTSEgCCfK+eTKc8dG35j7L619TOCicRYBwyy0zlI km+fOkC57ek+v07cRV7RKckCfvU3bRf/LpN4MUcGepOaLuCLDPfO1rD6MEzEKsBqQxRsetdOU0p PXvMd/fBVIEtrygD93aEA9bpednebD1OxSM2bjecxbMkVy7vWtzjCIvnd18628YCAdMS7mNQvaU PmnhVTotCNRYFE+D8Tt8ROiLcG20MIX6Ww+cL5iDl4RhCuuATF7oZF0E8QzDHA1D8iKSdEiOXz4 D8Z45Ue6U2g39zMadDNvmVbhwGoWBWzXtfIU1GYZX1fpTYSFBS4U2NeEIjDzPRuc93/Uizw== X-Received: by 2002:a05:7022:6997:b0:128:cf75:42a3 with SMTP id a92af1059eb24-12bfb745b32mr9190314c88.21.1775622012938; Tue, 07 Apr 2026 21:20:12 -0700 (PDT) X-Received: by 2002:a05:7022:6997:b0:128:cf75:42a3 with SMTP id a92af1059eb24-12bfb745b32mr9190299c88.21.1775622012436; Tue, 07 Apr 2026 21:20:12 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, philmd@linaro.org, ltaylorsimpson@gmail.com, matheus.bernardino@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, Brian Cain Subject: [PATCH v4 04/28] target/hexagon: Implement {g,s}etimask helpers Date: Tue, 7 Apr 2026 21:19:29 -0700 Message-Id: <20260408041953.1899532-5-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260408041953.1899532-1-brian.cain@oss.qualcomm.com> References: <20260408041953.1899532-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: AW1haW4tMjYwNDA4MDAzNiBTYWx0ZWRfX9ia4U2Lbd7wR e9GyEDSnvPM9yQ0JYZpAE8m20OrWygrnO0uGsT4suEj8FIKfUkjg8Rf5+U4MFZ876KpqWTsaQ4A e7eRIMqP8mUdM+WIcxHtKCLcFRTGMkMsqRYgZcDdQ+cVQLTxac/hwV7wJqhybnEJ5Q+JtZAoixw ghIiVWU7uUcUmPhInnbcWPSAMAL2KwKSKU/YlCtT8vHbmwqL8uLZPbkOdAcXIzL3j2TymG/pKh4 15ihaAfvS8dji7xu5xXTQ6mqfZAdh/RjBvjH+fvYHza4QjepUuVf6h89h290QxDwkNNY453R3rk mkHdE4jpfWbJuTcK0hOjt89aDYaXbzvSH3mKGk9ecw/pbTizwt/1lsdR0fw8KXeURBrq228bDtx 9C2lGkE6sgXxNL0dauPIk8VuuwtoQIcjHXhntsnNsDYyUGUA+3PfahVVCyH4GjFu9h+GFlKaF1S nPZ9tTbHth1iG2BPs0Q== X-Proofpoint-GUID: n_MoP21CLu8HC-Wj4B6dr_UwfN0mlWwt X-Proofpoint-ORIG-GUID: n_MoP21CLu8HC-Wj4B6dr_UwfN0mlWwt X-Authority-Analysis: v=2.4 cv=K4AS2SWI c=1 sm=1 tr=0 ts=69d5d77e cx=c_pps a=SvEPeNj+VMjHSW//kvnxuw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA: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=he7afFXPmx5H4pWyvLYA:9 a=QEXdDO2ut3YA:10 a=Kq8ClHjjuc5pcCNDwlU0:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-04-08_02,2026-04-07_05,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 impostorscore=0 lowpriorityscore=0 clxscore=1015 phishscore=0 malwarescore=0 spamscore=0 bulkscore=0 adultscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604010000 definitions=main-2604080036 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1775677273345158500 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 a28ed061412..235c70f7370 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -1498,12 +1498,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 Sat Apr 11 18:34:29 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1775676007; cv=none; d=zohomail.com; s=zohoarc; b=RrFcR/EAwiRvk7TofX9qFzgRO/1FzxY04Xww2DkQOPFs31e8wyA9JSEa6Q5uZTuYV+2Mku09u848FqZLKsDy47pK4f1RmBTVzUjQBQbmzPc2k6eIkbVNdcPqQUBqQeG85orgddw360MuM4aPqri6N/kbhdI0Jd92+J3fVfM7IoY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1775676007; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=fr3r1l7govQ0n2tgYo7tIfg3KvIKEMQ0pqpyUPHfVc8=; b=S41gLj1XcWF8TBH2QuiredB3xVMzKDMY4C8NjtbPqvLPXQkP4Cc8aDTSmMyif7w1bX2Rorm83Ctbevu+NvQRvqhlOPaeagEjvL/8+hSri7te8WPxdDUz/0+H41us25w+58/kR8fJLgrq4amw5HWk/dIqhfcUBN85w47Uls/gfa8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1775676007251784.0588736412682; Wed, 8 Apr 2026 12:20:07 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wAYKH-00038r-OO; Wed, 08 Apr 2026 15:12: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 1wAYIy-0007Je-5v for qemu-devel@nongnu.org; Wed, 08 Apr 2026 15:11:12 -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 1wAKOm-0005Z5-A4 for qemu-devel@nongnu.org; Wed, 08 Apr 2026 00:20:18 -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 637J81dc3362677 for ; Wed, 8 Apr 2026 04:20:15 GMT Received: from mail-dy1-f197.google.com (mail-dy1-f197.google.com [74.125.82.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4dd7tkhexe-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 08 Apr 2026 04:20:14 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-2ba9a744f7dso8188875eec.0 for ; Tue, 07 Apr 2026 21:20: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-12c14a371b1sm6480362c88.13.2026.04.07.21.20.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 07 Apr 2026 21:20: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= fr3r1l7govQ0n2tgYo7tIfg3KvIKEMQ0pqpyUPHfVc8=; b=pD8uVQnGfLzRoYKj n06zRY9N/4780ZX1HU4Xnfslh97achh1026fk6inUT9dILEtexOgAhZjEys5xfEm BjHhI9ikFlBaG4RQ2Q65BbTQXi+DnBWQfjDWIH40vTvtAme4HLIkwNCEHuJG10J/ XtWw+/GLevwuEiehiO76iJvahH5QhKnszKrYv1nGYmfDL6ssrf9ORO/HpE0GkPFD 2F8VgUO9P3UgV8F6UFuv6u/NTT551/8RRvSCFkFuHWPYMYAmGTnOBfH/R3mtPGzZ QgUjDaV0heP9qxySBJ/zotb6IApJ8MjY6fScpp+KM4NxJPMOgM/QTpkD3fWRMes2 DXy96A== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1775622014; x=1776226814; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=fr3r1l7govQ0n2tgYo7tIfg3KvIKEMQ0pqpyUPHfVc8=; b=Dy0sQR3QjDDbBXEJVNR5cEFG5MyM1RvMxbA0S0h29UtH33DdOW8KGeRrhMKybtsHPL ZenPkmG7sb9myHKRR/G558lEpwHQjBi68qdND8yVvbiDQnfK822mHgl/uohn5xcmnumg qs70n3Y0rp/LTj6dYpvd+yzTqiLKS6UKwoLIa4mbmNaUSTmBdTkubM3Ly7y2XvB3pwnY iehJ6CN0Ptcu0u+YYB3+yJ45rcPPzwgTjdXkE0pDu6L9N3cGWuXbkCzoble7KThOJKES 8Z2v0VRL9ODxPcykKc0csnOB+ZI4mq64yzQ6MJAnrO/uVJsLBhGDF5Lu4iKTQleXMoho 2RRQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775622014; x=1776226814; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=fr3r1l7govQ0n2tgYo7tIfg3KvIKEMQ0pqpyUPHfVc8=; b=HDADqoKi3THq2gNM3WuqNnFDXZNRpiKMDMFthZ524TPBUzi2XK8IYfw+1bp+8AEBa9 cu2GaIE22rL5hq0rfBYp+1EpbaC1xoH8ehuoVkLnr3nA+Jb+j/E9CNCq51M80jlT/kLo KywW+2V2JVSAmOh4Cs1eB0aL3wK2ZceMii3MPlgsK/m4UoqSU4jOxEx+jsOr5eDJNE8D /zoekYIYlKEtzVjl/vglimlOxmiEI23T1GIfBXPjonfZuzTKaj7c5vjPpjnYk4sUMP/7 JNgjfTH1D49/JNfzIv9MxOTimmIAzziq55bwC93cqJP6LzbkgKjmw/PAWEy2q4GnOW18 n/tA== X-Gm-Message-State: AOJu0Yx79e6zzV92UrY6hExPQe681U7z8Xo7ugmvxf+MsEeB5WQ4GYJb ZbA68ughPMHgUbnE4Lz3/cuJfvGDpcQLAn5/4ySE48AIEXTQbQvjSuGscqk6rg5lG9G7a41sEe4 LAiNThbeP3ZC9U/Gbbtkvb66RWVs1IaZkT2lcfYFvrQsZLW28YSqGQPviJ3A/ZZhaow== X-Gm-Gg: AeBDieuFLEvfa4DVDrTEP/4G3A1C3w4cIzpPaVaUdiOvdIEHFywCISkxbNkcSSgRw7h Sdjq1R5rAFoBb92MRbbV4xjAtAyF57Niwdd7SOBSOpxBZMy+QRM3i5xtaB26zDjU4mj3PTllmAZ g81RX3iH+NApnwz9Ld3B14wrD8HNwtWNPRmE/LmQO4awb4HRWA9q8YkbGZLvwIoMTvjIBeO1UQf 3+PbuaX4gyluzInv5LCzmAQgHhibYVkueeHVmuCchyOw+rwWBb1krIw4ANAQsGMlAdZhLJeMd2k wI9Kw4YMdT1uUj7Juhb/m3/kFXeZGEoLpvhypw6+o31wxbE68uM1nsKiFii2YhPZzRMwjbLnVfq ZIqKCp/xxv5W+79xvhunEJC+dXEv8Q5oggLKU5gOXP6h45MAz/RWRMlWh3t24YMFmrrcAYg== X-Received: by 2002:a05:7022:325:b0:12b:ebb9:1c0b with SMTP id a92af1059eb24-12bfb77ecedmr9784860c88.31.1775622014057; Tue, 07 Apr 2026 21:20:14 -0700 (PDT) X-Received: by 2002:a05:7022:325:b0:12b:ebb9:1c0b with SMTP id a92af1059eb24-12bfb77ecedmr9784840c88.31.1775622013502; Tue, 07 Apr 2026 21:20:13 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, philmd@linaro.org, ltaylorsimpson@gmail.com, matheus.bernardino@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, Brian Cain Subject: [PATCH v4 05/28] target/hexagon: Implement wait helper Date: Tue, 7 Apr 2026 21:19:30 -0700 Message-Id: <20260408041953.1899532-6-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260408041953.1899532-1-brian.cain@oss.qualcomm.com> References: <20260408041953.1899532-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=drPrzVg4 c=1 sm=1 tr=0 ts=69d5d77e cx=c_pps a=Uww141gWH0fZj/3QKPojxA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA: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=UWtQ3YZIe0Xef7kIUYIA:9 a=QEXdDO2ut3YA:10 a=PxkB5W3o20Ba91AHUih5:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: mC-DEzHI51w1bzGme9gVkDUetycQ2t2G X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDA4MDAzNiBTYWx0ZWRfX8LLNzwR6iNuV lkdHxfjs3cUmW1C8ZI+Hsvpxu8sZaaVMQKTP8HqzcEaI8U245K1SisEOYuXK7sZnOSrVRBA2VxL NjDHwtUbt/meERielFcKo6bLGSPFV772SJy67eZwwS5UyAcPmmUINym9IINmh6FPVTL2NcYifoZ YHu2iogVXQiDZR8yLnqSY3dH2j9DlfRqpVxFWYMfMn473bA3w3CozWUQVlF7CdhgY8zxSki6H6u 1aDLAA496+BfANozH4Ep9vE0eWFOTP7Mztf648TER1fk32NDoX1uRgE/if9V5Z8i7tpLESp4ACg cEmfRZWVhgEXStdbIWSr/HWDblM0y3q/iwAzCYTFIRvXCysxlF/UQyVKe4DVeseslYNG7fYlGei NMu2uDrd7Lszz3It66DenzCr/qna9fDG0CTwlLaGZFcTOUjBbEaxQpCwSuS5CYG7fdb+1UlIzrN Ti8iSlnmEY5kMG3FNUg== X-Proofpoint-GUID: mC-DEzHI51w1bzGme9gVkDUetycQ2t2G X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-04-08_02,2026-04-07_05,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 lowpriorityscore=0 spamscore=0 clxscore=1015 malwarescore=0 bulkscore=0 impostorscore=0 phishscore=0 priorityscore=1501 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604010000 definitions=main-2604080036 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1775676008002158500 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/op_helper.c | 60 ++++++++++++++++++++++++++++++++++++-- 1 file changed, 58 insertions(+), 2 deletions(-) diff --git a/target/hexagon/op_helper.c b/target/hexagon/op_helper.c index 235c70f7370..d40061de06e 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -1486,9 +1486,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 Sat Apr 11 18:34:29 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1775673181; cv=none; d=zohomail.com; s=zohoarc; b=AwW7w2Nb8NuiWiEdC3zO19ukYwGGcC6zTxGVodmtJESaTqUL74fw77nFw/G7vdX2ftkyMkZaALHX8QMfJk6j/8Gq2ys0Whgyo2Q09sRLZmuOhtJMTiHbA0A8EQmcslNA+LmFeMLWdlyvvRvakirOiT42qXgwiyVhzaZeFDE3FXM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1775673181; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=TM9tngE3lvwLrSuXYtmpNMwH6zTwzksJ6RpQa/He64aYVPLZbov2u26ByuuYhTou8WTgqPPI6J68fClMf6Ybmx+ws/u4/vq8QYlN8qtnavPmkDodz2s6nKg6r1b09rYWvD7CJ03yAIBcPsEjGyYlBC4oD0ejIEGYEvufCUt5l9Q= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (209.51.188.17 [209.51.188.17]) by mx.zohomail.com with SMTPS id 1775673181270252.32562241509663; Wed, 8 Apr 2026 11:33:01 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wAXhl-0001yK-Rq; Wed, 08 Apr 2026 14:32: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 1wAXhj-0001nt-9s for qemu-devel@nongnu.org; Wed, 08 Apr 2026 14:32:43 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wAKOn-0005ZL-3R for qemu-devel@nongnu.org; Wed, 08 Apr 2026 00:20:19 -0400 Received: from pps.filterd (m0279869.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 6383E1BX2411813 for ; Wed, 8 Apr 2026 04:20:16 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 4dd61v9x5k-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 08 Apr 2026 04:20:16 +0000 (GMT) Received: by mail-dl1-f71.google.com with SMTP id a92af1059eb24-1279caef718so9082750c88.1 for ; Tue, 07 Apr 2026 21:20:15 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-12c14a371b1sm6480362c88.13.2026.04.07.21.20.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 07 Apr 2026 21:20: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= UbuzJ7YCQZGqOoiI5HAt63RuanuV51wqRpzkdURFyKo=; b=m2URMhcwPb3YfqO6 nY1mg/yiFf/hqjezE/4kzm70fMq3YOfc6as60eCe2WMSchC4DUaWAVhK/rQUmlpc SC5MxQbVR/PspaN9ODMkKWARHAkAing6yvDU3J3UAtwSvM8mgEEOahUJ3eo04CDg zVyWERzUlu2Y40Tp0fPbRJPLHCAw2Cmxi9ZYQO2YIAWIZGg196BJQgLohzp2Hxc+ kwLVn2OCVPZANdVUC5qiPUItigqYCz2ElhZ6oDS8LA48CbNhhWWeLIDxMH7uaSud kM0FZjxNHTP5rKId5dyElI1VVxxCS5HfMDfbMsD08hz/9fcPEXJoS6ErXiMK/3UM Zo4XRw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1775622015; x=1776226815; darn=nongnu.org; h=content-transfer-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=G5tS/AEqTZt+iRAP991NKAzL624ONzokgVglJdiMNXDd1x9/hY5zG/dpzqkW+nuthh RuDWFP4+LSFWeauZ2uJB5D1kTnoQX6ROg+lwMRdPus3gADH5vqkW0Mr/YBccs5dwAmMK Ub+S+7kGPIZH0Mvjn7wBzHKUYojl3tiuaX7uf/ewHMwqYXJLU1pNQTH4C1L6kWoub+Ir mF1U8KaqOtKApgXlUNe9RRRcqghD2kLiaYNvlq60SVoSxurk/ubPj2haEyxJpLHmzvxf TsO5dxDIXcKVGMmhjqcIKY6mPoeC9Jz8iibPZHuxOcdSPvvIJyyjflhXmIEcFRD+pbce V0xA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775622015; x=1776226815; h=content-transfer-encoding:mime-version:references:in-reply-to :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=gIPxI1L0PVSgvcetMjDED41GoiefkvN1Qk2pOl9X3HmeCOjRuS52s139dK5nN74etL AGNIG/ndBB4Cgzy8870UfZzp+Jd7Q/9sbmwQsfrosGalA0YYnCJBZEvRbRdmuSviur60 Wf9kHwRALz7RMKowchQYx5KookOrwa1ciQdsyjPerj8uUnUiE6KAGb+Q7SaD7FauALjH /oggPRBtT2stTfIysxQirOeh4ImWibgbS8vz0Kys9hMpzKj7gUl4zLrIyjQeDuBXAVq0 howEOBEAxZYSE6MT6k3nYnFwNZS9ri4ZqZLjZdPYpUtBg64Wo+Ao1yA2MkU2DY7wABko Uiyg== X-Gm-Message-State: AOJu0Yys4ekPUShPxW+VpX+NkOYyH7lgEkUQRonNzIMY3CPwdyTarb0Y moQDEWCRczCSJ7ZMYSdNxCM/ZfvISCL+JtuyboVa7ovWMi5SEaFGR3KA2wJEn6qds2TW1gteqQH ea1wjKrCAy6eva9df4pyvn7TfaahGlCH9eAZ0jUuvs+VV3c6aIMZX4G2ixoH8lFZBDw== X-Gm-Gg: AeBDieu3pTkyBRJpEPuSBDAYGByi1OEF0VrYKCvGaJHgSoLSd4QBBgp492oahHDxwSy bQ6VnjpR05i3ai1gB6+lEZsCpOveiYuNKAHi10a55MXwBDZW+YEhqb7IMc0DH2eEy8RbRD213nd Nz/cPEjmwWNCvMAvzFWMDmAlZMuwLaQHYEUokTAt0nR/dJZitb29bAwMQmDkTi0E9qpBrjd2jek 8f38CXvC5brH/C+q8iDkABVrgusDDjSJ+3KIibI09xfP0e6axMsIJJV07+gUD2Agnw9yglKvzN2 PuCFheqIPNLqEhKx9JJI8orPXuTsIPxSE3kFmU46rKv+kFnLBgTRNE/gjn4IUTjWx9UQooHWWG0 mZ62AMHrSSKHTWLVxYH/AhO74KaJr1o9p9zlRkqgjlEA8geHrumdc5xl2iY3FZs0B2bwt9g== X-Received: by 2002:a05:7022:6b85:b0:12a:b932:81fa with SMTP id a92af1059eb24-12bfb6fb367mr9975065c88.9.1775622014904; Tue, 07 Apr 2026 21:20:14 -0700 (PDT) X-Received: by 2002:a05:7022:6b85:b0:12a:b932:81fa with SMTP id a92af1059eb24-12bfb6fb367mr9975056c88.9.1775622014392; Tue, 07 Apr 2026 21:20:14 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, philmd@linaro.org, ltaylorsimpson@gmail.com, matheus.bernardino@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, Brian Cain Subject: [PATCH v4 06/28] target/hexagon: Implement get_exe_mode() Date: Tue, 7 Apr 2026 21:19:31 -0700 Message-Id: <20260408041953.1899532-7-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260408041953.1899532-1-brian.cain@oss.qualcomm.com> References: <20260408041953.1899532-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: AW1haW4tMjYwNDA4MDAzNSBTYWx0ZWRfX9L6PZ14JAd8P Qrvlz8vrQljNNNGfI/gaQQLaEj8k2LnkVM1sLyX9IfvCCHJJouefWcxeIKBhKWi+vHIgUoW08FZ ziqUcEdnsl1Ispw5La4QUftp5B3dpCGRCYhtLDlVua4mdaQPq5t+3EAbikjlFRxHmSCP19kc7U4 Ij70PSZvSA3tlTMWxMKM8OD+VqFaYarzgXditYK9ioa5G5/UvsRZQH/WXBBWEzlPwqhNfT3NIdM vEUca5MNZs+5LKykgdxvb++CPiu5yHZzEtg1VGNulpOArGmNHs0TWfA83gdB2r711A6V5VggJqg x6Vcp402T2i09HD04YLK71ii9L6CbG/85KS4FmV/UXimatFA5/8g3cf25FLp2Mv2rhbTiEH6wBV BKDTHiLd30YNDjAa0d/YXYQj+QveoMOs5fT1NhN9B9FcfAJMFV7GVWpMG+qntYD/CzpP80KDbSS DSCWA/6p3yphJtlMXEQ== X-Authority-Analysis: v=2.4 cv=FecHAp+6 c=1 sm=1 tr=0 ts=69d5d780 cx=c_pps a=JYo30EpNSr/tUYqK9jHPoA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_glEPmIy2e8OvE2BGh3C:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=4_WtjC8beq4VSFaiBQMA:9 a=QEXdDO2ut3YA:10 a=Fk4IpSoW4aLDllm1B1p-:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: D7yEqzc7UKxM6uTok0DIRqd56JmzBtPf X-Proofpoint-GUID: D7yEqzc7UKxM6uTok0DIRqd56JmzBtPf X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-04-08_02,2026-04-07_05,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 phishscore=0 lowpriorityscore=0 priorityscore=1501 suspectscore=0 clxscore=1015 impostorscore=0 bulkscore=0 adultscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604010000 definitions=main-2604080035 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, 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: 1775673183553154100 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 Sat Apr 11 18:34:29 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1775676277; cv=none; d=zohomail.com; s=zohoarc; b=S8+yQqIwLhQ79xX6AGkXosIHHmQKnM1HI1gMoszdPOBr+HyIBymsZnnoytAnOWbmA8xLrfPpPfT4a3hgbEILeY2NmRqXOZpWCHppIQ3Xc6rwxm23zJhgzHMsVg/03d4lGompVZdC1uVeacXj3KBAhNpcVLpDrqpqFJFsaKuiZSI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1775676277; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=N20bS8O3kw08byoxD4tzCKEOfFmKOvU/E9UmyVm/yHxM40HPTDbGEHFWyGZVmBE2GCcxlHUmlNo3Nw7290YIImYH4mpTpsJ/0dBafomQdac+OAS0U2imduyMGhO/QuNSK1+OoJo0sjZSXT9n8ESgKX3WnrqKwe1dWeZH+hpt5U0= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1775676277208316.77083491593305; Wed, 8 Apr 2026 12:24:37 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wAYRE-0007nP-9w; Wed, 08 Apr 2026 15:19:44 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wAY2M-0005do-Pv for qemu-devel@nongnu.org; Wed, 08 Apr 2026 14:54:02 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wAKOo-0005Zd-FF for qemu-devel@nongnu.org; Wed, 08 Apr 2026 00:20:19 -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 637J6aYR071730 for ; Wed, 8 Apr 2026 04:20:17 GMT Received: from mail-dy1-f200.google.com (mail-dy1-f200.google.com [74.125.82.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4dd7sx9dq2-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 08 Apr 2026 04:20:17 +0000 (GMT) Received: by mail-dy1-f200.google.com with SMTP id 5a478bee46e88-2ccc035f125so330196eec.1 for ; Tue, 07 Apr 2026 21:20: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-12c14a371b1sm6480362c88.13.2026.04.07.21.20.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 07 Apr 2026 21:20: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= 4hsqE0JDPfvXJ30nhCZ/CCXuACFuBC+IpE9moxChOvw=; b=FkpLlVy3IOEnpCdk KJF+zNk4AeAz55at0BYr3NUdmyq9StrdokcyHQA3zlZZ9n2voG378vLxREl3zlQ0 5D5Hh0uXJzszQu2fgLa0D9ic+bHeM7OmnIYU6hrAeOE1wXrarzf+9FJi2lHTc8NI sb94R1dH7coa1fR59wQNak0Egr5mTzOKq8uPfhJAwcAODToV9ibWOKMY3CrhhAQ1 VgZL+hFkJqxyPI7lPCADCheScBlQ+CGo8HRvTeY7/M9EZezwWu8dJwqPORwfHvGo em1sjPO3ZSTJMlKWzG6E+wx5yjPWv7/4WYoRRZiiOyxiFk+aNuLWa747WV4WOvJN 18I/IQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1775622016; x=1776226816; darn=nongnu.org; h=content-transfer-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=G2bCcBwwwQfxBYoGCnzaHR/98lt75etYfVQ71M87c1wKxVZAJ4pPGBuD4qMHV7b3nP u3UmiGhzlIK3xKQYCNb1qRbRBpRDaxG2194vBAGKx+VmhZ4OA8bdREoRZGvY7do1NsBk hGCepnV5pl9sQ5hkj/876r3eZWp/EFZ2tgA8OeTHS0dvPRfHMA93Fe54zX6zlLNf6O7y zXwROkps6Jz4e3eM2nB4Xypgqd+JY/vbmwnFVlVaidE63AajVCX/JPsyCGIaCiamIvSg fE0ZE162Pa6RkSIkTNHRAyp4MFGZWYrRhRTM+XGsMLJsrW+Ib5SBhi9WOa48jOSfhAhy UQ5Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775622016; x=1776226816; h=content-transfer-encoding:mime-version:references:in-reply-to :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=qrqdVmcTiCP3cOrHvZw8Z7EhOid3ABGrViJ1CmVEMeXdRl3vOl1fUnzkAqDGqzsn6u OLrkGPtw4yom4rmiaIeHh2N3zKo22cNfAIoqBOVadSK27OgvZ8eFdGqXiBffI+phRSha 0LxHBqKhzf5C4ju8kkZbmVL8qNN9A0ivrXBeKPUkod58XWNiiYIQ7cPHjva4BZfXHWUd rO/urxqWXc03nLULdrdZqleEVHR3LX4dvEca6klPbqFP5DcyBnVwcqBt50TmueiZrj5c c1pI3EjGQuIqUeZzDTXzB2vTD4XH0UkeviALXgKw1mozD1YsNRZ7mXJhP48R6+M9btch RfMQ== X-Gm-Message-State: AOJu0YxCHXcY06D2AWvPu6S9J+84fxEf5HN1OOLippQNuDx8Eqt2SZEf 84H5OhTBu4ByjvJ7zuf/v3PgcwnSpBqy1X9O9BOOerU23AQWANhmUUO4+n5ofZ6V3SkUWHJPkvQ 3fmAAB6GGg7MCzWLyakF63BEOdFK2SaU+Vtg+3+ZEdFlYG7EJ1/G4AoAGQO8oz/LiGQ== X-Gm-Gg: AeBDieu7EahXiT31TPk625ZOq5UhhDNaGYIv5KKTzf+vsPoPD+zyMp3SwomkLEyMrMF mVe2+veZo4xRP55UQlJLGAuFCnNXUfM8ZdI05JY7gR6xAduMMk3YRFiLWKoigrT0w6BGHUX/Si5 PTqQLxyghjAgotq+fvCbcSSDuPQq0f4YkaYeOM/OHnXiHWLYXQi2efz6/P1HNvNJMjCZM8nzb2m Gx5yicu+t/va8BW8qGTP6LI1D8jMaak8x/CJpxIV8v41D4t1lnNu0kKZPmjP+0IDf55x38dbE1Z wcbb6uhRVIzUEB+ZlZn2Fu4zaT27OMCZJ+dWTI5Ei+UFJzRrweHbNIyyR05ikG0CA7bcy/dhjzZ 9YqILhunMnbK9fyYzr3jB+6WLgWoz+fNHOmWxLRv0dmX6EnUlbRovbBn9d8Dnm+yVnOA4vw== X-Received: by 2002:a05:7022:4588:b0:119:e569:f84d with SMTP id a92af1059eb24-12bf0599beamr9448552c88.4.1775622016045; Tue, 07 Apr 2026 21:20:16 -0700 (PDT) X-Received: by 2002:a05:7022:4588:b0:119:e569:f84d with SMTP id a92af1059eb24-12bf0599beamr9448543c88.4.1775622015509; Tue, 07 Apr 2026 21:20:15 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, philmd@linaro.org, ltaylorsimpson@gmail.com, matheus.bernardino@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, Brian Cain , Laurent Vivier , Pierrick Bouvier Subject: [PATCH v4 07/28] target/hexagon: Implement hex_tlb_entry_get_perm() Date: Tue, 7 Apr 2026 21:19:32 -0700 Message-Id: <20260408041953.1899532-8-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260408041953.1899532-1-brian.cain@oss.qualcomm.com> References: <20260408041953.1899532-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=etfvCIpX c=1 sm=1 tr=0 ts=69d5d781 cx=c_pps a=PfFC4Oe2JQzmKTvty2cRDw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA: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=RKVJoAg1yBLoogzcrgwA:9 a=QEXdDO2ut3YA:10 a=6Ab_bkdmUrQuMsNx7PHu:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: Cf9Nk-S3kYd6tEVVOxaS98BFBSJzBE1e X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDA4MDAzNSBTYWx0ZWRfX9abxyOl+tC88 Tibw/6TCta3xQlRiyoGFjelcaVybddeqQaoPB4JJcpPXzbGOzZ+NvcRXPMYNVH4A2ZKym+pO2QP bzzSKg4X3K+UY3Mdn+OGp5pbD8bfAPBOX6K987POYU8v0ryXdY1QbkE3pngFGdiuzzyWAgAxQEF 22zv/q9ApJLDnmJDStz06ZkTIAZY+kUxIl4KlSAiZEVHb6eNKH72n6QT9iPlokJNijnn7jXCLWu a9MwC5/0D00Kb19AsjWyJ/wIybV+1s25CbYxl1k4xVasGRSZOcJv3Ydkh4ti56i7fmTo7PW9Rx4 ZDpEiEusZprvGngo7Ta/ty+fkm3iMD+9pjMDPqo8D2SsoMmAg95UKRJl4BCLiL5LIoVMjNDOAOG XEFiJKiyvYTodLkid/S+Yz0vGdDJ7L50IYZwks8h+Lao7YIh/YsGUS5TH9YKU2mTnbW2TqoAPRj LpXcEucLTCBVP/2HWNQ== X-Proofpoint-GUID: Cf9Nk-S3kYd6tEVVOxaS98BFBSJzBE1e X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-04-08_02,2026-04-07_05,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 lowpriorityscore=0 phishscore=0 bulkscore=0 impostorscore=0 suspectscore=0 spamscore=0 clxscore=1015 malwarescore=0 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604010000 definitions=main-2604080035 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, 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: 1775676280217154100 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 Sat Apr 11 18:34:29 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1775677253; cv=none; d=zohomail.com; s=zohoarc; b=kkddvOgkNTHrCqyD9yMe5oLFoIUFKgoBeol7cDqoIbxcx/bCBRgSpfl9wKZzkqXFR7yoOpYiZXGi0e+MRtHDg1ljiezF1TVBaPuOyVB9f5WUs///K+HS6lIk58A6hAMfwoi1NPqlC025cm8/3L2cXOoG7qlDyqDuqTGZ1ua6La0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1775677253; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=lcV3Ogjmz3fG+HpDzqCCU/qf335cIaoc6iTRl9FOMuQ=; b=K+FJH22Dep5IViTrtpawNCULhLK6HDT7VMFaYTNzQ1jUUUQpumaOFli+/i0OAwkO8sOaxEfKzDG5TKp7Dn357aTEMw2mcVAWs7UjYt9L1O/2fYEaTFs8GF6pdJ/7YB71d6uP125b7wxidFTs9PoQXadgEp9WMGGOfW80m66a8wU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1775677253695333.53993871559214; Wed, 8 Apr 2026 12:40:53 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wAYaJ-0007Mz-3n; Wed, 08 Apr 2026 15:29:07 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wAY8K-0008BF-E9 for qemu-devel@nongnu.org; Wed, 08 Apr 2026 15:00:12 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wAKOp-0005Zv-Ef for qemu-devel@nongnu.org; Wed, 08 Apr 2026 00:20:21 -0400 Received: from pps.filterd (m0279869.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 6383BwAQ2412801 for ; Wed, 8 Apr 2026 04:20:18 GMT Received: from mail-dl1-f72.google.com (mail-dl1-f72.google.com [74.125.82.72]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4dd61v9x5s-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 08 Apr 2026 04:20:18 +0000 (GMT) Received: by mail-dl1-f72.google.com with SMTP id a92af1059eb24-12bf9974587so27824192c88.0 for ; Tue, 07 Apr 2026 21:20: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-12c14a371b1sm6480362c88.13.2026.04.07.21.20.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 07 Apr 2026 21:20: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= lcV3Ogjmz3fG+HpDzqCCU/qf335cIaoc6iTRl9FOMuQ=; b=krOJy5ZvWg3Px4t/ B61Y9JsStmyrwAYhCnGLHKx8wSsiW/LlyVNAF9uxKdK6fGfX4pGYffccHbRdFfga iDHZaSXwudJ8i4ui9ZCs8bqQiVMyJokBx6V0ERb0hqLgyneYhb+Egc3Y2U0upwxX qt8vhI4mgE3R6q7s1juVOhNkbtTOHmgaAC8hM7Gw2StT5lSNI2rP0z35xDXVmh7I g7m1MTh0DGPjnXJVcBGSMnOkbp4y2d/nIzqxuXo65I2L29UkQqt3rBZWo1ZAZVsY 0a0Z/CEA1RkysmRIZwCMeLCgr2mvf4JKhCccWxuFmkVqfSM+EQPRaY0k5ML8i1yB 7qdLCw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1775622017; x=1776226817; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=lcV3Ogjmz3fG+HpDzqCCU/qf335cIaoc6iTRl9FOMuQ=; b=HmLDUfH0ZC/xBGOuhEpK0ETgnDRAdsOVfgsWB9URdn14K5WRRfURJtCcxpCLs5Df4/ 6PrKGYYe6a8c2y3ocOfwGNxrfbJBqJ1Dpc+C9YctPVhUeQ9LQXYr6UZ2DL5Wl6q87aKQ Mm4Ju5hOd2UW114s+gbmGEVW3eGOtBUIUhdfTKELLDx3VD2qBrM4haNRzXs1PHSxAAr7 nLo1PIJ0zF6dj4Ulpz+EfZ/mjM5fWWeKAD+GTkYQ/RS18/5G8feMid2GRPYQz9FL3/QW zBwC2tCJvKtKP57JI2rZvL8RmD5QGs3lLmpG85/8TgZ9/HlTWWKOlP4JvM81jmMa24bX LtNA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775622017; x=1776226817; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=lcV3Ogjmz3fG+HpDzqCCU/qf335cIaoc6iTRl9FOMuQ=; b=bmYU9dPfBmGByFntNQiXbNhDPENT2PdNKHbWu2mn/U08tStfNqpP5K8ULHUvF8+htT nk0fdpjcp70cBpB9uw6f+fsM7YNMwSTnn0aZI2Ay9O+7puRoTnEajXQ82F1rRUfR1n0m EAHlLgn7fOR0rDjRmESalh2XoCgcDq8N0UDySqHQhEc3thkPQldqrbhZlZVPNqOdhRRH MBtRCqq+pSMNX7wuBTyUjbvhDBqgvD81nld3uI7ONP6AqcyNOJkxno9Lwe17SLAM1BSA tDnrwrs7yerOcFV8h//yYYzTNYU6CUQPgjF3r7JU4u1DNf2Oa1qipsPs/0lmpxh32Z/E 4KHg== X-Gm-Message-State: AOJu0YzyGzC8E3fj1dbP5bOSKWTPhxksSI8u4VCVcywntwx0V8Wqg2fZ 73yz8h6kYBAcFxJefD+Xc+y/074pXR7eosnjeCviL6LJ/3lHn2wHmtiRzY5HEW3aZlv2qVYoUQK LDl1RAPKum/Avpf5PQVMxaeW5HjHCU8VdBz0rbEQYH29mc87h0tqOWRJvvdZcvEu8tA== X-Gm-Gg: AeBDieuEj9/rmipYlvWHqbe/m00jZk66lASrGpG0qP4ViQF7qzqfBx8FtTBHGGlL8h3 OLqZg9qf4q866y/QAnW/aLsNyMgxdYI6hGcmYg+ok22SYORXL+qlPB+h6yE05JsynVVZWhBv/gy aDfHtftZ1iuiYtRAIOeJ0xHCzfa2b27ruz/xjcaSyW2REaVRClINu6guMkTgDQtxK+vdbfBvGjC iXoyvUd8xeyqJvV4b044861bnpWgwveptlXbr+7Q+4vjVnYTqIgSd02urs3QM1w+g8oAehCFe+y tTvpMHFWeuPg8XP7DvvEnHFtqTiy2rYB4Q5bEM5W+l+0QTyZdBTLID8J0uBi8e65umN/hMsHqiv lVXDh+YPQdfqKn9O5s5X4aL7AJxQ/y+JnG2GZjF4gV8S4ikgZz6X7St96FUeJs8tBxLUgDA== X-Received: by 2002:a05:7022:2221:b0:127:33e0:ea33 with SMTP id a92af1059eb24-12bfb74c9bcmr10592536c88.22.1775622017155; Tue, 07 Apr 2026 21:20:17 -0700 (PDT) X-Received: by 2002:a05:7022:2221:b0:127:33e0:ea33 with SMTP id a92af1059eb24-12bfb74c9bcmr10592523c88.22.1775622016542; Tue, 07 Apr 2026 21:20:16 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, philmd@linaro.org, ltaylorsimpson@gmail.com, matheus.bernardino@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, Brian Cain , Mike Lambert Subject: [PATCH v4 08/28] target/hexagon: Implement software interrupt Date: Tue, 7 Apr 2026 21:19:33 -0700 Message-Id: <20260408041953.1899532-9-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260408041953.1899532-1-brian.cain@oss.qualcomm.com> References: <20260408041953.1899532-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: AW1haW4tMjYwNDA4MDAzNSBTYWx0ZWRfX1tHofu+RhyHF 3opG3nWSYp9gDMGSIywjWcEdldnw3h9vyoUk4re8U+Ho5czisNSA4vX80w5IxgkSHkwUpz6+sDa YTsOtrSVTkyt0dKCgfSKedOeKFLZGVZIIAeRfn7EX3mZ3IZ6QaRusBSK5WcONS5s4NteV35tici zbVazktEeJCMuvQ1dZUDqhO1QmPoAgYwssSa7uzpiqe6AZO2NBzEoNuN2nGmx0ZBvjrp6oocAXI a1W7I8je2ZLlWYhYjrSPcwqBlZjQrQoBoyu5NZ3xB6uYLkb5OS4NsGdBsBP0vHTlyVmg4babHZv D2b6laz3Kph7xCb/DiWDtoPy6vA7M9cdhD1pIcfgs2IVdBi1A5L4hNutj5r3Kq8nR1aHxP9Xi3I ZQ4XB6bxgz6Dqa0woHPIxiVCEO58vGmFrPIYpEkZBipPVoLuS/Uz3so2sfm6mAWIWMU9QsIsWzM uuNYiPDtqLAGxrLEPRg== X-Authority-Analysis: v=2.4 cv=FecHAp+6 c=1 sm=1 tr=0 ts=69d5d782 cx=c_pps a=bS7HVuBVfinNPG3f6cIo3Q==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_glEPmIy2e8OvE2BGh3C:22 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=tNsvDMl9nzr4Tn7f5JwA:9 a=QEXdDO2ut3YA:10 a=vBUdepa8ALXHeOFLBtFW:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: gSdPMJQZlYMzMjUJuBs1nYxHZ1Ik0fs6 X-Proofpoint-GUID: gSdPMJQZlYMzMjUJuBs1nYxHZ1Ik0fs6 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-04-08_02,2026-04-07_05,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 phishscore=0 lowpriorityscore=0 priorityscore=1501 suspectscore=0 clxscore=1015 impostorscore=0 bulkscore=0 adultscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604010000 definitions=main-2604080035 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1775677255351158500 From: Brian Cain Co-authored-by: Mike Lambert Signed-off-by: Brian Cain --- target/hexagon/hexswi.h | 17 +++ target/hexagon/cpu.c | 1 + target/hexagon/hexswi.c | 267 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 285 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 fe7bb198d72..0670225d858 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 void hexagon_v66_cpu_init(Object *obj) { } diff --git a/target/hexagon/hexswi.c b/target/hexagon/hexswi.c new file mode 100644 index 00000000000..6dc3c91586e --- /dev/null +++ b/target/hexagon/hexswi.c @@ -0,0 +1,267 @@ +/* + * 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 "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%02x) caught: " + "Cause code (0x%" PRIx32 ") " + "TID =3D 0x%" PRIx32 ", PC =3D 0x%" PRIx32 + ", BADVA =3D 0x%" PRIx32 "\n", + (unsigned)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 %d/0x%02x: " + "Unknown cause code %" PRIu32 "/0x%" PRIx32 "\n", + cs->exception_index, (unsigned)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%02x) caught: " + "Cause code (0x%" PRIx32 ") " + "TID =3D 0x%" PRIx32 ", PC =3D 0x%" PRIx32 + ", BADVA =3D 0x%" PRIx32 "\n", + (unsigned)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 %d/0x%02x: " + "Unknown cause code %" PRIu32 "/0x%" PRIx32 "\n", + cs->exception_index, (unsigned)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%02x) caught: " + "Cause code (0x%" PRIx32 ") " + "TID =3D 0x%" PRIx32 ", PC =3D 0x%" PRIx32 + ", BADVA =3D 0x%" PRIx32 "\n", + (unsigned)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 %d/0x%02x: " + "Unknown cause code %" PRIu32 "/0x%" PRIx32 "\n", + cs->exception_index, (unsigned)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 Sat Apr 11 18:34:29 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1775676159; cv=none; d=zohomail.com; s=zohoarc; b=PPL7IV3AeaNEVmRHnkQ8GrPtwvhvRWRpA4VotwMmfvz5VIqakXEvTg6I91lzzGNXTqeN0jVUEP+GsMkmbse6pifWgXNgchIGmNpHDjdvMWyNrQmsrm8cR+//2MESRYqxp8Em0kC0+sQgI5c1ee3DprcvidKV2FYRmgLbmSIGwMQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1775676159; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=/cvTSbV/zAeAfBfzYUeoj6fbSDj+UEBx4bvW7Z/SrW8=; b=HuoG9bLa/de9EmNeC+GPu/Q/SYmvCSScckDSnzYxPmvV8fb2cz4Lwg2z+sxPMFRdXa3x4SbAuSzSza6N0KcdSZ5J1XjxxhDneXPTMHFQkUeOLmoE+n2nQ2aryW90ojfBlxd2QQFktpVsrSpI7cj0cQsg0Wm60KhRgG1XyL8MplA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1775676159617480.13471944815126; Wed, 8 Apr 2026 12:22:39 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wAYKL-0003WP-8Q; Wed, 08 Apr 2026 15:12: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 1wAYIv-000773-Ak for qemu-devel@nongnu.org; Wed, 08 Apr 2026 15:11:10 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wAKOq-0005aK-Jp for qemu-devel@nongnu.org; Wed, 08 Apr 2026 00:20: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 637J6dRJ071787 for ; Wed, 8 Apr 2026 04:20:19 GMT Received: from mail-dl1-f70.google.com (mail-dl1-f70.google.com [74.125.82.70]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4dd7sx9dq6-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 08 Apr 2026 04:20:19 +0000 (GMT) Received: by mail-dl1-f70.google.com with SMTP id a92af1059eb24-127133794b6so9493287c88.1 for ; Tue, 07 Apr 2026 21:20: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-12c14a371b1sm6480362c88.13.2026.04.07.21.20.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 07 Apr 2026 21:20:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= /cvTSbV/zAeAfBfzYUeoj6fbSDj+UEBx4bvW7Z/SrW8=; b=DsdaRayZlG5YRCDX FDFue4d6ljB6z7LuQHtdCqDqCX/hz3GDXgJyBcc9Ol2zHpJO304vPEOVh0rzo+H5 AC3z76flVXFU3guzIffbAmM9IG+lqxAZqQRcWji2uEYDOylgljGZKdFwBUjmyVee 3piFx2KkyuWoNVsMWtAPM0YrTHXI4Rr9LXAgdwbI/qzvJKu9935MVwgrFUFk4n58 e3PTwknzbYOlbve0ng7arCumO5U602iz5Rx/boRdKwTI3+nnTyrhenlyBE8ErsDp lIQyhKpurs8oQdOJTY2rrOqyXdKrARDtOMG1e+dkZgNLrT+9AOIrwNi4SYhALvaL 9lS/dw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1775622018; x=1776226818; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=/cvTSbV/zAeAfBfzYUeoj6fbSDj+UEBx4bvW7Z/SrW8=; b=DfuGqsMvc96dcbDDrDF9MCO4IiHr8pRXnlYFXv0kfjxwlYzlAYEMPjdJHa7/h6Oe71 dArQ+hEGyPXO4W/qfnH8TRrS5u14LrvhN5pjBEh92ubQ9C9K5PStGYoFMKyuQejovc7e nlfAF4dc5DGJUBw/C9vQxMA5dUGFMQ+TjkRey2lJF/vKQUFI4OAEsspJNShECDYpYEMp HohLC4QkoMlDquEuyB65aRxTlnOWUvWkg5kpX0wHCrqmKDRvBNa+9H6qLRuS3UlC+Fyj 8xMfN1jLkwQ4gorgGtxLCt5jxjujXKMxFrVoXdE2fo1LSON/5XntvheWcKXysEn4R1Wm J6Mw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775622018; x=1776226818; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=/cvTSbV/zAeAfBfzYUeoj6fbSDj+UEBx4bvW7Z/SrW8=; b=H9IA8ga5ZBQts0PNc2ISeIBUGQA0m0etBz9Dcd1GtKK96MB7MveP0qrcT4uzklQciy ko788trXDbS1e+MjYuxHmJ/qpBe55WnWT02s/4cVLLx9ACq52ssGtxcGdUNgHQFkJyhn PxAWA9QsS9wo6BZLzsMExoTjQHRNJ9XS3SC9WQ4yrQZ8+kR0maDhHAmFBFu8jK47fyA/ hXzc4feTFUa/FRy6b1A5+cN2dJk6+0YU5sPNuRVAsR2n2XJXcjPC6aSsGmahF5jG4a+z uK4kv+m9rvAVALW39HP3qlAKUfp1ECv4duKlQ0Q6OkPt4PUbStupcbL8UQ1nEreXNg8H scEA== X-Gm-Message-State: AOJu0YxHg+NNsLmsei0WmdX/kAh9l5hhvELniQxfnM7EnkgmfuhIdU5e 7pzKFT1hRd4fy/SPLDZWCyUUzJXvez1FgiXKWmnXb6bnqy+jhiBmQuqQvRydhMv4jVml1sSDcRi AeMQLJUF6MX6jMi6RKoJNvg6K625I4aS0eXXiMHtGi3y7X5TJgP8tpyLhk7CtT8aaQQ== X-Gm-Gg: AeBDieuGLVeJ6HV3AcA9Uljs3mxv4RSMUr4r6UE1zsVusIo/BczvQRPfUJrpV2fNd0X WU4Myektit16bdWVkgbMmERAeu4AA7b0XnatpyGY04qjj6PcKz6UsxlNBcJi3xUEbvmxGpi5Dbn e8wIycPSnjDt/EBPgrvxmFj4YDBJm3CH+JL2M1lPJeCkvwz9ArJZEkmrJYZ0oXnh6fuXnQPgK2j iRbXcAjcK9Ul8+UEHHJD+V01fenlHWxkq58HPPfZsHISc5qkf7g+p/Rc5A4DJ02XMJsM0SrNZIm 5JdSeuwbXMK8muF9lyw0tXLUaaXJDVVv3H69Bdc3bUos5Qzz9oGtvvr+ksnKl+5cpjC1VwO0iDm ROUwC+FXwvz5XW1r1rpUkvse2xaoetcC9PsUI06J33CTgFbxqN9YNXUSNUCXOQRO9Igux4w== X-Received: by 2002:a05:7022:ec17:b0:128:d23d:81a2 with SMTP id a92af1059eb24-12bfb777066mr9807566c88.29.1775622018275; Tue, 07 Apr 2026 21:20:18 -0700 (PDT) X-Received: by 2002:a05:7022:ec17:b0:128:d23d:81a2 with SMTP id a92af1059eb24-12bfb777066mr9807548c88.29.1775622017675; Tue, 07 Apr 2026 21:20:17 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, philmd@linaro.org, ltaylorsimpson@gmail.com, matheus.bernardino@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng Subject: [PATCH v4 09/28] target/hexagon: Implement stack overflow exception Date: Tue, 7 Apr 2026 21:19:34 -0700 Message-Id: <20260408041953.1899532-10-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260408041953.1899532-1-brian.cain@oss.qualcomm.com> References: <20260408041953.1899532-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=etfvCIpX c=1 sm=1 tr=0 ts=69d5d783 cx=c_pps a=SvEPeNj+VMjHSW//kvnxuw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=rJkE3RaqiGZ5pbrm-msn:22 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=DTjK4E8Rq4C45BV92HcA:9 a=QEXdDO2ut3YA:10 a=Kq8ClHjjuc5pcCNDwlU0:22 X-Proofpoint-ORIG-GUID: 3FJvzSYMLoLv22JD3An0eDcD-5LrXy6v X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDA4MDAzNSBTYWx0ZWRfX7I5bATXZGYfs yoEjJYiEBMb678xyLz4NbBOijogvEVAF7jvvbjj4cVRETPWUtf6nG/xDNFdfZLCFxKOXtsmw73j UdQ1neFUAi1MpJUzk6r5+0kjLmNzgd9JO9PQ+H5Vnh3lbwBbI2wijmxZImyNG50nNyPXg/mX06R ymzvU55+zHBs4FtMjhz/OGtgfPpsPGKC1sukcXbFFTl/tUa3GIlKe8DLI5qfZtJNR7GQK+jn2Em pLoUNGCtwvL2VyYJ2CXg45NeBl2yQKnic6xznwBmgIKE5+KQoh2hUUSCRHYWPIYwikMrtjddEIi zoX0kiJNDDk2sQVp9i7iXkqLFP3FPjL9HUs9oU+mgoWSN09h57IjHzJTjdpcSxbAfhUYjAVu6OZ HUB5bFFaAEKlSa5DqSfaB8SqS+jlXT6M1NDCKVg6J8JlBzGYb6t/mbth98kgLX10D6grOAQYagj RXzCbuCHkzxZ1gF++2A== X-Proofpoint-GUID: 3FJvzSYMLoLv22JD3An0eDcD-5LrXy6v X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-04-08_02,2026-04-07_05,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 lowpriorityscore=0 phishscore=0 bulkscore=0 impostorscore=0 suspectscore=0 spamscore=0 clxscore=1015 malwarescore=0 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604010000 definitions=main-2604080035 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1775676160805158500 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 9ca87acfe63..ebcd471ec0a 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 26d3f7d8a4b..d3f2105c932 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 364fcde7383..cbc857fa2f5 100644 --- a/target/hexagon/sys_macros.h +++ b/target/hexagon/sys_macros.h @@ -95,6 +95,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 eaf48a865c2..4e090565aac 100644 --- a/target/hexagon/translate.h +++ b/target/hexagon/translate.h @@ -340,4 +340,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 63cbb7edbbc..129c13b637d 100644 --- a/target/hexagon/genptr.c +++ b/target/hexagon/genptr.c @@ -889,26 +889,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 d40061de06e..6bc8287e8fe 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -1392,6 +1392,42 @@ void HELPER(vwhist128qm)(CPUHexagonState *env, int32= _t uiV) } =20 #ifndef CONFIG_USER_ONLY +void HELPER(raise_stack_overflow)(CPUHexagonState *env, uint32_t slot, + uint32_t badva) +{ + /* + * Per section 7.3.1 of the V67 Programmer's Reference, + * stack limit exception isn't raised in monitor mode. + */ + uint32_t ssr =3D env->t_sreg[HEX_SREG_SSR]; + CPUState *cs; + + if (GET_SSR_FIELD(SSR_EX, ssr) || + !GET_SSR_FIELD(SSR_UM, ssr)) { + return; + } + + cs =3D env_cpu(env); + cs->exception_index =3D HEX_EVENT_PRECISE; + env->cause_code =3D HEX_CAUSE_STACK_LIMIT; + ASSERT_DIRECT_TO_GUEST_UNSET(env, cs->exception_index); + + if (slot =3D=3D 0) { + env->t_sreg[HEX_SREG_BADVA0] =3D badva; + SET_SSR_FIELD(env, SSR_V0, 1); + SET_SSR_FIELD(env, SSR_V1, 0); + SET_SSR_FIELD(env, SSR_BVS, 0); + } else if (slot =3D=3D 1) { + env->t_sreg[HEX_SREG_BADVA1] =3D badva; + SET_SSR_FIELD(env, SSR_V0, 0); + SET_SSR_FIELD(env, SSR_V1, 1); + SET_SSR_FIELD(env, SSR_BVS, 1); + } else { + g_assert_not_reached(); + } + cpu_loop_exit_restore(cs, 0); +} + void HELPER(ciad)(CPUHexagonState *env, uint32_t mask) { g_assert_not_reached(); diff --git a/target/hexagon/idef-parser/idef-parser.y b/target/hexagon/idef= -parser/idef-parser.y index c6f17c6afa7..22070d8c3fe 100644 --- a/target/hexagon/idef-parser/idef-parser.y +++ b/target/hexagon/idef-parser/idef-parser.y @@ -404,6 +404,9 @@ control_statement : frame_check ; =20 frame_check : FCHK '(' rvalue ',' rvalue ')' ';' + { + gen_framecheck(c, &@1, &$3, &$5); + } ; =20 cancel_statement : LOAD_CANCEL --=20 2.34.1 From nobody Sat Apr 11 18:34:29 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1775677924; cv=none; d=zohomail.com; s=zohoarc; b=A0rCrLdI3+E67jyLJfzGLYKPKWh2cRsHGTs2taKMM3TJwjHAL9ID14kQa28K7sn3SclxqWYr7BWrBNTpCBPmfYIb9+/NeVS1lcpgVzd6G2IypnHA1yQ3ilCp9p7+4OvqbaffpAjHJpaWfLCEVvODuXw01cuY6hxHStquVn6ciqA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1775677924; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=HscUhJd5IqP7CEl8rASeN9F33avOQQ7VyG6Y44RMDtY=; b=KEZeeTmVRrLSjhUjlZhvML8rF6aqsiG1EG/DM1Xk86901s+SbMpY/WfaomabVsN/ajm2BlwMH+rn7eB6LTwdkJUdawdXJ6CvVOy9Zq24usR4ivx/obvChuzpD2MFQccB6a4FAPEtgspse8bzAOnxHEb5F7L//tSZdGpn7zmL6z0= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1775677924814673.6444154453716; Wed, 8 Apr 2026 12:52:04 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wAYWO-0006dk-1c; Wed, 08 Apr 2026 15:25:04 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wAY6x-0007NK-MT for qemu-devel@nongnu.org; Wed, 08 Apr 2026 14:58:47 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wAKOr-0005aS-4w for qemu-devel@nongnu.org; Wed, 08 Apr 2026 00:20:23 -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 637J6dRK071787 for ; Wed, 8 Apr 2026 04:20: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 4dd7sx9dq8-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 08 Apr 2026 04:20:20 +0000 (GMT) Received: by mail-dl1-f72.google.com with SMTP id a92af1059eb24-12c20d5d7f4so1164205c88.1 for ; Tue, 07 Apr 2026 21:20:20 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-12c14a371b1sm6480362c88.13.2026.04.07.21.20.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 07 Apr 2026 21:20:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= HscUhJd5IqP7CEl8rASeN9F33avOQQ7VyG6Y44RMDtY=; b=idi3LCho7Q2do5Xo +ikbfc+e/I3xJ5lHAepEvWt1UDkNMlbp+Y6UoozuvzZgGU1lllEmrzQt3Y3SKm2i G0Q5NdlukTlOP0MnI9p66OZ36FPlhHeTOz1R+0NOkB5G9uN9fWMcI5wVENVAiaTx bFH7rDmprT6pp6M0IShiJHItpr+GEgwT278boae+y3KvO6gK8wZtl03kY9opLoXv gw6U19JjToMzF3w06yyMpVB7N9m3n1IasT+EwQuQHyYrQQFrsx8x2ll0R6HcLJhr 51Qpxf+wDTQAKKh6Aog6eJamb+Wh55IA6KedMxRQaU2ywKHSTD73iQ0jio9d42pQ yC8hVA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1775622019; x=1776226819; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=HscUhJd5IqP7CEl8rASeN9F33avOQQ7VyG6Y44RMDtY=; b=BGj8W1pnKW3MqIAqe6RZvGVh78TnZsvL7Z5CioCdns7/xgaDNsLfhMckWVrHqqpuEk +JG948fMMKgqTPxghYH7mvPo0qEIaxM7jhgLbhMYgZ4FhHWjHmKnILcM/Bn7DopFBs28 h5hgRhdG+PA3KctvCxRSVSmqHvX0GVxfd4H4fjXPzFnRfSQkQbhlLFdvJGz8VKY4utE0 hxR0oHMQBbNOYkwCz08ANx37k26Pj4fDePb2LbsEE+uz9hERjHdB8xw7uiCGk06QZUbA mjZ7rsUSSdB+Cm+C38M1+gR+oimf+UGwn3sanODR+IrEqTp9X0hp4J9TGjf5t7jHyX7q 0fUQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775622019; x=1776226819; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=HscUhJd5IqP7CEl8rASeN9F33avOQQ7VyG6Y44RMDtY=; b=Rd6qOzKoFn0F35aoKLjCYUpu6M58tWeQf5OeBveDTMQ+KFbQbUXyBJjlGuLAzkTx4F VyAX46n1wpmEjpAq5XJNiSnAVZfkWWgVdS/EdBG1tPpEq+F7nzC22B9iQXGG/VXqMdr0 9ac4/ZmOTl4rg3yufrMf/1aAiQVkRKL2s762J8g0PxoKcc/ky3StPNnkSH0WCfEY//Va qNr+QFFoRR8zp38G6zitXBGaGz1r0jwOrOBj1l06NL2gF8qK/QYmWaSVslnkLnQFLp8u c934spQBb9ttye6Dp4inBZR9B0GZG2jf4MaWhcSfducsC0jIQagFsmAnhrqFbAxr+kXc Tf9w== X-Gm-Message-State: AOJu0YwW7ZsL6VibvW3tEQN7DgkKbQ63ni256J1b9pTyd8SWu1rJ3kVd TtTksUR7Pkr+ulsWbB3irVPX2FmkWQb4QBVrBA3xaXZQx/Jer2Z6dbKJFvd9HVu4cNV8T/Qxcbp uoMPwOjPLrga0j59FppwIUozCNS2PjYuQ+lwuO1dQp07x+zgH72J/HKBLUMdryjodIA== X-Gm-Gg: AeBDiet9x/GtoJXgsCUiLU6zscON9s3d4k/v7ScCkmq0WROG+XaCGRQ4v5YMhRr0R/l U30g6zpywpCuOpxrYnIloUiQW+FzOijCjzC5betMsdSMRMbYxImI5m6RDVnVuPDLQEtgKWEUwER I2pX9vjHTUxPPPz6Rc+H54d23sSShtqPmp1E4WWCMUxPNQMlgHGreIDHwftNWisFfInlRgsDLGG zfGHRn/2MKB7q2zUnxdQL6CJFG7vLYlYUcAcpMPwOXe77xQvM8as7//0fSbSjkahiIEtO2rXbBc lvgLbrrM62muE3KEGHNGPUBpFUDOHiWuiSqOnbI/8Zn7ws/Y1mRyZF7KdGhORyJOgIx11OakonQ LhWJX8DDOQHl/qTsdau9UwmhI1UUuEJcaN8U/ahJPWGVvzRsQ7S9thVDvgZIa8d9zCJAdsA== X-Received: by 2002:a05:7022:6881:b0:12a:b39a:339f with SMTP id a92af1059eb24-12bfb7451abmr9575117c88.21.1775622019042; Tue, 07 Apr 2026 21:20:19 -0700 (PDT) X-Received: by 2002:a05:7022:6881:b0:12a:b39a:339f with SMTP id a92af1059eb24-12bfb7451abmr9575104c88.21.1775622018498; Tue, 07 Apr 2026 21:20:18 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, philmd@linaro.org, ltaylorsimpson@gmail.com, matheus.bernardino@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, Brian Cain Subject: [PATCH v4 10/28] target/hexagon: Implement exec_interrupt, set_irq Date: Tue, 7 Apr 2026 21:19:35 -0700 Message-Id: <20260408041953.1899532-11-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260408041953.1899532-1-brian.cain@oss.qualcomm.com> References: <20260408041953.1899532-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=etfvCIpX c=1 sm=1 tr=0 ts=69d5d784 cx=c_pps a=bS7HVuBVfinNPG3f6cIo3Q==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA: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=GA9jbsKyPMLDJDmtv64A:9 a=QEXdDO2ut3YA:10 a=vBUdepa8ALXHeOFLBtFW:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: 707idYfVyiyq9crw1LgW9u-FWY8kFxZA X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDA4MDAzNSBTYWx0ZWRfX2nNWUKlau1VF MYt7xcvJwRjd9IJHhtrch8Z6cV/gJ0NbqjpAB0Dd2aO0DtBpuGSu8ms2B1LWFMX6k6FD3jIqgca p6fH9BulZr2Zk7PQfRsjO8Tq5ChdUzLOshxr9rRaTGp4t13sW6palgEhPlyWH5BO3HatY3399ZP f7k3SnPNezSk0hBbRbns6xnK8Ypcv3qxTy85i9RqhdSr560zlei2tHG1QTGPBKH+LdSa06bpDpe 3wv/pPYEUaRu8a1W6GuxjK1n42ZMdehvElkQU59A44E+p0RgbqG2HSXBbXvMrFavfzfvB/gTDRi A8W4ZlljiDgavYM5guxNmWeq/t+xm9lhj7/4N9GeL8XQNx5YeW+31gA5W6hXMt46V3150NoeHYn 7hifAv/gKmQN4fqElVT9wXN48DzsFv5p8Qc91gXRuDF88Xln8+imepENP7XcJpeBGBgsPgzs1mO 4PP1XLSvud6KtYNsnUg== X-Proofpoint-GUID: 707idYfVyiyq9crw1LgW9u-FWY8kFxZA X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-04-08_02,2026-04-07_05,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 lowpriorityscore=0 phishscore=0 bulkscore=0 impostorscore=0 suspectscore=0 spamscore=0 clxscore=1015 malwarescore=0 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604010000 definitions=main-2604080035 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1775677926753154100 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 0670225d858..a23cc475a98 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 void hexagon_v66_cpu_init(Object *obj) { } @@ -309,6 +312,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) @@ -408,10 +441,58 @@ static int hexagon_cpu_mmu_index(CPUState *cs, bool i= fetch) return MMU_USER_IDX; } =20 +#if !defined(CONFIG_USER_ONLY) +static void hexagon_cpu_set_irq(void *opaque, int irq, int level) +{ + HexagonCPU *cpu =3D HEXAGON_CPU(opaque); + CPUState *cs =3D CPU(cpu); + CPUHexagonState *env =3D cpu_env(cs); + + switch (irq) { + case HEXAGON_CPU_IRQ_0 ... HEXAGON_CPU_IRQ_7: + qemu_log_mask(CPU_LOG_INT, "%s: irq %d, level %d\n", + __func__, irq, level); + if (level) { + hex_raise_interrupts(env, 1 << irq, CPU_INTERRUPT_HARD); + } + break; + default: + g_assert_not_reached(); + } +} +#endif + static void hexagon_cpu_init(Object *obj) { +#if !defined(CONFIG_USER_ONLY) + HexagonCPU *cpu =3D HEXAGON_CPU(obj); + qdev_init_gpio_in(DEVICE(cpu), hexagon_cpu_set_irq, 8); +#endif } =20 +#ifndef CONFIG_USER_ONLY + +static bool hexagon_cpu_exec_interrupt(CPUState *cs, int interrupt_request) +{ + CPUHexagonState *env =3D cpu_env(cs); + if (interrupt_request & CPU_INTERRUPT_TLB_UNLOCK) { + cs->halted =3D false; + cpu_reset_interrupt(cs, CPU_INTERRUPT_TLB_UNLOCK); + return true; + } + if (interrupt_request & CPU_INTERRUPT_K0_UNLOCK) { + cs->halted =3D false; + cpu_reset_interrupt(cs, CPU_INTERRUPT_K0_UNLOCK); + return true; + } + if (interrupt_request & (CPU_INTERRUPT_HARD | CPU_INTERRUPT_SWI)) { + return hex_check_interrupts(env); + } + return false; +} + +#endif + static const TCGCPUOps hexagon_tcg_ops =3D { /* MTTCG not yet supported: require strict ordering */ .guest_default_memory_order =3D TCG_MO_ALL, @@ -422,6 +503,9 @@ static const TCGCPUOps hexagon_tcg_ops =3D { .synchronize_from_tb =3D hexagon_cpu_synchronize_from_tb, .restore_state_to_opc =3D hexagon_restore_state_to_opc, .mmu_index =3D hexagon_cpu_mmu_index, +#if !defined(CONFIG_USER_ONLY) + .cpu_exec_interrupt =3D hexagon_cpu_exec_interrupt, +#endif /* !CONFIG_USER_ONLY */ }; =20 static void hexagon_cpu_class_init(ObjectClass *c, const void *data) --=20 2.34.1 From nobody Sat Apr 11 18:34:29 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1775673851; cv=none; d=zohomail.com; s=zohoarc; b=MkFjyloL5yPktwINluepALvGJKa8/iWKpE5FaCtf/UGNNudGA17EATCn9zenpgmV1RojN38WFAVnIgdJpNjDiWu3f0OE+I/5IZiE8Q/559rEAq1Ett8IGhZmXtwEdlJFscLS1s2NUwKfmUExbmVYp/654lPugnAtA/BHC26rdUk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1775673851; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=wav1l4wl9Z+37xe7YwL+2nrdPy9SuIu6zj/PutumVNU=; b=e6JcPKnFhtzLfosFymT1lZuG1NZ43CW9qRqxs/X98P3IkzgmqhLsvUO6qVfqIV0BBNVWzIVsLMDyoH0TS8gEBvLDDbxDFQgnTNxo0WALw73Htw0Aj/FBnU5wT/KNhoil0Wla9lSfk5xhhEK0PuG/p50SnGgmTs5TXrjXzEC9Gnw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (209.51.188.17 [209.51.188.17]) by mx.zohomail.com with SMTPS id 1775673851499737.4532348848131; Wed, 8 Apr 2026 11:44:11 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wAXqS-00046M-9H; Wed, 08 Apr 2026 14:41:44 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wAXqO-0003c1-IN for qemu-devel@nongnu.org; Wed, 08 Apr 2026 14:41: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 1wAKOz-0005aY-0q for qemu-devel@nongnu.org; Wed, 08 Apr 2026 00:20:33 -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 6381tMfN1795453 for ; Wed, 8 Apr 2026 04:20:21 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 4dd51da8vh-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 08 Apr 2026 04:20:21 +0000 (GMT) Received: by mail-dl1-f70.google.com with SMTP id a92af1059eb24-12c06d061abso4630000c88.1 for ; Tue, 07 Apr 2026 21:20:20 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-12c14a371b1sm6480362c88.13.2026.04.07.21.20.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 07 Apr 2026 21:20:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= wav1l4wl9Z+37xe7YwL+2nrdPy9SuIu6zj/PutumVNU=; b=i//3P2VW9kG4af4n eUu9OlyWlrmKLW5dDyugqeaC/CAChntodFWDgL0pEkbJUG43HPBluFunahFzDkRD BRtVm/6Zssiw2CdPs/wtfoji/wQlPm2eD2LU0053B+6DT0O4jIN4zyDMqhRtBU9B xZexVZ9J0RKtob5q7j9fDLHuvHLqFE+194j53ApbO8DqJ6nWP+p/c5ixfUbLcWDG BdyzkZG9lkKfeeUCEq1ch96OTt2lpwkxD578cT7PJ9Fb/A7k+76j+iw92TH7XfND eXfjo5LCjav8b3VJKygLx3NWWzVeOJ9kBopCFAY/gQUOwBCmE/QYdmHSzaZ7c4SF 1pA8Cw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1775622020; x=1776226820; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=wav1l4wl9Z+37xe7YwL+2nrdPy9SuIu6zj/PutumVNU=; b=iMiXDSR19QNXXfB0GhbtLEDcDUSfUj4nSVr4f8scRamTuCe0brTRSpSEDDzR0CTk6/ 6N0MH4SRzTesDwtiwgFoj8idl+GlQ8xgTYI8PJ4V87sHhWucILIBvv3LwLD2Sxr5qur3 QR3soy6PHe3DdPGJIj95BY1isTJL7FkBsWazhobCo5bL1/SB7sVkKxf0DFfLXZIfPeNP tUCy6gVIP3PZF6Gj7EKbQYlL0kaIHfUzydx1Sq8u4PShUrccMUTJSXDEBZg/6f0cPT4w zApOWP/K4CDhWtuUfVQutCt+5gGlKlM05h0rBpKWT6U+CORrzCmZaOiZx7KnEQPDnuTe fBIA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775622020; x=1776226820; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=wav1l4wl9Z+37xe7YwL+2nrdPy9SuIu6zj/PutumVNU=; b=C8xTz6H6uDHNuzOzYGdZ6CbiL0stAPnbwxaBwa8QMosAVjbgn8brZ8oX8zSXdvPDOW rDuIAgr9KjJAJZV7u1GkBRY4DifRNN+ty/zQniMADM7LhnFzSgJqNW1L5ZLnAIp2+dz5 64A+JDhcjjPIr4ubz0L77a9yPxSA45IZWhnvdvXSCpXXl9dzqDi+YWKRvW8GzIxe7vEU X4WXALYqDMxlHzbWpoDMPK7TASc4ipxUrQAKwznXYmD8XIaZmwtknWOUVxkWRUBCi2x8 kZNrEX1wWB5x73YI9Zv0LlqXDqrwnZrmcvgVcvRWzEe0OtppoWx/kEYE+52Wu5HJ/dAw 4dtg== X-Gm-Message-State: AOJu0YwKKuQ41wg3oQ3gAt19/yZEt/d2XEyb5098+REhf92D9kwFD8NA oMV3GuTFr5i4pUC17NjmVDKS82uevTx7mxJV8jePqSHjTT4MBVuxzmhcUAsgeT8ujldG6S8Z8u+ DV9t/lB58Ffro+1MAI7jWhwVCjIhJEMovHKd9sDRSI+eVW5MfPVMy6JON/5aF8cnK4g== X-Gm-Gg: AeBDievi93gqsT9w9MQB43kpMn1m5ttkTmiBFyIVmUSCWbIIrZJ936+hSdBeezFfdh4 SeTC4z2V20wuQB9jl/LRs0MyLaWy02MD20vPueytGkWShqAKnypeVr3MiePYnGOCjw+PChY53j3 6GK11X4qF7sFW2F4suUH7EoSFJt5aZU8tRYlUPLd+a6YkPRRyBsd1RaAklpb/sXEcvvWMRH/Be1 B2uZqRiwtVGtUvxdEALXr/EmQCeGoiC9BkeBaTgFjV0EZST47XNLgOTYrN8LQULZwxCww+FLx29 0pPNNVk+0Vc7xhawPyqrZSVj8Tk1hQifOCGjhmqEeJR00Qfj2AZF1hqAsJFQxqQ4HOO943gozC3 u+JE91cXgUo/CvD0p1GxmXuZiyrG9akJ8/EChkDp6H/cj0Sx/3WEnZFmiz6qzdWXInuEmRQ== X-Received: by 2002:a05:7022:6b85:b0:12b:f899:717f with SMTP id a92af1059eb24-12bfb6fb68bmr10049627c88.9.1775622019995; Tue, 07 Apr 2026 21:20:19 -0700 (PDT) X-Received: by 2002:a05:7022:6b85:b0:12b:f899:717f with SMTP id a92af1059eb24-12bfb6fb68bmr10049615c88.9.1775622019498; Tue, 07 Apr 2026 21:20:19 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, philmd@linaro.org, ltaylorsimpson@gmail.com, matheus.bernardino@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng Subject: [PATCH v4 11/28] target/hexagon: add simple cpu_exec_reset and pointer_wrap Date: Tue, 7 Apr 2026 21:19:36 -0700 Message-Id: <20260408041953.1899532-12-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260408041953.1899532-1-brian.cain@oss.qualcomm.com> References: <20260408041953.1899532-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: rjpDAg5FYjAhpbWU7Pfmkpk2Nu741qCH X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDA4MDAzNiBTYWx0ZWRfX8YjfIfhbTZAB oC4GnkOjQMgZHBRJ1hUWGdDmah5Gw/8c2KPFDrGX1rWqLBO1aRbrkdGHevX9ZrGstc5LOEUoZwC wSriyJWPR54Ww7TYYNXwXyXE6glNfG82U2KIWOlmS2w6NLGn+8iBS+IaWW42JCbhp5nMkWH0iXT rX0GKpWJ4DNWfMORTi8N4f4EBhUX+4JUckG2WP8/Bz6wr6ml1id+hf4z6mswvXSz8WC3rzsVNGa 1aGpxWMOne5DOhh6WGqgKZb3oPdR+l3UXbbJpCr7tEHp2k+R+dTwY5OUYT/uhopLS+YHz4IvX1l 52iGwf5ESSyEoalfm3+EssrTgyIakZdKMkf4501TV0BcahrrwHOHvRHAhSmnbsnudJSIAVkJdJN ub3orQ2qzesa8AicyFdR/P/Hv1ApQ+aNjIr9q3J9ewvXnOgb/SVY8P0N32aDqsiL5Z2LDcR9DFp dVtnkBrucjmXsnvkXgw== X-Authority-Analysis: v=2.4 cv=AcaB2XXG c=1 sm=1 tr=0 ts=69d5d785 cx=c_pps a=SvEPeNj+VMjHSW//kvnxuw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_K5XuSEh1TEqbUxoQ0s3:22 a=EUspDBNiAAAA:8 a=pGLkceISAAAA:8 a=O9wV_FzQyngHLK0UYg8A:9 a=QEXdDO2ut3YA:10 a=Kq8ClHjjuc5pcCNDwlU0:22 X-Proofpoint-GUID: rjpDAg5FYjAhpbWU7Pfmkpk2Nu741qCH X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-04-08_02,2026-04-07_05,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 adultscore=0 priorityscore=1501 bulkscore=0 malwarescore=0 phishscore=0 impostorscore=0 spamscore=0 clxscore=1015 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604010000 definitions=main-2604080036 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1775673852564158500 From: Matheus Tavares Bernardino Signed-off-by: Matheus Tavares Bernardino Reviewed-by: Taylor Simpson --- target/hexagon/cpu.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/target/hexagon/cpu.c b/target/hexagon/cpu.c index a23cc475a98..adae667293d 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -491,6 +491,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 { @@ -505,6 +511,8 @@ static const TCGCPUOps hexagon_tcg_ops =3D { .mmu_index =3D hexagon_cpu_mmu_index, #if !defined(CONFIG_USER_ONLY) .cpu_exec_interrupt =3D hexagon_cpu_exec_interrupt, + .pointer_wrap =3D hexagon_pointer_wrap, + .cpu_exec_reset =3D cpu_reset, #endif /* !CONFIG_USER_ONLY */ }; =20 --=20 2.34.1 From nobody Sat Apr 11 18:34:29 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1775674053; cv=none; d=zohomail.com; s=zohoarc; b=gHiygQ0VG6L1hTtW1szyAK8ZKj+/EFkDQ39VNigJZN9TDlwsDLm8oHYuVrEhp1SOisEE7RkiN6xhmh+ZlI0+eXk3Qgvn+DbD9i8cvn7oXwV/Wdk3QQFIVNvl4rbFMWi/ojD9Z+oD2gKvfTQ3PJrXs+u6njDTLhNIpkoXX+rOW90= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1775674053; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=gDbVyMRCmszdUrQpfq4kD840ZbzWrxWbhRin4jc7a80=; b=dE/40XaoBj0qrkdV8L4S7ITfzzpkBlGUuPIH1rYdlxRvDZBjlBWugF1KkyO6ioRuz2b2RXw6VfX374OMhS+kXDA8NaE+4Cu6Dvn7G/lN1NAfowrfZIPQJrubWuDQ41pctBW0Ktw6dZXXo8Eh/lOIITahUVhqPY4sW3NyPcHzh14= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (209.51.188.17 [209.51.188.17]) by mx.zohomail.com with SMTPS id 1775674053420554.3402246733997; Wed, 8 Apr 2026 11:47:33 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wAXqT-0004E1-9X; Wed, 08 Apr 2026 14:41: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 1wAXqH-0002hG-11 for qemu-devel@nongnu.org; Wed, 08 Apr 2026 14:41:33 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wAKP4-0005al-En for qemu-devel@nongnu.org; Wed, 08 Apr 2026 00:20:37 -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 637NfdAo1259461 for ; Wed, 8 Apr 2026 04:20:22 GMT Received: from mail-dl1-f71.google.com (mail-dl1-f71.google.com [74.125.82.71]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ddbttrqpv-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 08 Apr 2026 04:20:22 +0000 (GMT) Received: by mail-dl1-f71.google.com with SMTP id a92af1059eb24-1276e71652fso3470660c88.0 for ; Tue, 07 Apr 2026 21:20:21 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-12c14a371b1sm6480362c88.13.2026.04.07.21.20.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 07 Apr 2026 21:20: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= gDbVyMRCmszdUrQpfq4kD840ZbzWrxWbhRin4jc7a80=; b=eh2yzwpVwH6TPvS1 mxUYoVwk1yR69EQjgQ3rT12k/mTIRKq2NKk9fX3uU9ORD9M7iY7Uoc2E8GaEQwsq GHaf6aEpCrBvEcXqkz1KRubMJI1OKdCCIym2XBOg5Tcb5Bw5BXpMkPo1JKbjrS5j fEUuyTHI/G7A/ljVdtpoCzk4fFpPN6EmWKxHPBKcg+R85/L4f3t+Hu7f4DyJcAzo V6fv+7Z07bkcI0sEYGXEYMy0hKUY+snioXWSrDIC6V75z2rW7CxzTYZVNtd7+Z0I Q0okvK5yzJaa78ruogTdW6tjtqFLg2pIlvRKFXRNgvZSsMhbV+Olm8KHLp5BZHz1 2DNinA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1775622021; x=1776226821; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=gDbVyMRCmszdUrQpfq4kD840ZbzWrxWbhRin4jc7a80=; b=cT9027IgIUl959LtbNOwFMzOnk4SgbyFzlSDP7nSRk1/z6eD3Yzvzm19qyEdmzrc/R ACZIStkmMt9J8MZF+LZvLM4mrg0Hodnb4+9XhonkrlizxmbKbm1l+CNJne8wMwPKTxQq IcbNNEahnnU0g7QeTGe9QL9nEZIwDA//LUdYJ4ingPqDxitYxwBEFJczl2PgcB3/ybwp 7rqL90jmv6dOBGcRWwAlWun4pJP/YXq/Uzu9m7xQpm3546rrd3NJ20niufRgk746S8oI Yhhq1iARv30pAqKTUBhuk3+d/fa6NYNlcjlWAdpEp1sdIwSVWUQRyat9MyDaHFafVtyA UGRw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775622021; x=1776226821; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=gDbVyMRCmszdUrQpfq4kD840ZbzWrxWbhRin4jc7a80=; b=mvAWYJFzAdFfoiO/Dll67CNihodw+gALLmMmq32LBwnpTcaO33HZwfDQv/e1x3yrpm +YywB0QIWyfYiDSVrfv+IEZkW+CeuANLRWQ1YOVH5X1KJk0PxMHl5HqJ0sBcvdQnxaU0 LfxeF/kO025/B08P0bjWG5vWD7/XhcXjabliJqy20I467a5XWGFFhPsDAhCieDD3M9Xb ReUgoXWuEaLvk0MSF+0eii0HPSipZiL19olfrBBsYL/Fv0m9nrv9/QKyWaL8XUFSU831 h90+alK062HYXki353SLLR/oHTYzr2lKjTEMPMKfwqU84hKAKFSYa+HHochbbRFG1OwB 2xsw== X-Gm-Message-State: AOJu0YwURfjORLRUEPnh4cfyvWIkkCKjRjVDY3sEGM5/itklDxLyBkqd nU8G4Fzzw2E/k31iFBetY7bHHxhj27yp2BFWtPnb3o7WwGy/js0ED4r7aAMD8pD9WMFOIdOf5Bd UzRysmdTXvcbvfiuG6qwZH59KtLwjTOjqDIGEJ279jGvLpBGMMkuGr0ypLNsgjypNNQ== X-Gm-Gg: AeBDietw0ZKlDRxC5jnWz5AL3mqoaR+hxOrTC7NZOCNA/UBNjNpvagsIyXQ8+OEg/3g MA1fUf14vHab034uaghCNHKTChkOs4/uXehCqxenGLayTxMfA9hpBz+kLTcZkTkQBymm8kpjc7z mNYzL8zdNtUh848bK1sXUcJ+/dkysX72PrgZ0qD4uDaf13aeuy4KjDdi+v0rIJ5r+guri7lyfiq i2rVXoAqEfWZnU/HVQ/gL3LPZYj4NcdMs4ETj5KRT9YuiMYVFMeF708sJGAWq7Owschg9YTn4tX ya1RkPd/ngyYj4uqj/QylYHhD+CML8GZy1zcrpe3t7ZNqQMS+cAcY9TygkVfhYCX9PojhIDNAkj cT5DCTIh0nSu+FyquY5kr0x6jsr2TVt58j52Eb7WEauYAkOwJFK/AH4M2RIL/NtshD5xEUA== X-Received: by 2002:a05:7022:4585:b0:128:d4db:4478 with SMTP id a92af1059eb24-12bfb75688cmr9259458c88.24.1775622020913; Tue, 07 Apr 2026 21:20:20 -0700 (PDT) X-Received: by 2002:a05:7022:4585:b0:128:d4db:4478 with SMTP id a92af1059eb24-12bfb75688cmr9259445c88.24.1775622020345; Tue, 07 Apr 2026 21:20:20 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, philmd@linaro.org, ltaylorsimpson@gmail.com, matheus.bernardino@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, Brian Cain Subject: [PATCH v4 12/28] target/hexagon: Implement hexagon_tlb_fill() Date: Tue, 7 Apr 2026 21:19:37 -0700 Message-Id: <20260408041953.1899532-13-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260408041953.1899532-1-brian.cain@oss.qualcomm.com> References: <20260408041953.1899532-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: -0kAVQfVeFzNu_J5KZminXivoTBvTS2j X-Proofpoint-GUID: -0kAVQfVeFzNu_J5KZminXivoTBvTS2j X-Authority-Analysis: v=2.4 cv=TOt1jVla c=1 sm=1 tr=0 ts=69d5d786 cx=c_pps a=JYo30EpNSr/tUYqK9jHPoA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=3WHJM1ZQz_JShphwDgj5:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=yz7b9sy1sBSXNk6fZdQA:9 a=QEXdDO2ut3YA:10 a=Fk4IpSoW4aLDllm1B1p-:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDA4MDAzNSBTYWx0ZWRfX+mffuh+7ZKjP A7EU82Flv5seFCFMI50S0eisjPBQCTrJI2kuQ9UACtDX+Kl2tExiBh6JWSmEcgEAbukLoajlSdk TCveHoTEj66UPvILnUNj3fvyMJJ8nB4Xg2LpxZRzX3KJjFTNv2NyCIVsUGbFtpiRCI6BX/rIIFY /SNTTo48K3MwSEL4Q8PuXDTVWeiSn0WwyckT9LiKl8/s09rjK+p521gVfYlH7yT7sKGsQB6nWRb qY8CcYd7oDM9+NEwtJH7AtdyGtTkipQNcDEbXsZy7Uhsqgg7gVJnlTXj3N7GvaWNJ6/10LrHsPL H69qxvaGt247HK67kC3xnHL5g1E4cPnmSFdhYsb9o4yLdD4KbPmOQnXDnfp9y4pkQ/0JOMbGr2P +wGeLfYJUnIptu0hQJ137P58B5ZMjfX8u79pZZb1LtLhc404OJS/opQLZp0tlXmdo9+POQU0PmH j1mSyxMixOuf+nXUJCw== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-04-08_02,2026-04-07_05,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 suspectscore=0 spamscore=0 adultscore=0 impostorscore=0 lowpriorityscore=0 phishscore=0 bulkscore=0 clxscore=1015 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604010000 definitions=main-2604080035 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1775674053711158500 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/cpu.c | 135 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 135 insertions(+) diff --git a/target/hexagon/cpu.c b/target/hexagon/cpu.c index adae667293d..098a3918c94 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -38,6 +38,8 @@ #include "qemu/main-loop.h" #include "hex_interrupts.h" #include "exec/cpu-interrupt.h" +#include "exec/target_page.h" +#include "hw/hexagon/hexagon_globalreg.h" #endif =20 static void hexagon_v66_cpu_init(Object *obj) { } @@ -471,6 +473,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%0= 8" 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) { @@ -513,6 +647,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 Sat Apr 11 18:34:29 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1775674143; cv=none; d=zohomail.com; s=zohoarc; b=j3jR1irQLcbWPJKzeIk2XTYxPu8b25PKy8nmQvJsAZawWj5Du+pUGWbEq0tLe4S+QKPQ1IS7u5foQeet47ZucSVcp833gz6aaEF2untwGOJYGmykRpq59xeKAc5lE3N4bm+uH/LqynTM5ULFbU4eH+xT8D7cnr8zIm0msXuoA1o= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1775674143; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=F0cep0TaF14MbTHyoNohBMjmTyEDCIMV2M5fWWT0+KQ=; b=TVd6jmxJL7XsEputthPLhaoGorWfqWr4ELeP5FCtB0fMXv1e4OLXQz6igRfiH8IWvltGYpcKBbYuM1mpe+wcHp8qwDpJ3iIdWNvQHuZBzg4VoEIb5pHaeIVAwBbO0LFJkWCSgN/QzckQeBeGxYspaXF/VOnPvIVy8+wGZkU2PPs= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (209.51.188.17 [209.51.188.17]) by mx.zohomail.com with SMTPS id 1775674143622136.58790514969792; Wed, 8 Apr 2026 11:49:03 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wAXsr-0001Iw-Oo; Wed, 08 Apr 2026 14:44:13 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wAXsb-00011u-OV for qemu-devel@nongnu.org; Wed, 08 Apr 2026 14:43:59 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wAKPE-0005aq-Gd for qemu-devel@nongnu.org; Wed, 08 Apr 2026 00:20: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 63838X812411822 for ; Wed, 8 Apr 2026 04:20:23 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 4dd61v9x65-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 08 Apr 2026 04:20:22 +0000 (GMT) Received: by mail-dl1-f69.google.com with SMTP id a92af1059eb24-12c21dbc9c1so1092771c88.0 for ; Tue, 07 Apr 2026 21:20: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-12c14a371b1sm6480362c88.13.2026.04.07.21.20.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 07 Apr 2026 21:20: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= F0cep0TaF14MbTHyoNohBMjmTyEDCIMV2M5fWWT0+KQ=; b=Tn43e5wbMYYIsHuN Dnc3/2SieSquwm5eY/3oXAKMEKcPEduUXsz7fVzN+qfR81TDgzXVrO6kYYZtUxT6 RBS+t8QrDHPvy6ugDg3YRB/ViLhWhsXBNKy4otynYvyDOQktu/foBhzXoa/eOWWG KG1Rl6eRGSZes5bdxtsbDLTDf5EyCz0icw3aVd2KOa7EZ2dZQwjwxy9j2UBKod1a ADo1DXHZY46Ash6qwTV0oaE9kNAAItOleotcWx7A7nkpethoO5sOmpm80hCSs20/ 6Z67MSdCqnCOnqXECsL0WFC78/TiV3hT+s0fBNmSp3XhN2lJ1BA8iiBrxxiSveRw CuAV9Q== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1775622022; x=1776226822; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=F0cep0TaF14MbTHyoNohBMjmTyEDCIMV2M5fWWT0+KQ=; b=Xy16bFaDSnaHifbJfzrNltiShb27IIrCXIDpPBSwP6TzvVDkSgLd/3fwc5phyy2wBa 1bL0yJum++J5O+8Tcb+w8/rfjAHavQP8YfhY6fS+WIp1rA4GsX8IR1ympaMuiUwtgHtB zd3feN9YA4YY9fUbtF3s2uBk+u3M1rpiJPXwRt2zPoDswoOya7jXJ+EaAQcTV4tNpLAx VufqNMUu3oldpacn0ZGtIxf/aY5xSHtX1YWCMm6iTmWeL8Z7UsouFbpVVBnHZ95A+J5U vu/HW55ShyVBM2VzDLCNOULNvrhusdp6EgYq/Vfc+2xxkkjKlqk1bI4Y63jfIRVgMvh1 jPZA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775622022; x=1776226822; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=F0cep0TaF14MbTHyoNohBMjmTyEDCIMV2M5fWWT0+KQ=; b=OXO8md/a8E6ZUo7asa5mVmW9hGhf6J7ghAtwJJaik++LJIDaVUPOw9dxN15kkKDFv1 caif2TNeJLB9CwEQWrFR8xqmpigGq6D/q0CpInZu+6TeOCdhRMc4dLILPjBk6lcN1UNw IEKnR2xW+fOk2IxNtGAKOaZzJXKKBz6VOvXxc3BJ/87y05zaES79BjpmZtyo6kvWNsuS 5IfRAvAUkUDBnGFu6GRkNleLpdsIs43j5nv10mB0Za/b7NVt8g8eqmiYq+hzPBJQMe4+ 88wWWvwWrFKuTVXWtb1uwFgMF40fis+xuWGg6MOH5FTqsMM2hYA5e9SMcEetqNY6PItH 6jCQ== X-Gm-Message-State: AOJu0YzyiEcsPV70eQqBpCIg4XNNnFL6S9jE0VebTeXDJ34FE8Io4+Fm wMDJnU5aZl6iYIHSISKxBuVJu8IywBkYcmAD4HOXoY73GeIcBy8QlFxZCfwWT8q4nS3MwGvjutu qciteiBmJHmoVGWdkxYhX4wlSVxohPyAmB004IyN0W26bxgXz4o40fWfdmq24W0eOAg== X-Gm-Gg: AeBDiesXh34Dgvxwsa0TEuFFdsY7NFcSszf3ejGzXAETCOAWtkaYlfbeIdcRWraaBZ0 VD5KOhSi867EB3J/9h3nTH6bKhWhCEKHBgKo/kl5ioOqW3fFgvz0/nld5UTvN5d4m1slT4St5Bc KdzrwpjZDXce4cPrkhUjnqA0T16RwDg1pW4yGZ+p3fYM606td1IzS6/iWpoFYUVrhT1i5pBEX63 RAQeEBg05k5lCMUTI/HfUMe6B0YGw8+VDufsDRebHe+17SlUs4Mwmc49C42pvGdKVfq1TWtY6Zd sMWbmhRfQ9ZbVwSK0PgroO2KFLPaABNsg2b4/sEbuqCc5L5i7f8PmzqD6YP/TLYzhsC3qCufu3Q UHFQNiU3SwabCqsUAwhmJpOKebvSqwM/ckw5PO56Q72c82/pJ94UtAzy6uVBMVQt7NxhaRg== X-Received: by 2002:a05:7022:45a6:b0:124:9dea:188d with SMTP id a92af1059eb24-12bfb7670d0mr11370595c88.30.1775622021906; Tue, 07 Apr 2026 21:20:21 -0700 (PDT) X-Received: by 2002:a05:7022:45a6:b0:124:9dea:188d with SMTP id a92af1059eb24-12bfb7670d0mr11370572c88.30.1775622021301; Tue, 07 Apr 2026 21:20:21 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, philmd@linaro.org, ltaylorsimpson@gmail.com, matheus.bernardino@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, Brian Cain Subject: [PATCH v4 13/28] target/hexagon: Implement siad inst Date: Tue, 7 Apr 2026 21:19:38 -0700 Message-Id: <20260408041953.1899532-14-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260408041953.1899532-1-brian.cain@oss.qualcomm.com> References: <20260408041953.1899532-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: AW1haW4tMjYwNDA4MDAzNiBTYWx0ZWRfX87ABw9H0OyZg wo4OSxMYb4QzJcP5+Is17RBp46ndOeefdQqYEZlX18AimKi7MKkzF1BqMOThk9s+LvpgQRRodCb ScSKKiDQgz4C+iEJ3FCvCmT9LOvx9LDEKAU1ekn/VOkvOxkrPNiBz3SECA7c9VdrAzl/olxzZy8 oVe8RzICLl1yNJUVFGomJm8r8fuxlBcqhdGRAiuAtIv1ahpP/RRVD8nBlAFCcovX2nzFfA0DhzR dysfUPrNj+caAO/Ch9q1JYF3ojqrB5sGDQ/FZMRgqb9WcDtJL/XzY705JL9Aqx/ZD8pOXjReVeq 5MRbHOPVm6r2XSol8hgu1VmRpf76ZlgfccRPkzr0oeZBhM+E+e3RPAPH3d4GIqtbxGppPDTZhNv qn+2xOhD7inz2XEhucU2c+auFYGOFjZRCdON2bcrFpqMXWFWgaxdZr/hbn3BmNPmYFXLSDOx6XG Z1xNMaV50NCaskzSCpQ== X-Authority-Analysis: v=2.4 cv=FecHAp+6 c=1 sm=1 tr=0 ts=69d5d786 cx=c_pps a=kVLUcbK0zfr7ocalXnG1qA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA: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=vr4QvYf-bLy2KjpDp97w:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: PmR1WOs1BRYWyG1a4lgZIVUNnfYh-xHy X-Proofpoint-GUID: PmR1WOs1BRYWyG1a4lgZIVUNnfYh-xHy X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-04-08_02,2026-04-07_05,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 phishscore=0 lowpriorityscore=0 priorityscore=1501 suspectscore=0 clxscore=1015 impostorscore=0 bulkscore=0 adultscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604010000 definitions=main-2604080036 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1775674145686154100 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 6bc8287e8fe..e36eb2df86d 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -1435,7 +1435,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 Sat Apr 11 18:34:29 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1775674108; cv=none; d=zohomail.com; s=zohoarc; b=X/iFQ7MEDXBJZilot/HFwxfD4XGiwSx12WjQBYQtVQSb7MWo6SOrd5TStvq0cQea7UCSfyeEl5Ja0+RAS86T2JOerk6D9VXDQuC2o6w5TcvrV5S/Ay6uiSlmjFqaEEM1NOVus+7+cANQRvqz6x57HJp3dwV6gXGKc5HbF5I6lFk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1775674108; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=eOj4zoAq1FrIUJpyqyEImJhndv6ygl766X1sAeHwMk8=; b=C07XJlj3La3lzZOhvu2zQRfzQYH0tGn/ChE1e2TlLmwzmiOw94Pc0ux4sOugGfVbXb9pXufU51E9HwKbgQUKgXRB1WsoxDJcebwPvu2kL5VJh91Qp5YtV1rngISBQqWTaZfs8pF1bcN38xMW8jH/8B+TivjKAxd8WCoSfJDKQyA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (209.51.188.17 [209.51.188.17]) by mx.zohomail.com with SMTPS id 1775674108902927.9358156490806; Wed, 8 Apr 2026 11:48:28 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wAXsQ-0007tn-6G; Wed, 08 Apr 2026 14:43: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 1wAXsP-0007mf-4P for qemu-devel@nongnu.org; Wed, 08 Apr 2026 14:43:45 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wAKP2-0005ax-S7 for qemu-devel@nongnu.org; Wed, 08 Apr 2026 00:20:36 -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 637Nfg8P1259479 for ; Wed, 8 Apr 2026 04:20:24 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 4ddbttrqq1-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 08 Apr 2026 04:20:23 +0000 (GMT) Received: by mail-dy1-f200.google.com with SMTP id 5a478bee46e88-2b81ff82e3cso352043eec.0 for ; Tue, 07 Apr 2026 21:20: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-12c14a371b1sm6480362c88.13.2026.04.07.21.20.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 07 Apr 2026 21:20: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= eOj4zoAq1FrIUJpyqyEImJhndv6ygl766X1sAeHwMk8=; b=TZqWonORM12CQ75V IXJJUUTZV1lLy2sUYr0BLI8cCUmPiewHGGNN/Z2evNx/M9R3pMdiZNN1XzsiQjMm ZIZ1jawXMWbRolstxbgjqD8PpMSFKJnIsg5MgeeVG6+Ujks4BVpssAcSckFbM+8I j9hZ+Jrts98DqJRYBJLiAAm1o33+e76FApKlWBV9IPQAYQDrUH6isGgFaJx4IwEr 6ugtI7RVnHMfko3hHWHAEZNVslE/tRvUagkTDFLYBQte0ooUUCAp0y3jcEkMF56p siWLFXo62UX5HHCW27YhKx9LMp2gWZkrXHkGTR4GHnH+oVXtM4U3MmEoNinReC6J PGxowQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1775622023; x=1776226823; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=eOj4zoAq1FrIUJpyqyEImJhndv6ygl766X1sAeHwMk8=; b=kH3yFDLd0mPFAbF/sV/UEZ8Ee7ZAc8nqTsfBbf3lq7NX1B+eq8y7awvWY86u3YdBda HHpO9gqTwX8f37+ZfBjBhyLMMCfK9mfig1ZsqJIG4MTG4f40AROO87pp6dBUvuqoHQ9U dhYa7AHMBx55qpWnXN73vU9bGxkducC3MAf2BocwD6KZ/1ecHrvCk1ZBj6ixqTQ99IuX 8v/rLC6sqASFUU0qSydHNPPU/Wr30VQvSeI0OIUdlZZyLrs9VkrBtOs9cYbCWQGZdawf AXNi2j1FmEekbQ6OIYU0SSgPkO5wX4joOIypyuXQJHDZmelPDqXKKWn2RMmRpDT2RaEc tUQw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775622023; x=1776226823; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=eOj4zoAq1FrIUJpyqyEImJhndv6ygl766X1sAeHwMk8=; b=JqN4f8qIpFv9Fl6T15WP422X7j5biqo/qw2CkB2yNZ2pMu/71otpTnzCPGTzERP8QV ZMEXv8UqzLgG4tvnSnBtnUu7X2fyrkTt8tqdMw77xt6soworUs3FT36mkcKe2fqmol9U dEOZUH1FdfSmVYCzd3vIhDkfJIvcFbRT89bl19UuVAckM9wTRgSs/GjGmfBqCswzkMm/ Hy2O6gmcd40kZigcak/KoxJJ4cs3rM9m+ttUFARYqMT75/HStkCCMUclrix/B8I/5PtL 46tN8kSF8igT+OE+hyUEZFh6fyYSH1PAUmJqzRgWdJufWiyI1Ham/cjpGBieV77v8oNx gO9A== X-Gm-Message-State: AOJu0Yw8ChGJwx2zJMRaL5XuSGRopNlOl4DA5QyQLhw1vQLGtcQpmbnF DOp7nvUjc0zS/BDEEDCXhKUwh/T8+EF/jTlekI3t8xTaflmOz2bFBObjDHKH/QxvzSDGBWJ2CrO foDbme3uss+WRk/7OBEDntVUIXtQWcwdiSFoLcCiVRIfVYXot126ynqJjUBGYg+LJCQ== X-Gm-Gg: AeBDiesavwZ9Xg5v/ZjHG9LGkJGn/QfEWex3EGOtffTQdj1RccrWNAzItOKoTjmExgf ke7KH7P9q5+JK3lkjMf6g8JzKlsH2BMxJ33HaEMXm3so9XfGnUH/GL9EPX+Em1nISLytZsJxsKk BCMs/YJjLU7gEnZHGoTlOclAGkXOXSyDakwhtm2hMB5M56liqRNDdeakKTWoCTpD3GEPqIB+5Zi 5SVmT+Y6LNmFpBf7cCHMAfSAg008oGwXsek5wCu3s2evEjbYq/UURi2GQnmkFu4nqfiz5kUb9WV guQve+RnIe/dvx8a1cVmTxnxJfZQciCYTbcDxRod0qpp21gIrpk2JjIZ9LGbSbtAP9xsUXelshS MFrroFvLsQlL/Gfgdk+5OZHr9Waxq/uBI8JcsCK3rleYfzTqujb6JzTNb+8QKcOLS9eiiHA== X-Received: by 2002:a05:7022:1a86:b0:12b:ebf6:a3bc with SMTP id a92af1059eb24-12bfac012a0mr8102366c88.3.1775622022722; Tue, 07 Apr 2026 21:20:22 -0700 (PDT) X-Received: by 2002:a05:7022:1a86:b0:12b:ebf6:a3bc with SMTP id a92af1059eb24-12bfac012a0mr8102360c88.3.1775622022213; Tue, 07 Apr 2026 21:20:22 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, philmd@linaro.org, ltaylorsimpson@gmail.com, matheus.bernardino@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, Brian Cain Subject: [PATCH v4 14/28] target/hexagon: Implement hexagon_resume_threads() Date: Tue, 7 Apr 2026 21:19:39 -0700 Message-Id: <20260408041953.1899532-15-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260408041953.1899532-1-brian.cain@oss.qualcomm.com> References: <20260408041953.1899532-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: _87cY6I4Br3KLLJM9rKAsEHj0wwtxZUl X-Proofpoint-GUID: _87cY6I4Br3KLLJM9rKAsEHj0wwtxZUl X-Authority-Analysis: v=2.4 cv=TOt1jVla c=1 sm=1 tr=0 ts=69d5d788 cx=c_pps a=PfFC4Oe2JQzmKTvty2cRDw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=3WHJM1ZQz_JShphwDgj5:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=uy5dMy9T3THg1DqjAFIA:9 a=QEXdDO2ut3YA:10 a=6Ab_bkdmUrQuMsNx7PHu:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDA4MDAzNSBTYWx0ZWRfX+xnTz1oB/vBZ rrVHjPdvyr4oRUNB69s8hPKh6srqHI6UveBXAq4CgIuTepD5XJWvspqa77uv8J6fm6eKJqZ1Ups jEidcOGczFv3lD7XCAFq/k47uT69FuShiv9OlJku4jUxAgbgW3k6HrH44wM/oDHAs0J0OfUVGJ5 0+rCNiguFKMH+fy+8xQlMWjvAk5mKlbX3XReNlqfXgO1+gWMMzv2qothz2s8Pd9fsZDhmgAqMMV w9woziZDceOi5jjTgVHj+mX4RtUfx3QGnhtvtwkCEmw540Cyvc/DPFG4RWWVaBknxrYnnXHcWHc 4BHGwSgmbjK04OPnK0fZVh0PIOQoESYxvouufiJfabbllyWtfC5xyJBHKLQirh1fX7uVgRLbgVs Yc2CvDzSgT1BI0/YmFhEtJsWco/1qAXzfzpr07l2NiTEVmCFMQCdlH2T7Ogk5WjydH+b7mJqB8m jdU2FF73WN/Y3dT4y2w== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-04-08_02,2026-04-07_05,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 suspectscore=0 spamscore=0 adultscore=0 impostorscore=0 lowpriorityscore=0 phishscore=0 bulkscore=0 clxscore=1015 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604010000 definitions=main-2604080035 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1775674109877158500 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 2938291ff1d..1048e767e6d 100644 --- a/target/hexagon/cpu.h +++ b/target/hexagon/cpu.h @@ -53,6 +53,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 e36eb2df86d..64f1fb2043f 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -1600,7 +1600,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 Sat Apr 11 18:34:29 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1775673836; cv=none; d=zohomail.com; s=zohoarc; b=eufNPnU56lJaaqE4vZ1U6CP7pqWH1yteAzaDvET9ZUBawJkUWy+/JWAyYQ0T+YOmbYxjeloH7l1MgpRJVLwK3USPTdbS/SXJwgx58CR+6qilLXh/ovMYBe9ywH40Ozwyq+kC1LFjGlN/xUYT7wFkgvEuIlu5G47R2dNREDbO/MI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1775673836; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=uTRk/geKwj2+iRzHqb5TRYkJBHt259KZAXeA+C70Da0=; b=DrmQZ34yTgmhbesMGGUqL7NvjEDCBd4VrZyBI5WS2VTYEXBmR80z0P5Z1srgV5qfqHpZISyGNjbNZwzNr/isOVUgpWktORfEu8OOUmWbSkNbr5scdH5OCQITGMoxVvcMdDGtxZi4DDOa4Yie19Drj1f0R46WM/WMhaLwOLHIKxI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (209.51.188.17 [209.51.188.17]) by mx.zohomail.com with SMTPS id 1775673836193673.1317819537531; Wed, 8 Apr 2026 11:43:56 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wAXqX-0004Yr-M8; Wed, 08 Apr 2026 14:41:50 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wAXqR-000409-AH for qemu-devel@nongnu.org; Wed, 08 Apr 2026 14:41: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 1wAKP4-0005b2-Ex for qemu-devel@nongnu.org; Wed, 08 Apr 2026 00:20:37 -0400 Received: from pps.filterd (m0279864.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 637JlsxV1314650 for ; Wed, 8 Apr 2026 04:20:24 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 4dd8d6ha7e-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 08 Apr 2026 04:20:24 +0000 (GMT) Received: by mail-dl1-f70.google.com with SMTP id a92af1059eb24-127133794b6so9493327c88.1 for ; Tue, 07 Apr 2026 21:20:24 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-12c14a371b1sm6480362c88.13.2026.04.07.21.20.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 07 Apr 2026 21:20: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= uTRk/geKwj2+iRzHqb5TRYkJBHt259KZAXeA+C70Da0=; b=SXkFPeH/Q12XOPgP i4LT/v4rzPkDLqu57Bwsef/B2SzD8RxzDPufxrtbVh2iDgQmWsdNwIFR8VZ/hlod UfakHZxj3sl6RVous0SxOdxRukQ8Y2pctZ+JAyskXkaR9z63zuaTAsDzIzg5IZir yW9FFEpDyBLyCXbFS3aAQ/x824U07YkYLuZi7TLasyppqK083tStnZh+PncG8m/k pex1a/hgxGeWeYFuncJL9sE/13MPmYkiMvK087IBMMzzH8RT5TycZXgRrCChOwyB HBbsNekGs9gsJluYjky9wlNRMKMl9oft4HXdrzpt+u/M5wRHFYG/nYKchzmpuSd7 90vGhg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1775622024; x=1776226824; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=uTRk/geKwj2+iRzHqb5TRYkJBHt259KZAXeA+C70Da0=; b=LnMa75iV12gmxmlH4awRoz6SGPBNdK75/Q75ZBjKDAabOUK6aIGR4XkLaQIvFeAi3g 19zoosNdoTlJy2N4dLpEM9sfl4koeEkGHenD5veTbuJJUxxhrUPbHZJqXkp4YE2HiWWX ab785WWjjOn+ynom0y2NzQlybuPiXAEo4lCW/A+gbiRSPZPPzc0kQQJrOcgSVLrpMetO YailJn2o8Nfk7dk7BTm0FMaU68TioUcYlot+LdG+62rPHj5hqWUX6xmubEC9dRDYPZlF 38PhP88YRRkv6T5wZWuUbuabbmWwZOt1/t+h3QRjUYDDcT3T+Xql6EjLsx0Ih+2n0n5w +gww== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775622024; x=1776226824; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=uTRk/geKwj2+iRzHqb5TRYkJBHt259KZAXeA+C70Da0=; b=hx18lr3akznhJHsANNlwlxJamh/2j6KWJOg0ViIU50oq0hcMblrsLOQ11A0Rxly8dh 4Pgskuk/HJLDsgzsHN4v39F/ZQttacqhowY1dW4aCxFjA8sWssn8QsuTI4ZPuH5/oIWp fW/Tw/GuCDVUUfY0wTa1d+N1GBhqgBNmBx26cm4TynkhTy8qk520k7PlQ8L9Xp9Oyo2M PvnDgEZ/3UzrPkHkFjGEALo0wQ5B9BS68FQGdmXdjJLYTbP5RW5qVJNDFUZQEYzfpPOo eSn3e06HNgLm2PXWcDBe+IkEjmMbFQ2aoWSUH8BBaX3VsJgRSz+rX6skDGwNgQnPIw0o TVsQ== X-Gm-Message-State: AOJu0YzF8ylls7yIuanBRxhu8K28+3pzKJ9BQ1ZpxjWBb13zfz4/UiB6 m0cRUFd8JKchQUChMf8pZHGLdj/7NlqUVnQZVe+Sw6m/JUNwbeY9sCMtFc+UgwO+LisHVQ22EzM vhW0rbaDG8QreYgaiVjREErhgt03vRaxRDnTcze7j9BUZylPpm08l9NDBotkTOw+vIQ== X-Gm-Gg: AeBDietEuQNY40jMauhgpqj87w5N5xSn6ghS1sHhRFfGUZXp0ZPI/LTyJxnIAmA+fUL JPAjAz1dlZbsPMqDLTx7oEnPoD5lkyVLGSJ9hIMiyHPRcp3cxZXokIbG/Xw474BYtl7GizIn5fS G2Ht5jNBMN4rog1wSvYcZgMZj94HqZVgcZsm1WaKIfeW4liygS6XKbQuPztRG3VfFiJmep/QRLU kBqBYG0GLzhd8vb9papuGboH++vZA2C9lm5Ji+Xg83cDaoeUU7nPjv9n8QY5eD7H40ctdF9p+iw WZADHd1rgoYGdmuwEfhoX67oYJv8OSttuFp6Y7w/vS+lbltt+KHbJFkY8RKiog5nh8VounVe9US E3FlGsz8slE/3vhU81Xm1ypb4HWIA5uSs+SOvwj35YhzPuCqu8aJ8M9y9lUxizQNp75S95g== X-Received: by 2002:a05:7022:43a8:b0:11b:9b98:aa4b with SMTP id a92af1059eb24-12bfb6ec461mr9948638c88.6.1775622023574; Tue, 07 Apr 2026 21:20:23 -0700 (PDT) X-Received: by 2002:a05:7022:43a8:b0:11b:9b98:aa4b with SMTP id a92af1059eb24-12bfb6ec461mr9948628c88.6.1775622023009; Tue, 07 Apr 2026 21:20:23 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, philmd@linaro.org, ltaylorsimpson@gmail.com, matheus.bernardino@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, Brian Cain Subject: [PATCH v4 15/28] target/hexagon: Implement setprio, resched Date: Tue, 7 Apr 2026 21:19:40 -0700 Message-Id: <20260408041953.1899532-16-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260408041953.1899532-1-brian.cain@oss.qualcomm.com> References: <20260408041953.1899532-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: QTKiXLWHv2a9UV7yeXNSIwD7UO4cQkGx X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDA4MDAzNiBTYWx0ZWRfX/Jjj3IcLKVKS iguZqe2Y0D8TzqJSJn1q2mOmtWFLrMmiwEjJLcsYi52KxIj4zcAVnnmO2+DDTBte8kaYZouUtwE gBwHWJRA6DfJP3C20NNIbgnpQzWScVu3Y7/h3BnTk+OKPStzrhmJuffqsko76bV2ZV/IOH6zG20 PMjJLmwhxzETd0j0keq2BXS6qrUxFvOobaywA4XCu2YprmICuUleHkNVILO5p1eVhCThwEAT9jh TSVoxP+tFN6lVVl213u2ZqR6Tq0FCiUvtikEBHogqnYD39goKvJFkbwPu3Sj65KylQPKXIqBLIc kkzDAIzVaILt0Zei0mvHippVSuhUUoDeKmk65Qamk2edmmE9lxkvugmpXOyD6bS9mpRrnEXw+P7 S+Mx62n7HA+dlmWSIOgCSuy+LkrIkrUoSolKr/RR1C0Dy7pqu4IOnLZsjfiNwu9kE00QZ0rM6fK akCElDDo7PIB6x//PKw== X-Authority-Analysis: v=2.4 cv=GN041ONK c=1 sm=1 tr=0 ts=69d5d788 cx=c_pps a=SvEPeNj+VMjHSW//kvnxuw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA: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=Kq8ClHjjuc5pcCNDwlU0:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-GUID: QTKiXLWHv2a9UV7yeXNSIwD7UO4cQkGx X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-04-08_02,2026-04-07_05,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 priorityscore=1501 phishscore=0 suspectscore=0 clxscore=1015 spamscore=0 adultscore=0 bulkscore=0 impostorscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604010000 definitions=main-2604080036 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1775673836980154100 From: Brian Cain The hardware-assisted scheduler helps manage tasks on the run queue and interrupt steering. 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 64f1fb2043f..74a04398aa1 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -1589,6 +1589,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 %d," + " cur PC 0x%" PRIx32 "\n", + __func__, 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(); @@ -1697,8 +1755,27 @@ uint64_t HELPER(greg_read_pair)(CPUHexagonState *env= , uint32_t reg) g_assert_not_reached(); } =20 +/* + * setprio/resched - See the Hexagon V73 Programmer's Reference Manual, + * Section 6.4 "Interrupt and Thread Scheduling" + */ 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 Sat Apr 11 18:34:29 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1775677209; cv=none; d=zohomail.com; s=zohoarc; b=D7BEfoJKei0F+nir1/kn32FuNa3ZXmG/IfHrjb9+Tc1lGmzgaxfPzjkxkUXoMMtZqujO3PKDpmqaKL8YcSd90HikdXwcpkA/GL1R1SAdkDz5SzyfqIMzjhnlvhNf8VyGvY6a9xo5HfdqRo+ZXFhDX9N8KX6m2gafSbjWnz5WwOU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1775677209; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=iJlxVqc9a+esaq2TZh1GcmabM5YIXyFJZCSgwVwtsTU=; b=cVgLYsDlxqnGWDr/Ox4+dtxXSgTKSMTOPdA+lBcbPnc0LEqfNCU8/TDOBcD9qWKS4YVal5aN71OtJdP5J0iomkx6ZJlKTE1+TwK3F4B6fbjtkMrh/vtnLOncuWjI3RLulctmXQj0s9yUBxooBna9ujPUS/XPp4fU0hv6y+VuS2g= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 17756772094561005.1767455785974; Wed, 8 Apr 2026 12:40:09 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wAYQ4-0003yN-Eu; Wed, 08 Apr 2026 15:18: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 1wAXtQ-0002js-6E for qemu-devel@nongnu.org; Wed, 08 Apr 2026 14:44:48 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wAKPE-0005b6-IG for qemu-devel@nongnu.org; Wed, 08 Apr 2026 00:20:53 -0400 Received: from pps.filterd (m0279870.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 637M6NO32450585 for ; Wed, 8 Apr 2026 04:20:25 GMT Received: from mail-dl1-f69.google.com (mail-dl1-f69.google.com [74.125.82.69]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ddae68wmq-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 08 Apr 2026 04:20:25 +0000 (GMT) Received: by mail-dl1-f69.google.com with SMTP id a92af1059eb24-12bfa367189so34583531c88.0 for ; Tue, 07 Apr 2026 21:20: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-12c14a371b1sm6480362c88.13.2026.04.07.21.20.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 07 Apr 2026 21:20: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= iJlxVqc9a+esaq2TZh1GcmabM5YIXyFJZCSgwVwtsTU=; b=l87NV24KOPSSQAW1 v4cNysAhCR0IQJwe+HgB44BSshx99OMuXhOWhpG/gbAdSfgw6di6xVEpd5+fkjMn VSgEuE1YQGK/TF6h2bZP+FaZVc38dTEa/9AngM+Popyh/jtaFcoeZQ16M/Hokyr7 le8841XwqFqUnavO40tINTbuFyDskBTkypNYcM+GvfL5BPG4WFF0m6zGsrmpi8Nl qAml5pPuPFyskQIzvKjEwapduX9NkKPeCrVdkbJhSHuealsmETCVYkq79AP2VnPZ 9uX7RelUB5dBLiDpAb0OJpvIHLgDnXerZ0Gh8RerzOhflCmQQWs/2pfpm7ExiWII 9KhcIw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1775622024; x=1776226824; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=iJlxVqc9a+esaq2TZh1GcmabM5YIXyFJZCSgwVwtsTU=; b=ZCtlaK5tXn7iFg0Bxlf893Fbz/wheGB9n5MeAPQFQTCkK3KDmyZrbtss98rYRn25qc Ag3PZZfYrgBvHdi52ApsP/ggLwrMBU7585yBf9JTtHh6XP4uYBRYXikM+fe6HZX+Md75 +/84cJHSO0vn6HCfW+s3vjyHwqfrRhUeYXyCk6W/68bX6Vh6ddwKCqoqDEA7DFYNF9p4 Tvz3FcVSTTZahjV+S6KmAyPqD33nuFUIY+w4CNv7bnNxFsU01IS7oZGmjvGD0UBAqGsJ 89ZH2Wntz7VGf0eekX+4YAQh7KCApJvEO+cOkLDefcAiCFb0jghXuUQDKAQ4EFIJZAnQ TCfg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775622024; x=1776226824; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=iJlxVqc9a+esaq2TZh1GcmabM5YIXyFJZCSgwVwtsTU=; b=RpYbtaAfnAV19cYxa1daNUBbd7heaT8xhH7ONqsL+m4CC06uzn6a2ToVF7r9/ktssS l2a1MqVf2xbj9+viK+0wSgWdn/E8p7jx/8zWTxVYQQaMseNDvRwxF79jWSC8EntdtZwi TgN/ThZrD0Rnw9/Hcu8sv1JraKc6dw8bpMr55nCQ3AjWxyzvsVbOqjnEn06feDFy4o7e AHmPIDL1f1BAmFk/SrXf/sED0Mwn1zm5FZfjQ8lnZrAHPU+R3wghsyEbmTxa0pQ8v3CC /Pyw8yoId+9nZTum6tLiYiCIgUc6jJUrQQEmA7adzIADypDKuBxlIjgK2wZKVjYfOBGz SpQw== X-Gm-Message-State: AOJu0Ywtj2WT9W9P+iX3WWaDCNBgzMexg7j72pHooCzbsxlmVffb5cSq /SOECeJxiNA70IhXvzybzEh7qW071D+hfNi40bEaW4jIRNmzFnAsZqnSZhZt/xw9vD4XXrE1Wmg fM3rgMFEk45Csao339hjeM5jVA8iiCJZL27exAlutPv4CUPmuNFu+0udwE2iiG+WcVg== X-Gm-Gg: AeBDievFqUfAAkCL/GykP0uKruETvitKrOdSLqzB+7lZIO6GxEjxtsOrSPAA4S6D0Fh HKm3ItBNJQZpiImn6qcFtVR2uGsgnanXsThSpyDbNxZZe1/oCVpz1dV+2KhPquWO/lLyzGvbUWE bSnTcDQ2OzGaSB0D/FET7rdA6n8prGWOl9gbIKsvMo6VJiXJ5ZNokvhouvCz83mr75yLiCndpM9 KuPxwbRbjUoaUVsZtgAm+N67Cb1DqokCXnJjtDVlF/d5JrzacHnxzJernlwS+HHmwO+OzdmLnsF KdZfj0GSau9L+ZbYHg5yxcQWrONiXiHqe+cJztyoLXHAIkNQuxThVSchcUJwS1mEUjt1iwADI2X rXfut98/9vWUjQ2Fvv+nI2K8v+JbuLW+HbVX67TyYFLYiU5hjw4FH2lTpU7yz2Lg4wvnOKw== X-Received: by 2002:a05:7022:fe04:b0:11a:641f:ba11 with SMTP id a92af1059eb24-12bfb7601ffmr11058321c88.29.1775622024438; Tue, 07 Apr 2026 21:20:24 -0700 (PDT) X-Received: by 2002:a05:7022:fe04:b0:11a:641f:ba11 with SMTP id a92af1059eb24-12bfb7601ffmr11058298c88.29.1775622023877; Tue, 07 Apr 2026 21:20:23 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, philmd@linaro.org, ltaylorsimpson@gmail.com, matheus.bernardino@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, Brian Cain Subject: [PATCH v4 16/28] target/hexagon: Add sysemu_ops, cpu_get_phys_page_debug() Date: Tue, 7 Apr 2026 21:19:41 -0700 Message-Id: <20260408041953.1899532-17-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260408041953.1899532-1-brian.cain@oss.qualcomm.com> References: <20260408041953.1899532-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: AW1haW4tMjYwNDA4MDAzNiBTYWx0ZWRfX04iJ5kFmLmh1 hkhBVufMyB+qsuNtu/OJe6GIqsY++98cRJWPbnfLaIbyiviMS+qbxucM4t1IcThvGNXalf+RhhB IFQNanFl/jrrm0e/fKWXe+2oXREc+pYtFrVSAtByNep0BWPXUtTtuMCMpUzkaJPEjR7dZeklP/U I0dk6cCmxsVWo+4wTbGCKMEyhqAH5MtIcKs1tBh8PnS7947N0zhJhbOYqPHG+uZR8QaNAOuemTt O9V3QV9m2/7qDbmQaj8G+YcSDe0YCBmqIhsd9eMS5WJKGSkXhUq73uTAmiaJVJAjGfvHraBh+94 VxWgafXy989/jtMSqj8WMm5VapTNEqp7VYW5L7Hp3M1Xo9Ah8XDBf2pcwH6fF8CbOdcukkApfI3 wdS6g3CWevsPBgEUWTXcT7GgxKJiOfmXHd8dwfzno3PVN1lnfYthMxpYfoELu44XicDQ1ve8JLs 3bjHgT2Ng0lp/3QXIPw== X-Proofpoint-GUID: EJKSeXV6XraUGmbqf2JHAJVABVtU0WV3 X-Proofpoint-ORIG-GUID: EJKSeXV6XraUGmbqf2JHAJVABVtU0WV3 X-Authority-Analysis: v=2.4 cv=K4AS2SWI c=1 sm=1 tr=0 ts=69d5d789 cx=c_pps a=kVLUcbK0zfr7ocalXnG1qA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA: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=fg0LxJQkbHe3Ved8Rg4A:9 a=QEXdDO2ut3YA:10 a=vr4QvYf-bLy2KjpDp97w:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-04-08_02,2026-04-07_05,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 impostorscore=0 lowpriorityscore=0 clxscore=1015 phishscore=0 malwarescore=0 spamscore=0 bulkscore=0 adultscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604010000 definitions=main-2604080036 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1775677212336154100 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 098a3918c94..d130a02f5d5 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/target_page.h" #include "hw/hexagon/hexagon_globalreg.h" @@ -499,6 +501,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_page_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 @@ -606,6 +626,13 @@ static bool hexagon_tlb_fill(CPUState *cs, vaddr addre= ss, int size, do_raise_exception(env, cs->exception_index, env->gpr[HEX_REG_PC], ret= addr); } =20 +#include "hw/core/sysemu-cpu-ops.h" + +static const struct SysemuCPUOps hexagon_sysemu_ops =3D { + .has_work =3D hexagon_cpu_has_work, + .get_phys_page_debug =3D hexagon_cpu_get_phys_page_debug, +}; + static bool hexagon_cpu_exec_interrupt(CPUState *cs, int interrupt_request) { CPUHexagonState *env =3D cpu_env(cs); @@ -648,6 +675,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 @@ -675,9 +704,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 #define DEFINE_CPU(type_name, initfn) \ --=20 2.34.1 From nobody Sat Apr 11 18:34:29 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1775673854; cv=none; d=zohomail.com; s=zohoarc; b=QIPo8hCZIA1xncSqBCDkf66h6VOJrAk6T2gxc7GzydN5RmOKBM5IHbKNJTacaQl1EmEckpdoM+b6/1nZ6/CMZJpaaxQUgLwm8ccNU0gQoWhbJCJtmdZYnsEnlOQG1PTTo6QIQdBArJTB32k5beyEV8tFL/fwzuZ6J2Mvf5SrGY4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1775673854; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=KmLI/i8A+mCi29CsGc0G0ndA/gMGjKWNIKX8zxNuABc=; b=GtT5EQKvksgyPkKqFAPCp4lv+XTUtyuv67YERohjYrLFgJQI12IsERtNk2cdBxFPvxpHDxJahnKP0xKbQliWgA1lc4+969Hwr5qQ3MjMQ3ksMT38dKM8ldR1RyIDI5XfX2naztULxSEjstZ3FhGScqr6UcYwZXdmeer5xdSqpgQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (209.51.188.17 [209.51.188.17]) by mx.zohomail.com with SMTPS id 1775673854968299.7305571707318; Wed, 8 Apr 2026 11:44:14 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wAXsf-0000vV-9V; Wed, 08 Apr 2026 14:44:05 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wAXsW-0000LI-3Y for qemu-devel@nongnu.org; Wed, 08 Apr 2026 14:43:52 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wAKP2-0005bA-NA for qemu-devel@nongnu.org; Wed, 08 Apr 2026 00:20:35 -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 637M3Jsl1619682 for ; Wed, 8 Apr 2026 04:20:26 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 4ddacrgxj6-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 08 Apr 2026 04:20:26 +0000 (GMT) Received: by mail-dl1-f72.google.com with SMTP id a92af1059eb24-12bf9974587so27824703c88.0 for ; Tue, 07 Apr 2026 21:20: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-12c14a371b1sm6480362c88.13.2026.04.07.21.20.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 07 Apr 2026 21:20: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= KmLI/i8A+mCi29CsGc0G0ndA/gMGjKWNIKX8zxNuABc=; b=cmyG9EJWGlaOI7CH Dz36wM5wR4QaU4E9ex5M1aWvGEyJ/o1QCgsgcKbpIM/uuSdKWJnF1FLQRt+fBY/2 EdB12L1+EOmUn8KqFahAHwliGtQlEkoKE3WChGgi0DlWgeJo7uirshwVihg2bCSu irX7A6UAi7auaLZegbjPeUy9+p7bi6buy44pLUvz4qj6h+7n7empYbmWSgNw9MeL x5xEZTQphf85zP+DIuGyI2ZBFBMeovrKuZGUADlRxTEnfHzvbJFa1qCAjWneaME3 iPBMG1B4VHvoUr6f3+snRrF/msFSOeww4kz7d2zwAUlR5263js83fLXivLpahVvD gbQsPg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1775622026; x=1776226826; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=KmLI/i8A+mCi29CsGc0G0ndA/gMGjKWNIKX8zxNuABc=; b=HadKBqRDzyPmEVdUif6JVNRcMA0aFDTCDNuhzayaEqOM/MiTsSHVGE3sJEMBcMgpIx p2HW83Cyrxbf2fu02fpuwvIUXZqi5LnCObukTVw9KfrXO9dtJgXjKaDKCd5s71TnBRbD WZEU4bpPxorPilpBh0JQojL6sYBNil3LRyUjyj/rQ56viWY2RCChvTz+VRUdwHuXq5zD dRqHO8RjDTSJQ1GDFxXUrk++p0i+EOOSPZtY6vYRTkLOAXJiWfQcAihL5lRcGuJJ2E9I XzU0RqFmF+Gd6nTsf0VlYxFGdR5dIFZFvb20p8PBPPrbXZETtZHlndzOVdXIxeqI8fZk YQNQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775622026; x=1776226826; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=KmLI/i8A+mCi29CsGc0G0ndA/gMGjKWNIKX8zxNuABc=; b=Xzuul+MC945DxHyhb4rY2YY4c6wTHeAD5U10j5ina/mIQKZr+rKP/mEWymvWWuTAzZ JcJt36fsCk7VTfWCzJVBf+mHPs6Mi2lE8EcDJld+PBavvRhAQKfGFPjrd58rvSXmInip 2NRd3Lp3QhYs2kJdeTaxoqXP3CWQ1irQ9knt0jNsSuE4OtOXfpw521hRDDSSBWPZIU1X HJF7LPVuMtB7fRYPPeIlQyhM01WVpDCWlzVW92kMXH5KaB6lLwsSsFlUuHz90v4jfQ7w HwWcolYqh9A1yaX6ANJfc0+AAv7QMu4+HDETqrcx4NZgTl6Z84XNJPjfNhnw1186oWGq 9edg== X-Gm-Message-State: AOJu0YyXlm7CWAiSaNsdKdgpqa7MMRegPBZiKT8x1HoALfQoTg2VToq0 6wGpWvsy6B8HHfoncqqF4WVrjiWdYz4QhdWBOPGd49lnWrhhAn6dEjokM5S5fTZw/4ZKwD6dn32 TAq7+S50gVRbTv5PcseLMJXB++pwH6Rjua6+ZfP/xsyjZ/oUHwAotrAGkXCW7g4w7AQ== X-Gm-Gg: AeBDiev/1i9i+bjPrr5ElPPYLsBZQy6PivLuasNOt8Vl8sY7t/PQDvVXjuelgDYZ7+P LcCSJV1CPNYPQAkkQdqShz9zFv8wejxs3RjZmAT7BzBI+WDdZTMMlfBB/skjkBXLoRU6TA41WVN 2JQEXvhTOc4NrHujEol+PUjvi4HVVIMdnJ01LaYh4CjNo+luhRsnS621cBy+sQLDICQKXQnwFIJ SIhigNGZEc6tWZLAjU5eYRmUmTU1DAo0rSR6yvxUfVwXHhQe6z4Tdlz9LRaN6deNDNwcRuRnRj4 UCnVvSbYqzWXR6bqhcARy0HMWELv1HmsRTgA/JagINVz+jCVCtErgHS///7/sLaaocvYXZN33eV Brwtr//u4Rnekb2LT8wt6AwGBa33EPrKF59otgn1ICvAkcy5BFVIxc5GqdR9MTs2OyCCbEw== X-Received: by 2002:a05:7022:6713:b0:128:ca6f:adf0 with SMTP id a92af1059eb24-12bfb74c93fmr11349249c88.17.1775622025607; Tue, 07 Apr 2026 21:20:25 -0700 (PDT) X-Received: by 2002:a05:7022:6713:b0:128:ca6f:adf0 with SMTP id a92af1059eb24-12bfb74c93fmr11349225c88.17.1775622024933; Tue, 07 Apr 2026 21:20:24 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, philmd@linaro.org, ltaylorsimpson@gmail.com, matheus.bernardino@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, Brian Cain Subject: [PATCH v4 17/28] target/hexagon: extend hexagon_cpu_mmu_index() for sysemu Date: Tue, 7 Apr 2026 21:19:42 -0700 Message-Id: <20260408041953.1899532-18-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260408041953.1899532-1-brian.cain@oss.qualcomm.com> References: <20260408041953.1899532-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: QAY74xXZxgsrogORLxCux2HnW7XLWRXk X-Proofpoint-GUID: QAY74xXZxgsrogORLxCux2HnW7XLWRXk X-Authority-Analysis: v=2.4 cv=WZs8rUhX c=1 sm=1 tr=0 ts=69d5d78a cx=c_pps a=bS7HVuBVfinNPG3f6cIo3Q==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA: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=hUoHZ09r4jABJgGRQWAA:9 a=QEXdDO2ut3YA:10 a=vBUdepa8ALXHeOFLBtFW:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDA4MDAzNiBTYWx0ZWRfX0mvC6LZPv+fO d6l6JfOjJA9Cjf2rwBuud5ERrLR66uMQP6XI8E2zc6ql92in/Rf3pUfPbIqt9hGCjGeOtbY6dsK z8oZxPQp5OSA+ESTw9kemVAnFaSgWErdSfOZpftX4pqk4un9gf7g5/qtkBNsuo2E38WYWwHHvML 5l5YzMyZl69ss+n9NyMryw9C1UrYCWOBQ2iJ11+nq8YvfV7T21zFmPgBdmBEQsFBpv2KdVg1Wti E1GDjrDhUiyGhSO+GK/zfopS9efzf3FFiv2KjQezewD0aEBRFNTkxuqfZTqPb70AAHYQFL/OA+m QUilJgaku6UkHL//yoVlqOSce2UfdOGuRMMKZMymBuJz47UMlKh0XJQOeDM+5xhO6KhWJlYPxli fwi331hGQ9874cgB9HsZ5X482PWbhDylC7e8n3lko1CGhW1NXl54uXoZoUZUu1g7b0eEQGUlfS8 mruRkgZjFcaCR/T0AIA== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-04-08_02,2026-04-07_05,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 malwarescore=0 adultscore=0 phishscore=0 clxscore=1015 bulkscore=0 lowpriorityscore=0 spamscore=0 priorityscore=1501 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604010000 definitions=main-2604080036 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1775673856628158501 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 d130a02f5d5..89b41fb7851 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -442,6 +442,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 Sat Apr 11 18:34:29 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1775674106; cv=none; d=zohomail.com; s=zohoarc; b=PqOgXUL/euIl7z8sTZUDADaB7wKC0ecvHcIJpf67P6LKL+u8h8zQwdR8U57cYnTqIaiYHeKBmTKHlFQCE7JoftXPHf82TGUKbvQL6jCRr7c4Fe//uTG2T9D3183XntIuA14I/aJgT8kIU6wbz6A8t13icziULyFRDlbjBYbNp2U= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1775674106; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=+uVDGq7dJHTrOrLyDMjlzrACmQcLWLNq2nBzhTxQpEs=; b=hJ6BFbtIb2EZHA4YU+BjPYEzCSutJCOCX+MYRPQluyEKBSCeMlBzj4woawneoui0SLzZx+6ouFPFx4mxsqrKjvG1Kp8vnlNPmk5XZvN5BpXzhXrhz+OrBGHnYnfWZGlIic/J8l0kR26TwpRIK+sPv7hoHa9EO3E2YbjM8eAQLqY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (209.51.188.17 [209.51.188.17]) by mx.zohomail.com with SMTPS id 1775674106816744.514818695453; Wed, 8 Apr 2026 11:48:26 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wAXsZ-0000p2-KV; Wed, 08 Apr 2026 14:43:57 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wAXsW-0000PE-Jx for qemu-devel@nongnu.org; Wed, 08 Apr 2026 14:43: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 1wAKP2-0005bK-Nb for qemu-devel@nongnu.org; Wed, 08 Apr 2026 00:20:35 -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 637J76Iq263766 for ; Wed, 8 Apr 2026 04:20: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 4dd7t21f4n-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 08 Apr 2026 04:20:27 +0000 (GMT) Received: by mail-dl1-f72.google.com with SMTP id a92af1059eb24-126e8ee6227so9485940c88.0 for ; Tue, 07 Apr 2026 21:20:27 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-12c14a371b1sm6480362c88.13.2026.04.07.21.20.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 07 Apr 2026 21:20:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= +uVDGq7dJHTrOrLyDMjlzrACmQcLWLNq2nBzhTxQpEs=; b=K9j3LxiK3f9tJoTt uZ8QbdbjPiZoeAzoI40droraUnM/Yt9p7cXucdrgx7Xd9PTyXkRW8YDCY3xOE/PL dNu2GLkay/mLXzGETQEg6AZXWcbwhH2s60nw6IqsYa4dG+qI57QCKOfZ59h/CPkz 3nM/y33/WQQBkSpIw4NhtRANhsD3lFFCy6Jn8p9S5L7zzq9ypCeNYizNvKRED0xo 31Lx4+elzf1FsOXGJjVfOHDCcScLJ/21ih95ij8cjAY4NwmEH+Cptzy0qTbbg8sc Ix9NAkQlf9mVvqsVF8ctiWJycXH1eqvB+Ax+ft8+Upz4pS0CBPfbk6IljXKWQOcH cu+IYQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1775622027; x=1776226827; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=+uVDGq7dJHTrOrLyDMjlzrACmQcLWLNq2nBzhTxQpEs=; b=MLeAcNSHHIvqrDcJFHm8UVSqlS+jE53+ffWpbtOPqe2CnKo7N8L3KaMsZEd1EoR6Nr HKx2BlJxiGVTOqmLYFX/zCO8U7sZMkcF8RTGvHviEK+ibIhEz83Y+ZNt3VcktuYwrgE9 1qOMAf5YRpaiLLmlAUUJphvtofP75WqBAZvuFkI2IyyEUK9a0GD0LqthbeBprTG5vuKr 6lvObONFUCSa7DbN2w0bMbf0aZPqMh/Bf4jfV/8cpDb5brYfcSAFzhQuSpzsNwjmXg1P gjJJp8AWL33NQARfb5Uf1G976KJl0A6ixfrZ+cJNKTE7G2WkKIjDvMQagtXcTBh4rnbO zRqg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775622027; x=1776226827; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=+uVDGq7dJHTrOrLyDMjlzrACmQcLWLNq2nBzhTxQpEs=; b=mAPVhgjW84ifA83vVs+sKzU6HGp3p/XOn/qZsB7+e98bh3SpvOk4yTeX7U6TuYfRcT 7BINwLGqLKDlQ9uDjTsuewEc183PK/sJdLBVJteP0c+gCLmrgKKvsftSnpNUz7/63ZkH 5agw9R9gbF+DYt60JAIp2i9hrFvsER3Qi+2iafWQk8LAA6oMSLm6cNe3hm3Y6l0O8j5D cYEekUr/bm7PcPeZl/JuhXxJKNECWI2Go5uPkk20u+dK6fu5kWp2VaXeG0brN76Zk9Gu K3Sfzou1gLh6NhGpRxqxViilHdNqHlcMN8pyrYUCWvTZtaIxVor9W+H+v2WU5FQDQNRE H8pA== X-Gm-Message-State: AOJu0YyH5REcJSB+QabDsfJ9L3WvcChrdce//cgxVa3BB15O9Dk0rB1G Mvau+jvclVfs4ex002bcOejeZp6bymleIbFftFUkzZxKCce+QDw8APb4OZjQzxImNAWBIkqfReD jJVEPa/0Z7FKEjR7COb4+NacNNCVmpegFii8H6M94/MutAI3ra74xdvhp0kF0wNbhng== X-Gm-Gg: AeBDievB/p1I6tvrK5xGnceoFFWWexf33qLk2QVj2phKsAEWt6BEpHIyCkRuzIKgyM+ TGN8BH6qEVrZ69zILs6jP5cOf8KIU+RLIWJfrpvBs6pChcibw3EYJ062x/Hn8nRWaj7Pm5qOtdp /dvzc8Fdh1VK3V5IEsiYStXxdDfE4t3i0DVGoAUi9e6dLhr5uyLSHmgVpvKFBnrlLD0Y/mDGK07 sg9HSmQBDkcJDsRbQdzhSr5u4PRElvUtviU3c5NmS9vi0Axmkr45iP2jHCCIce7fZUkTRZxJTDR dy4vuuz/U2uY2M9n8SOMVJHdyhRRDcpKKVJUYW3acycfT4bIJVxC5ZZp6C4k1oTzhUo2PUC/sYv svvHfArhHZQY5sqq9aqNVNEsQCwNwYHmtnFoUhK36ZvlnhShEE+pthh/ibIfKza0gLaJmHg== X-Received: by 2002:a05:7022:52b:b0:11a:fec5:d005 with SMTP id a92af1059eb24-12bfb6fb407mr9528524c88.10.1775622026617; Tue, 07 Apr 2026 21:20:26 -0700 (PDT) X-Received: by 2002:a05:7022:52b:b0:11a:fec5:d005 with SMTP id a92af1059eb24-12bfb6fb407mr9528506c88.10.1775622025946; Tue, 07 Apr 2026 21:20:25 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, philmd@linaro.org, ltaylorsimpson@gmail.com, matheus.bernardino@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, Brian Cain Subject: [PATCH v4 18/28] target/hexagon: Decode trap1, rte as COF Date: Tue, 7 Apr 2026 21:19:43 -0700 Message-Id: <20260408041953.1899532-19-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260408041953.1899532-1-brian.cain@oss.qualcomm.com> References: <20260408041953.1899532-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=De0nbPtW c=1 sm=1 tr=0 ts=69d5d78b cx=c_pps a=bS7HVuBVfinNPG3f6cIo3Q==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA: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=oDs3gbQtVgqjpHJ5GUgA:9 a=QEXdDO2ut3YA:10 a=vBUdepa8ALXHeOFLBtFW:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDA4MDAzNiBTYWx0ZWRfX3l35vT6PRG/l +8vY1o6iTMLx9ja8txY3exJGb/P0Nnt6OnhJCq4Qnyp+PSaM9KVJAueS9O9YbO5c/f0RsKYv/vj TE4jJR2/bH/6/wY33fT1zB+Ju5ePUK2bc6OtjZ2J85LLQwrex3vMRODvTQ7omfWlE8K2SHoXZKb ANaJKEGyECQM45k+0DFE8cwhJu4vCiYu6QdHiLC54mGagSKL4kxRHds604pvXIkcK0QKufhBKcs E0b6yOR98sJ7WUBrpXEYT8NWfez+fERQJJx+dWb19n33drF8DwO7Ut6b8RAFqeRaur01HcQfRcs MftDlBP+qIsKiEaTzfQ1cZD9Ntnho+gLxYE6kfBKvWTmaasaVSkzSibMAT5FYzSNtrOXUwoR2P6 HAUo/e636nI3JNYMlEBbu5duQfT9N9pAnvqQYSvF4/2gb9rM5JveDykdN4ZoHaIlynw3AGOWEEG zV5gWvFFh/v/6LcFuvw== X-Proofpoint-ORIG-GUID: q9UjJfaAU7dE1lkFhgYX8xcunRBlQ572 X-Proofpoint-GUID: q9UjJfaAU7dE1lkFhgYX8xcunRBlQ572 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-04-08_02,2026-04-07_05,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 clxscore=1015 bulkscore=0 phishscore=0 priorityscore=1501 malwarescore=0 lowpriorityscore=0 suspectscore=0 impostorscore=0 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604010000 definitions=main-2604080036 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1775674107879158500 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 dbc9c630e82..ce93e6bdd8f 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 Sat Apr 11 18:34:29 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1775674115; cv=none; d=zohomail.com; s=zohoarc; b=WPOAeuyMUiRgSjljsdlHvu2p+hYxc4voqIpnswqA+90+evxwQuPluLyQDRyxCkWwXTYQFa0a34eSy5JM8OaE6ov6MyTrBmefBMYoWZTmI6+0xEBZiV0FH2zKLAYhFph7R4QsGiuHXeYeIHz2NDBb6UXGjdKS3uRtYbX1Um/NtXI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1775674115; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=5J1Mw3bzTBE9cM2U8foRkiJVROahUJRSxILTRN9hYZU=; b=LhYoq4fiPpUT5rPu7l+yE89A97YD06hOJmmZbS5zA4aVQvOaoUR+YYa+MjqEX6QJJID4LiPdrcFaIhafHaN/Q+KWVgPsLvy/2TaX5HAS4v/hOcZnObXlCfgrZQx7viZxK6Sk7H6Od5E5ZkbBpBBdauIAttc4pDtOtcIVAl2smtw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (209.51.188.17 [209.51.188.17]) by mx.zohomail.com with SMTPS id 1775674114950284.8475544472295; Wed, 8 Apr 2026 11:48:34 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wAXsQ-0007tm-5j; Wed, 08 Apr 2026 14:43: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 1wAXsL-00074X-Jn for qemu-devel@nongnu.org; Wed, 08 Apr 2026 14:43:41 -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 1wAKP2-0005bM-Nu for qemu-devel@nongnu.org; Wed, 08 Apr 2026 00:20:37 -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 637KP4QC251791 for ; Wed, 8 Apr 2026 04:20:28 GMT Received: from mail-dy1-f198.google.com (mail-dy1-f198.google.com [74.125.82.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4dd8x996xg-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 08 Apr 2026 04:20:28 +0000 (GMT) Received: by mail-dy1-f198.google.com with SMTP id 5a478bee46e88-2ccc035f125so330248eec.1 for ; Tue, 07 Apr 2026 21:20: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-12c14a371b1sm6480362c88.13.2026.04.07.21.20.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 07 Apr 2026 21:20: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= 5J1Mw3bzTBE9cM2U8foRkiJVROahUJRSxILTRN9hYZU=; b=l23KifQYk09ZLoXu pm028k7XKDOa01Hlka5OiUfZBAKWQ7/G78bL/mL45GRJm5da3/6I87RGNoDwJscD /15TbZ+fDm/XaPKL+nt45kaTMjeJ3+3jV9+WBFhQlG3/VXxoHsdYnZy4h/C4fkph +mYaLPm90bFlHOzYW8ZPhNs+0x3YNHB0HZOgITy8bG/lKTU6fOqp3/pazZ0l/G7o n8Q7WOT/v0z0s86HFGp5FkOcYshbqHxDTlMNqUtM2bOSwiDfIUGwo3MOIQ3Ck+uj P9OuH/Vfo/2cN+NRyxCZOAa/NbYFIBQcljFWFrbygU5wv2DaYiaz3C6YhZTZkbOP t88Aaw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1775622027; x=1776226827; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=5J1Mw3bzTBE9cM2U8foRkiJVROahUJRSxILTRN9hYZU=; b=bssBNQVOCyVGKYPnfNYrNFZluiEE9nfyqEgCgBUo5dI7GmNFrNPwRCr+iO924vD64p nf+DOv7r7lNdNU+FneSE13JGlXMEvTem6Ocanvi0/0KP2xyKYsR4g5S5Jor5fWaJmU9e yYnsqRIcuUJweAQcI4C5tRDjERopVVrBHv7tG8amx3MIm3palabatXz0xmg0E9jFf6V5 lLh314H6ZldWmObAVJeFITbzBfCs4pnrKDX3YVnFdUlFZTZH87+EiCbz5aVTFEuIg+Vt I6unehPVpbBWVoI2fpYk3s0H6kEUVci732vMJqmKv1Hzhdh621rW2/CfgUvgZ136FCkM 2bPg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775622027; x=1776226827; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=5J1Mw3bzTBE9cM2U8foRkiJVROahUJRSxILTRN9hYZU=; b=aO+vFfR89XzJKxfmVLmak4nE5DMq1VtJPkh4IneZRdWJHj79KSkWn5/2KmeOYxBQDc +gkhoGHZd1PIrfBYeI7qAm6nVv+1vkB55YBpTaGifNzfBdnpvuhyRoGnAkkIEXWDdgk4 hmV1I4hZhh/CYnkJWvOgF29g1uyh2PYekzNx1EISihoaT2x+xxu+BPD0WnMNrzFalLnO zHJX12pYAhm8TZG9gscIpvSsscUvbLPEiwcG8tdVxbTOhmrR34Rf7/syHTHeQVV24CRb eJIbxpOAeMFeAsE03ld5GCy21P1C8f0kCxP8xf15KgOyjoiiKp5l95rlCaIw7E1gjtnx huRw== X-Gm-Message-State: AOJu0Yzg0J3xqpxHs8/7JCrBizshM6fcyVKTD5WfTgKoaO56Q/bbwUlG X3Ipe/ZeD356Silyun53t6EcRIN6hExFHyE7n1BNx7YZ5VrdVIRuvhYnAF78G0r1WgKAlgz2deS lWtXCNXpDQXaAcSdW9hO96NpNtB2EgAMsCItp/PLWPLjGY0DM0jdVK7XRbkelOb2OaA== X-Gm-Gg: AeBDiet34WnfJRkwnV/yAR2xe0q8bh30gWK+hoMNXbhtJ22wqj80w5QdNkcgPL1fyPc vJoSJRhExToso3wfZulMEYdm0N9afMk3ZhG3aZRmDKo3/FGiVKOmAVjtW4lMpk5Bxbdbi48dQhK VeTK7KWgoE1mvkF6ogStK6jwq719dk2qS43cZtKyTELCobmoY1SoZKoIaNCuQJuhCzeyULBcAnJ P84KfSrslNcbms+rtmXEJFbcuiphMYZsdLJ5dC//tvE6j+kXgsnmhb6VbgYwW5CJrBOovHdzNkA 5TBpL9bjVvGU+TtayFhOX76Wjs4fOJA9pQsvzHqskQrSokLnMSaRoP0GCfg6hAXGAF71y2/jomM I4JAABouL9lHdV+bmQ0wIA+2LsaoWhBKVnYCV9TRjtZP+2eWnrI49gzS/th9wkBi/ImQGSQ== X-Received: by 2002:a05:7022:6986:b0:119:e569:f872 with SMTP id a92af1059eb24-12bfaf58991mr8331754c88.15.1775622027436; Tue, 07 Apr 2026 21:20:27 -0700 (PDT) X-Received: by 2002:a05:7022:6986:b0:119:e569:f872 with SMTP id a92af1059eb24-12bfaf58991mr8331745c88.15.1775622026909; Tue, 07 Apr 2026 21:20:26 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, philmd@linaro.org, ltaylorsimpson@gmail.com, matheus.bernardino@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, Brian Cain Subject: [PATCH v4 19/28] target/hexagon: Implement modify_ssr, resched, pending_interrupt Date: Tue, 7 Apr 2026 21:19:44 -0700 Message-Id: <20260408041953.1899532-20-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260408041953.1899532-1-brian.cain@oss.qualcomm.com> References: <20260408041953.1899532-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=Rr716imK c=1 sm=1 tr=0 ts=69d5d78c cx=c_pps a=wEP8DlPgTf/vqF+yE6f9lg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA: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=w_Ktf-yQGdqK2aTfpWsA:9 a=QEXdDO2ut3YA:10 a=bBxd6f-gb0O0v-kibOvt:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDA4MDAzNiBTYWx0ZWRfX4zzmsCBVRoQF 5zw7lfiGHUtqVaevej5tAGOwM8FK+bUuXo1G9e3qpVWqMWhrpWBaN0yMYO5uLDJCzxc7Epk+lOS Ct37z1bUDHbG/BJP3Jx56CSx1QAbMo3oxXfmkNieUYEj0o9kL9mpSn/YHAI6opdpL2PP2ELY3a2 pkqiY4suSjGfhqh0LNyi1xZhFjVJC6kOkf7vyU7G8Ahv4EnE4q2V9quamvDF+QW+NbovMIjkDwu lr4xeURcj9asEAFu5z4ZoCrM2eMZr4fBc2xxNNYDYVY1oPoI4/Cv6MiNCFzp9htg7xRX9fyYLj+ uTM9MDIdyqZOTOO54tyhott7MH+XUI5osJXJq+h5iS/QVkp6XENlo8HFYRXAOPh5yZx7PDLoN5e E/mSL6wHqzXSWo7VmCQuXCnF2wSONfGoHHqX3h5Pw+bDpMi4eVYb3MUS1poDs/Cq0Yp9EyDmTmS ldr7eAawRS3itLc1PSw== X-Proofpoint-ORIG-GUID: _WFw1B57zqXiGInyoOFSS2bR4KUr0RdC X-Proofpoint-GUID: _WFw1B57zqXiGInyoOFSS2bR4KUr0RdC X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-04-08_02,2026-04-07_05,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 priorityscore=1501 suspectscore=0 malwarescore=0 clxscore=1015 bulkscore=0 phishscore=0 adultscore=0 spamscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604010000 definitions=main-2604080036 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1775674115998158500 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/helper.h | 3 +++ target/hexagon/op_helper.c | 20 ++++++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/target/hexagon/helper.h b/target/hexagon/helper.h index ebcd471ec0a..17e74b12f3c 100644 --- a/target/hexagon/helper.h +++ b/target/hexagon/helper.h @@ -129,4 +129,7 @@ DEF_HELPER_1(stop, void, env) DEF_HELPER_2(wait, void, env, i32) DEF_HELPER_2(resume, void, env, i32) DEF_HELPER_2(nmi, void, env, i32) +DEF_HELPER_1(resched, void, env) +DEF_HELPER_3(modify_ssr, void, env, i32, i32) +DEF_HELPER_1(pending_interrupt, void, env) #endif diff --git a/target/hexagon/op_helper.c b/target/hexagon/op_helper.c index 74a04398aa1..26d32ab9d47 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -1226,6 +1226,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) @@ -1647,6 +1656,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(); @@ -1783,6 +1797,12 @@ void HELPER(nmi)(CPUHexagonState *env, uint32_t thre= ad_mask) { g_assert_not_reached(); } + +void HELPER(pending_interrupt)(CPUHexagonState *env) +{ + BQL_LOCK_GUARD(); + hex_interrupt_update(env); +} #endif =20 =20 --=20 2.34.1 From nobody Sat Apr 11 18:34:29 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1775673819; cv=none; d=zohomail.com; s=zohoarc; b=k6/JJg9hYjJE1X/fNN1ZAnJqymn7FSMzKfBy4ZwOWvNRDxIQLPVRKrWNfACxoW9O3+U1vt2e1f/xJol63mwNXPOodOVs/ON6I8m5aOQB4fGYLw3T/6sd6nG1GJRh7R/ClLFTLTnJjvDl8mAT2+UP2c7x0b8iSlTM7LvEptCnqp0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1775673819; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=+DBy8cpz3t6fbfMdXgVv+lAhN/yuUk5Xigz3myWM3io=; b=AoLLSs2u1cjuv+Nu6oOn+6xsz2LHltvBbEWQ4Zt86XicwUP2vBz2S0Cc3OYsFQ63hvsHOpfVkqSC6asntWt2HXMPy3LXwuP4GDeenbqXsEOKkvVthXdGE0cx/fOP2i7xe2IHJiEFoue8tbsnYO6+tvYy49fkHx65vI6Hd//rM14= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (209.51.188.17 [209.51.188.17]) by mx.zohomail.com with SMTPS id 1775673819875163.37348151878916; Wed, 8 Apr 2026 11:43:39 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wAXqL-0003Eq-Fl; Wed, 08 Apr 2026 14:41: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 1wAXqH-0002nR-MX for qemu-devel@nongnu.org; Wed, 08 Apr 2026 14:41:33 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wAKP4-0005br-Dq for qemu-devel@nongnu.org; Wed, 08 Apr 2026 00:20:37 -0400 Received: from pps.filterd (m0279873.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 637J6brG071736 for ; Wed, 8 Apr 2026 04:20:33 GMT Received: from mail-dy1-f197.google.com (mail-dy1-f197.google.com [74.125.82.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4dd7sx9dr0-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 08 Apr 2026 04:20:30 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-2c0f6593ef5so7962885eec.1 for ; Tue, 07 Apr 2026 21:20: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-12c14a371b1sm6480362c88.13.2026.04.07.21.20.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 07 Apr 2026 21:20: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= +DBy8cpz3t6fbfMdXgVv+lAhN/yuUk5Xigz3myWM3io=; b=Z3vkoSvBlVJ9rhI8 yRu9UaGgDRubp+5xkCKX3xDiWvZJ6oqepVZOvr6vySDObwgMF+GEyyEtdMzQnY5c o6GGqRYxThNPC5iqgkwN4hr+KjPJhsiGIWOsS+3hS3VglMTh8Jw8X3N1olwVzozl /fQkC2IaWAn6scwb82zf5zkM+j+ynudtEtA11fPMPpfgsjI2pdAJzf4MAXfTOLgb cxUvZ6aAcs0gqE/OfwoQkst4RwsGdq37S6cb4/kTWvcW8s8RD9lS5WXVV+xsAhkH vXjQ1yhrXRpY8foUgTN/DW4uSVg99FU01DVNCFx9nKg+ukpHwu6MkGPfzPtVB/cJ ngSaXw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1775622029; x=1776226829; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=+DBy8cpz3t6fbfMdXgVv+lAhN/yuUk5Xigz3myWM3io=; b=E+JYgrsilYm8jZHBbHFzXxILWt20wP6ygJ9SK7GjHfoL8xvsJnPjbKyA+E0oR7JmTh vafIAjGsXFSDm2dCfGGyu0WBbM2BeIK0VqrEE0Sx9MzidC9XkaCLTD21k6K3d93dT4wz 1oqXazKmOmQNMfeiSYT73KoGdZnh67hrH7l49eAU7IsFH5a1VPz97CqfwhGhY+Iv+DRo qgiZsfSwoTFFr71lLGiI5LbrfTVi/vHr/tVaHJxemEbCM+K932CnRoudF4Vkw07DLyg0 J0zQ8Bb5D1+dXwndliJzY5D7qKq7yWfD6PE92xbY0ciNUnzsaP68/iM2UPWsXeq8oMBs i8vw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775622029; x=1776226829; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=+DBy8cpz3t6fbfMdXgVv+lAhN/yuUk5Xigz3myWM3io=; b=KDbDfncoBeYEZbcmtMLLIJCqSmnNU7HafTxfdwN+/04iLySnAWvSqvrkaocAqdYRkQ f3DIz6Q2oAQSlCA4xC6KOO4U0OaTY/2+AVkkZ7ezb/tcN7SrvomA95MwcYos1esGjb9u kxIglGamEAn50vS+3jnAMrh1CiSdw2H/GYzQyOtWHrC89telWvjgkV0+Zdx10RPXSdnw t5hEo1ykB6gGeccdQq3GwJ0Fs9DGpy+2n4ZZGRlSG8yx4vAR6tr9hUvJlb9Lx7d5sqhk pOmAxHUKoaAtAv/WK+c4zMMGjPzjnU+DuhE1/Jd8NsL+fvPTwQ0DQ1mlTOHhawOhyBSz qtPA== X-Gm-Message-State: AOJu0Yx9A4xGAmPfQ+ZqAU+PRKD/8rHJqEScX2WTlkvakobmXwfOw2ub OW50AQeAZTj+cHuyW7ljOdlhwOmvIefQijFjkqtiO77tzvD/SBHnAtVPWIM43cIKHRCceMD7/YJ NhMK7HYvvif7JfQo9mjRPGiqz5QgwmYYmZPOSQuB8+b9sJsEX4E0x+3W6VmKhGRNb+g== X-Gm-Gg: AeBDievWJgGYbUNISdnfRolM9CVkzYQn7QeXL0Y2ko3j8kacgErkrHmG7Nt7bD5RhWM JDrI4tP22RvAynzgJCoKAiwE5hsCWVSh/pRiig/N+q2W0548BV/qGxOOveBDEwHqpREKcB6LeLI mBz+k5yaQakTU4xBVD10Y5/RoChFaAX84JjHJ0YdeEsQDeclGrZSc+ek4bEepTNnUTHbqRWOFrN E7bsbOn28mUXk7bjBaeqqO+JqI80/CElQx9835sk0oGVBQ2RViUd6cmEwO0SryLaqtJ6lBHk/60 2b0LtYOEJk4GG9TiFu8u8IwfxYIJ6KaWE4wBmHUsakGcs0C/pO8hXiCVcG6Rm7wKKy/hzx6TFgI 2vXuLzmC+eQDkcJj1P0RXuT/rNEbxUnLtdzAG3wfkG0DUzeai/I2W/oldcBSo+ZtVGuDZLQ== X-Received: by 2002:a05:7022:10d:b0:128:d967:4678 with SMTP id a92af1059eb24-12bfb74427cmr8926982c88.23.1775622028557; Tue, 07 Apr 2026 21:20:28 -0700 (PDT) X-Received: by 2002:a05:7022:10d:b0:128:d967:4678 with SMTP id a92af1059eb24-12bfb74427cmr8926971c88.23.1775622027951; Tue, 07 Apr 2026 21:20:27 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, philmd@linaro.org, ltaylorsimpson@gmail.com, matheus.bernardino@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, Brian Cain Subject: [PATCH v4 20/28] target/hexagon: Add pkt_ends_tb to translation Date: Tue, 7 Apr 2026 21:19:45 -0700 Message-Id: <20260408041953.1899532-21-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260408041953.1899532-1-brian.cain@oss.qualcomm.com> References: <20260408041953.1899532-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=etfvCIpX c=1 sm=1 tr=0 ts=69d5d78e cx=c_pps a=Uww141gWH0fZj/3QKPojxA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA: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=PUAfe4L2FItr89aHCx8A:9 a=QEXdDO2ut3YA:10 a=PxkB5W3o20Ba91AHUih5:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: 9CnVWTjHxX9pc4q4UV-kux8U2TPAn3dy X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDA4MDAzNSBTYWx0ZWRfXzVtnMOBPkQ73 MCMdLnlqYcOBKJj75WzE0dp3UUbqkehX6pZTqvpQ2C4g4B/M1LZgMZUysSlPdP/Pd83LfuFMhQ6 H1r6rLin1eiUiaGQV5xjPzLhYGg7ae6CyVMGwEfgnBOXabV510XGhojBUgZ3Otyy8WmcNKOjtIZ 2XU+xiCsDohb+D+hmsV4M9dWat6O/dJtJwqnhm7rkuHoscW72in6V2DSiWaZX8DNhNiEzhNgMjQ rfTn1yG7W1a4Ca1fhTQw+cFEcAoxkeq4S17XplSfAikIrgwb3MKZdpxkh8CGDmIqe4drxaIzeUM AQFUmYY+IL3DhzuKMyytRXC/H890XkcVt9XtslivH0YK92n1/RXM3pPrWlqusNF3q4tKXUZj3VB vgqqFFBlvu/ZHrE6XqxV1TMj/IAtoFYD4cm2xICR3ZAzS+uLPZc+B2RC932qQnnsWSEyz22aNVW 4GP9MDnzUfzPbGO8nfQ== X-Proofpoint-GUID: 9CnVWTjHxX9pc4q4UV-kux8U2TPAn3dy X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-04-08_02,2026-04-07_05,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 lowpriorityscore=0 phishscore=0 bulkscore=0 impostorscore=0 suspectscore=0 spamscore=0 clxscore=1015 malwarescore=0 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604010000 definitions=main-2604080035 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1775673822770154100 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/translate.h | 1 - target/hexagon/translate.c | 101 ++++++++++++++++++++++++++++++++++++- 2 files changed, 99 insertions(+), 3 deletions(-) diff --git a/target/hexagon/translate.h b/target/hexagon/translate.h index 4e090565aac..82b327312ec 100644 --- a/target/hexagon/translate.h +++ b/target/hexagon/translate.h @@ -85,7 +85,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 07829063868..6bba135f692 100644 --- a/target/hexagon/translate.c +++ b/target/hexagon/translate.c @@ -272,6 +272,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 */ @@ -285,6 +295,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) { Packet *pkt =3D ctx->pkt; @@ -447,7 +541,10 @@ static void analyze_packet(DisasContext *ctx) static void gen_start_packet(DisasContext *ctx) { Packet *pkt =3D ctx->pkt; - target_ulong next_PC =3D ctx->base.pc_next + pkt->encod_pkt_size_in_by= tes; + uint32_t 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 */ @@ -959,7 +1056,7 @@ static void gen_commit_packet(DisasContext *ctx) pkt->vhist_insn->generate(ctx); } =20 - if (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 Sat Apr 11 18:34:29 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1775673712; cv=none; d=zohomail.com; s=zohoarc; b=LI+Jy7VP4ybC3X8NGEHnpEaWNW/I/7SBJpLoJAVXR9Z5DrDB1py/wDb+LrZ0cyAOa99ACzqZkXNWgo4KnsJ5BcliT1F6nGGTB1VKNv97IWxJcqwq+FuaU5epTKRahSVVsFMMhw22OwuTpbeLxMwJrquIEU5gFKhrzAm9bvrhQCQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1775673712; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=4xiM9w315MleFLjo/dG8l5LSjtszmYZB2kComnl5sdk=; b=mDihIvUJLgqxaaQnyzWkymUaxXjSxG1PyKZRynNuR1CUtShEbcMoxryfhwmFESiwKucnTHT+92ONR808cHbj/XA9xknq0SzuuB0P0C7AtMUkZNnVPB2GQZKDpVW/iQLOHWate+XDHKBO7R36PPg9gMQcZSRIAPSm0gvGiuImq+E= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (209.51.188.17 [209.51.188.17]) by mx.zohomail.com with SMTPS id 1775673712658132.1098072185963; Wed, 8 Apr 2026 11:41:52 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wAXqO-0003bn-P3; Wed, 08 Apr 2026 14:41: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 1wAXqL-0003JW-N2 for qemu-devel@nongnu.org; Wed, 08 Apr 2026 14:41:37 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wAKP4-0005bc-Gv for qemu-devel@nongnu.org; Wed, 08 Apr 2026 00:20:38 -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 6380r3iP1796076 for ; Wed, 8 Apr 2026 04:20:31 GMT Received: from mail-dl1-f69.google.com (mail-dl1-f69.google.com [74.125.82.69]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4dd51da8w2-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 08 Apr 2026 04:20:31 +0000 (GMT) Received: by mail-dl1-f69.google.com with SMTP id a92af1059eb24-12bf921cf49so7126064c88.1 for ; Tue, 07 Apr 2026 21:20:31 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-12c14a371b1sm6480362c88.13.2026.04.07.21.20.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 07 Apr 2026 21:20: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= 4xiM9w315MleFLjo/dG8l5LSjtszmYZB2kComnl5sdk=; b=itEFdbl4CqmNIeuP 5KV2PQQAtpLuboOksNULg5Dcrppo/80xNKJsS4fDs5d9BgD+GtNuI3GY3Oxa1Rb8 93Zt1qLuYZPqNd0Z+TNTrIjIqtgQsUYXFenkrKb+snY/ie5xMZDaC508PNZzWJa+ cKdmdGFYEhmI5UyVS+s+XBS9ZOsyH0J08BtjwzuhFc2g8o/xRD5pS7G+PFeAoIlB 6iJdKvBk7bWiBTahNiHjfLsi+kAOFvGoDQRn39HOEkrBjaORSAnDUnwddlayNkEe K2E8JBrjlJtW+fL+99QXX2KwkyhU3gG1CdmnDj+3BWwtGfC7rUckZ/ZqJhKUFfM8 ImB7DA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1775622030; x=1776226830; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=4xiM9w315MleFLjo/dG8l5LSjtszmYZB2kComnl5sdk=; b=VVX8b/m2xRsJf2wapo6zVShxxq1e67lnSoka7SOUnDM63qf9P0jSBEi1ZP50WwQ/h3 vnkHo4CIkd9/UmTCXlEHmPsvY7zFSpufYlaDXFwo0UeK+4I0H6QGvGRxZXNO2Va0r/nY dorMVB90EAOheCqCxVU0s4EYo99FH7gTZ2woShGBpP8+BnY80R36u2JjF2viYceO9p9u Y4XYVHFlhQpI0nKwfhSwAtK0rubsr4JFfIPS9318H4pdDFGwuXon5n2qrKTORrX7HenO oaQIFwi7SsoMbMYqBlmw9QSvs/urRmOOROEwS3yO9v/DFE3BD1+6VA97t0wN6hMHg0MN 1CXA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775622030; x=1776226830; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=4xiM9w315MleFLjo/dG8l5LSjtszmYZB2kComnl5sdk=; b=Js3XgebHmAESfklm70BRmQ4mX2t9wQUhHi6OddA11RfTfDX/vQhurK8eQYMpT9PUGj UttIZAGfepGhDdCFIajcfWGP8SDXFGuz0uyFx195glPx1MGqFNHS5//BynAHcXKl1Z7E LhPPY46KtRJe4Lcqwd5p52vax2gzh0ojfEiw48eT3dWILIv30T1UjrPin7kJ/6MQEakk QpY6j56dO6upAzPjGSNK/2G41sslZf0HFVEyXpT2c8dhpVYIwoZVDUl196Jbmm9f39TC goiduyoLqyIBUW9wwLfAc2z2R7MEjhxCBxFX46lekEPZlA7kzNs0xV9hYg/zA3HxzXpE Pv9A== X-Gm-Message-State: AOJu0Yy6bcEKJkwVLHL8khIfA9uzCfcE5msXBHaRRxWvOZaSDlxrUkBX 1oPfObKwuPc1qTwBMqJZVdgetR1bpwZMQk7K6+5XImMBL64rRAratDvUgOC/IdE1h/ugpIT7WNy NT16OJ04k5JqqK6GS22QnZ0Rr9pwK7ANddjGi6U9DMtwBGKyrOKqeKC89TjyrVtuS6g== X-Gm-Gg: AeBDietxBbwBSY5NzhjsFMHQYsEMzVzxl9khITNP3Vn5TqMWsCCj9VmkHgo7ATBVB2q Odf3fmgDeWh/g24r5WDgZUHPZrWuVvb+G3S2BdvbSyldPVnfox5Yl0jfdJQtuImORHK8BZZR8Vk pNmOzjybg2cM/wvKrbQb9SOsLQyjRSBwpI0mjnEw5sgbHNKTGAnbwGfuo+wGF59f/XUD2iEyLvK +Mdeh0HQ2wlWEigru57VcyYJ6AbufMj6hDn/+swrLLXvjbobLMW4UL/UzSylkaF967alNAfTSzn E+viNIe0DbbS025K3LYYl3BEpFJ4yo7vwEzzM0NDEUuwNyoJfrASmgjiMoV6+I/tFsnYqw0awKy iACr2gJd9HHIftkWhRum4/wHeMNmOPDzmo3Qt3RDGXGCyfVgLt8vRE1kyZqWQkfT6ODDiMw== X-Received: by 2002:a05:7022:212:b0:11a:fb3c:568b with SMTP id a92af1059eb24-12bfb744257mr9880258c88.17.1775622029536; Tue, 07 Apr 2026 21:20:29 -0700 (PDT) X-Received: by 2002:a05:7022:212:b0:11a:fb3c:568b with SMTP id a92af1059eb24-12bfb744257mr9880241c88.17.1775622028942; Tue, 07 Apr 2026 21:20:28 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, philmd@linaro.org, ltaylorsimpson@gmail.com, matheus.bernardino@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, Brian Cain Subject: [PATCH v4 21/28] target/hexagon: Add next_PC, {s,g}reg writes Date: Tue, 7 Apr 2026 21:19:46 -0700 Message-Id: <20260408041953.1899532-22-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260408041953.1899532-1-brian.cain@oss.qualcomm.com> References: <20260408041953.1899532-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: xgSBVledx29ZGhwjxu5Bt5r7mpJqxsbt X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDA4MDAzNiBTYWx0ZWRfX4m0zFgID8AY2 cM9kk69HsxWPbURa8MrJqwimQe/luZt++3w00/oIP6g6bYTnWz2xtVc3F2lefwvyHEh2pAuHJOa OFECnJbXLKQ8NqLbnxJUCEBh0svJseruN0AglojU8Fo9hCy6UAHpDmvxdRhbImlESjOL2sH5gtw OT6TqFwt5wxtV8fht9oLLlvYWkP/uqwerOPydiSiHRXilAFzZpSxb2fkKuHg5nrfRCRIieHDO2E kqEAVDjqJ/TvK1GxtIbiWNz2dr8AOrmoAj8eZdCxoJr1dLVV0VUvXhWwGJHPHnR3KxkbXB+0GjA 7VCUtx9sjyfDA50571gOsNLxVTwt7rmhaCIpZVrvaFis3lrGZqx5EQfLoB/Brs+PE4K+yG/W0Nm iv2JtwLi5K0MCeGgdTE6zFBQsrLITUYFfLxc+j+Ezb6kPiCEn8/84z5TCr34/DISpUCShD64lz4 z7mE24X7W4O1JLtsM7A== X-Authority-Analysis: v=2.4 cv=AcaB2XXG c=1 sm=1 tr=0 ts=69d5d78f cx=c_pps a=kVLUcbK0zfr7ocalXnG1qA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_K5XuSEh1TEqbUxoQ0s3:22 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=_gAO3K6JQlmC9C_l6q8A:9 a=QEXdDO2ut3YA:10 a=vr4QvYf-bLy2KjpDp97w:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-GUID: xgSBVledx29ZGhwjxu5Bt5r7mpJqxsbt X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-04-08_02,2026-04-07_05,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 adultscore=0 priorityscore=1501 bulkscore=0 malwarescore=0 phishscore=0 impostorscore=0 spamscore=0 clxscore=1015 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604010000 definitions=main-2604080036 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1775673714037158500 From: Brian Cain Signed-off-by: Brian Cain --- target/hexagon/translate.h | 2 +- target/hexagon/translate.c | 87 ++++++++++++++++++++++++++++++++++++-- 2 files changed, 84 insertions(+), 5 deletions(-) diff --git a/target/hexagon/translate.h b/target/hexagon/translate.h index 82b327312ec..d5ea296ff26 100644 --- a/target/hexagon/translate.h +++ b/target/hexagon/translate.h @@ -45,7 +45,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 6bba135f692..a42fd771f29 100644 --- a/target/hexagon/translate.c +++ b/target/hexagon/translate.c @@ -552,6 +552,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; @@ -584,6 +588,24 @@ 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->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(pkt)) { @@ -743,6 +765,61 @@ 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); + /* This can change processor state, so end the TB */ + ctx->base.is_jmp =3D DISAS_NORETURN; + continue; + } else if ((reg_num =3D=3D HEX_SREG_STID) || + (reg_num =3D=3D HEX_SREG_IMASK) || + (reg_num =3D=3D HEX_SREG_IPENDAD)) { + if (reg_num < HEX_SREG_GLB_START) { + tcg_gen_mov_tl(old_reg, hex_t_sreg[reg_num]); + tcg_gen_mov_tl(hex_t_sreg[reg_num], + ctx->t_sreg_new_value[reg_num]); + } + /* This can change the interrupt state, so end the TB */ + gen_helper_pending_interrupt(tcg_env); + ctx->base.is_jmp =3D DISAS_NORETURN; + continue; + } else if ((reg_num =3D=3D HEX_SREG_BESTWAIT) || + (reg_num =3D=3D HEX_SREG_SCHEDCFG)) { + /* This can trigger resched interrupt, so end the TB */ + gen_helper_resched(tcg_env); + ctx->base.is_jmp =3D DISAS_NORETURN; + } + + if (reg_num < HEX_SREG_GLB_START) { + tcg_gen_mov_tl(hex_t_sreg[reg_num], ctx->t_sreg_new_value[reg_= num]); + } + } +} +#endif + static void gen_pred_writes(DisasContext *ctx) { /* Early exit if not needed or the log is empty */ @@ -1044,6 +1121,10 @@ static void gen_commit_packet(DisasContext *ctx) process_store_log(ctx); =20 gen_reg_writes(ctx); +#if !defined(CONFIG_USER_ONLY) + gen_greg_writes(ctx); + gen_sreg_writes(ctx); +#endif gen_pred_writes(ctx); if (pkt->pkt_has_hvx) { gen_commit_hvx(ctx); @@ -1256,6 +1337,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 @@ -1296,8 +1379,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 Sat Apr 11 18:34:29 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1775673957; cv=none; d=zohomail.com; s=zohoarc; b=iTLRW4GJVLvT/D6XRswgDsqvO3/pYN/wjRZZqQ/77fCscFNi4cRWqWlxWJN1sMJRIR9H6iOoebH/NWnBSwsyZSxniM3Sj/gb+gleSypaHiN0kQKOthzVxU1bHU+pRsvlB5JX4sSFpe1JjMWkFYOQWAWY2op7MK9cvP9ljNlH5R4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1775673957; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=F0uONMjef3ECBM5NuvfwWgVpAn5g+wZiTF4jIWcu5S8=; b=TjY8kl1Ybsbdd0IVGQ+HU6GCyDwPrC0vY9SWnsMbWu171KMqYFNJSDp1FVTE4kD0R1x13OIrSBOG/OI9pfUnv8tNs69RRlfWh06WxpR44uypYVud56v8MhkJ5UQzlJstb2Ia3XFq0n2C2VO0fdDr0tMB5IEIqlRgewYrw2CPyVY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (209.51.188.17 [209.51.188.17]) by mx.zohomail.com with SMTPS id 1775673957306351.94491599510025; Wed, 8 Apr 2026 11:45:57 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wAXsx-0002AJ-JZ; Wed, 08 Apr 2026 14:44: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 1wAXsu-0001sU-UI for qemu-devel@nongnu.org; Wed, 08 Apr 2026 14:44: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 1wAKPE-0005bt-Hg for qemu-devel@nongnu.org; Wed, 08 Apr 2026 00:20:52 -0400 Received: from pps.filterd (m0279868.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 637M5HD72862613 for ; Wed, 8 Apr 2026 04:20:33 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 4ddad8rwva-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 08 Apr 2026 04:20:33 +0000 (GMT) Received: by mail-dy1-f200.google.com with SMTP id 5a478bee46e88-2c16233ee11so8180146eec.1 for ; Tue, 07 Apr 2026 21:20: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-12c14a371b1sm6480362c88.13.2026.04.07.21.20.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 07 Apr 2026 21:20:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= F0uONMjef3ECBM5NuvfwWgVpAn5g+wZiTF4jIWcu5S8=; b=Ib3iEJnHbaRfPU7D yne44RGStVvr826Gj7lhd/B+/fOVbtQT1QCt1n7iqWHKbaLR1NhyCT55e0JE2mlB A2aATpdN1DkALm3GYxKMVzwW6IcSK1yJo72ifW7ihOeEC8I5RQSUurUFJsJz/q+q wV00FJcsinrptNAxJdJ1n9RQQjFO9PDQNUKeHzsumrw+JB2f7RfbnEGr8UDPN9o+ WYvYVprLwVIUY87k6gFdqG4K3CTF3dDuMbzQOxYl3Ke49/0ldqkgZQVg3HXrhZaD dr9AVKFEihoe436c1w5zzrmMUbeIPQAID/95jG4ITCBqPqpI+eLYK3uvaJIDbeOY slxuDQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1775622032; x=1776226832; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=F0uONMjef3ECBM5NuvfwWgVpAn5g+wZiTF4jIWcu5S8=; b=SGZjEC7EVgM+9Brv6T6c4bl/poOUKM8P9zjb+kSoS/NSwL1OlKOx7+mXS3FvIDsHQt 9K05OVlzrbV9k4ZhWg5rNo11Bqhh9UycXFpsj5Te/ghVpXnmLIqCcHgxDHhivexUb9N1 MQJahdHnn6SSnq5994prF2GwUbNjnI3wuJmu5aKw80srkg6Bx05kj7B1yOl2E+Tx5DkM rMB8Ue+LH96EdSNC9JL8CDlsJfVezBSMNJR0WwvMXKx5GLmfbUev/C5PlN+MSwAR5kSi Zy4myipAYbqf7i3LvsOTWVnJCERPNGH04+HCpmloXk/bmaX/sLaO8kzx93KHMmOcIGYd qyKg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775622032; x=1776226832; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=F0uONMjef3ECBM5NuvfwWgVpAn5g+wZiTF4jIWcu5S8=; b=EV4p0ZONN4G3mA6EbU0bbTGQRujDm4ySFKe4w0HCANjEY1VJneu8gynxlD2Lms8qOu dRUKaX1GHNoI7anAR+66o9mEruiGt9A0mClP+xl0chzei0xXdLlaFL3UXSg5l3P1PZP+ k7nhFbDLcMNxqyN7alpN38cHCECzZKNrQRD7pGYo84w5nwwLwSfD8EdHaSHFrw0vLA+b 5l1KhWBSuChVSqsSYs6dELugadjhvCp9K/WWrKIxz90MNaL5nnUJmc1av1d2zjizN8qP 755saO5DalTuhldCblVHG9MVOuN+/fpe0lHcCnCfgs/rOIzKheRnMezyaRCcyEYoastz JYPA== X-Gm-Message-State: AOJu0YwHmnDA9Ycw9RntieGv1O4Q/Ai+nQmE1h+1+g78t+I8WkCh9dUQ fx7w9v6BYlXQKeQeQ3+mEZXdbQf/p6355tVGeyQDh2HqwfuPPd+oaBpimogrmzYxNF6JOWmzTEK 2wx0YeC3AHyLZaFHMc3TSBrx7xi+lxDelA2uHsgBM6Twky4rspZoYfcKw0xW6zbU4rg== X-Gm-Gg: AeBDietUFmbK1UCHkrb0lwoPglUcY7W0yeSNqX97M08hrN5+MHgnG441IAOPNtiqpud PxpwcsIfhxNVx8rNY94tKj40G4becosF6n1ZAB+m3dxqEkUQKvnbTqNfQSnSogT3FtEenZuwXfp jitjtwCMwBfPKJXofGWqyKn4zjhOaZZPPRzF0pr/W+90SmR4Hsu/HiqPlyfd1+aGVz8BK0ODmQN WPtRl2Im/5Xp9jKMAS4jcnwPzarHXZTOpQH58mU60zQvLDdsBjGCVox236lvWLmhd170kCd0bG2 vaRogDT42oL/L/zSnVhYHQHyDSbb1mbBAu2k+8waOvHd3jKTyWNEPD6IakuJsZ77Ej5mIfnug+r Umi0dHoG2Em+rktOzGRkPMUMa4BDDj2F+pgaIUk2RnAAX0y4EdMYnwSdfIZX0wWtz7NkF0g== X-Received: by 2002:a05:7022:388a:b0:128:bf8d:44d2 with SMTP id a92af1059eb24-12bfb6ec558mr9186486c88.2.1775622031849; Tue, 07 Apr 2026 21:20:31 -0700 (PDT) X-Received: by 2002:a05:7022:388a:b0:128:bf8d:44d2 with SMTP id a92af1059eb24-12bfb6ec558mr9186480c88.2.1775622031308; Tue, 07 Apr 2026 21:20:31 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, philmd@linaro.org, ltaylorsimpson@gmail.com, matheus.bernardino@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, Brian Cain Subject: [PATCH v4 22/28] target/hexagon: Add implicit sysreg writes Date: Tue, 7 Apr 2026 21:19:47 -0700 Message-Id: <20260408041953.1899532-23-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260408041953.1899532-1-brian.cain@oss.qualcomm.com> References: <20260408041953.1899532-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: ztNxnN5XWqJvgjYoY-Xaxe8ywsSe3jsY X-Proofpoint-GUID: ztNxnN5XWqJvgjYoY-Xaxe8ywsSe3jsY X-Authority-Analysis: v=2.4 cv=EoDiaycA c=1 sm=1 tr=0 ts=69d5d791 cx=c_pps a=PfFC4Oe2JQzmKTvty2cRDw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA: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-Spam-Details-Enc: AW1haW4tMjYwNDA4MDAzNiBTYWx0ZWRfX8MfEgaSpzKs1 gOju99h29CZt3g/pki+2Cwnr7LniqtgsvivtfSfJcUF1ZL2paliZoLKr2HYuRR0JDg2I0ijYkBy EthqnfUbN0pkhCfcuNgIsFGOzJcS1liGE7153liaTeOfhfrlbk89DqaOzI/l+3GI91HNSLt+pZ7 YV8wcWLvh5e1gB7eKK+qp5Bk5B0rSlltrSKe7ERKHY9IlD4Jyvv9P7HWshqVP+eO68CsZpOWCR/ Lwho/y9KEgn4ptdygfrdddCf2xCnOePvaMkgYk0dJ+byamcqbVKJISxGfCXJcJxHxNdw2GPef0b CTaMKasDZniqENc8uXyNcwu26ghRh+GUEurRT1D6AztJg6DG7FWYCeWlDW01y1KYsqCbWS+cqd/ 1bCLC+q9TDfyoavFlkP2Z3PKaGNbuZjBvXY4vYbrJEmQrV/azSarfMNv/8bjEpf+7eOy4JCSszN 4oGBSngwzRaq02HSSPQ== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-04-08_02,2026-04-07_05,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 priorityscore=1501 spamscore=0 clxscore=1015 bulkscore=0 malwarescore=0 impostorscore=0 suspectscore=0 phishscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604010000 definitions=main-2604080036 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1775673958812154100 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 a42fd771f29..38721d74007 100644 --- a/target/hexagon/translate.c +++ b/target/hexagon/translate.c @@ -428,6 +428,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); @@ -440,6 +450,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 Sat Apr 11 18:34:29 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1775677930; cv=none; d=zohomail.com; s=zohoarc; b=e3LoKV5tZYvmQsrQDWNNnxF+ru1xqemTtjJVNF3476nu/mhNFYwHgza1MQ1aizMYk0zYAjUDryrKxsUVdIi/6Z4I6laEUHWAmksDMY4cth61DgWnQDOdDdpMzJbcGSA0ARaCp6bO2EyrRGNZkxJ/gKC06YfZ1zVWBPSBPtXsr38= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1775677930; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=+EdGi7Fu6AmMC65dcl8sIuPhUI2yMUMp7pW7BZLEnZ8=; b=HAJ1U3BIOc2GmiLVwC/i5VxHnsdZR06aosw+aMffXbJVbQJTH5dehl+qPDG2tefQgZGTUFahT5sVt5VZnGQxR2zHN/9l4WjKfzOTH74TxexYN4uq2rL4YybzUoRlkShFkWq5KtG7y2YXkjk5N0o8sw+Tzd4iOecNK80+HZ1sByY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1775677930928717.5797004225277; Wed, 8 Apr 2026 12:52:10 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wAYJP-000865-1W; Wed, 08 Apr 2026 15:11: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 1wAYGp-0004eV-I8 for qemu-devel@nongnu.org; Wed, 08 Apr 2026 15:09:01 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wAKP5-0005c3-NY for qemu-devel@nongnu.org; Wed, 08 Apr 2026 00:20:38 -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 637JlmBI1314466 for ; Wed, 8 Apr 2026 04:20: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 4dd8d6ha7x-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 08 Apr 2026 04:20:33 +0000 (GMT) Received: by mail-dl1-f69.google.com with SMTP id a92af1059eb24-12c20a91932so4012357c88.1 for ; Tue, 07 Apr 2026 21:20: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-12c14a371b1sm6480362c88.13.2026.04.07.21.20.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 07 Apr 2026 21:20: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= +EdGi7Fu6AmMC65dcl8sIuPhUI2yMUMp7pW7BZLEnZ8=; b=hy2WOYZvKlCKIKBT jH9ZyNUHknuMbEnJOm6NHOnYqTxw4zm5+stF0/ioyUbHtKCrtWtQ0tW9ERMDmi0F tlE6zaiTO0PZc4rMC4sqDWaivij+ytxjmMm1kN01gtFQmnrVWPjxjzoS0z9phnWv eszVYkAOv+RVTLAcF0/taU81PvXDUt9h/J2PMAOSGDKnwBjqCt1oK+gamowAtvCb Q1Xpn6RDBgmM4A3kdY1I2oJrP+wg1E5VkfVurJXPo0yxmUj+DUyr+AxSqLI2a9g9 fZBPVGPMKmgCCXoG556iktKUoqNgv7vNLvBKhDK8SnOPUWjKIvS024BwPw1m8Zrp j7UiVg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1775622033; x=1776226833; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=+EdGi7Fu6AmMC65dcl8sIuPhUI2yMUMp7pW7BZLEnZ8=; b=Yc24aCPld+yHvk/evbQwnVsf1/swrnKgXKVnna/GoXveiSMeaVWqy7XrxxotVud7eo cR5rzBnkcb5dtPXxGXgwI0ruXMME/gulGEIu6vVTOZQm/M6D9eDbRLh11nBzB4udBWl+ rvD31mAhQCquvBHoNN+TrAsSELxHB4Yfnij/U9JKXUPMprkmrPj9rTYU47o0dEw35VJJ IjojVMU/tFXKYJU73ggRmd7H+J8uI59ObwKng+M9elOP0qL8NReZJdJOFcs8TcumGypo WsiuvLC+nG19zLFQwS7PFvOg6u+/1rnKaTzgVR/X3+S1WYYUhHCpFlJvwIPEi6SKfjP7 mHhQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775622033; x=1776226833; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=+EdGi7Fu6AmMC65dcl8sIuPhUI2yMUMp7pW7BZLEnZ8=; b=LhxlA1+T+R+HabqErw2JVHYspHSNnxcrwbyOYWaAIzsjx2PyayhwzpLoAxNWpa+ppo +FP+0AVy1lR+KLAkEsS3eA5k/zq/3J1K9JsNbCciPV9MRfM97VvqKC7uGZpk6IgW3NUG ul4sJ+OItXh8EWB9uNGe9gDRZhgDl2aOWuiJcqEsrBbwU62LWgyFU8kvw6lmx1+wzL1m tkUEHTZILe9WRl8Km+SUxMeHQMv1owqNkSLqj+rbzUSVjduOvFADPsVlHZvbJPDv7Z1n WMh0CV2PQ47aJ61cdo8QAWFA8TU1Hb2oWXCKFge5gzMH3rD+GNFz2Iq5/H9D2O7ppH3q JBYA== X-Gm-Message-State: AOJu0Yx/uat6UkfJEWmavtanpdwVKHd1ztMoSuJhiCpnZqo+yY4ou6qr +Wf7HJKjDULrmri7RmTWBovndYO8pHzvp+J6dvnpliONiFrdMzyD/7+U0aElZYapJeUB8rUjwYZ Utgg2CwWrY3ZFqvFDv+Kt9SGmb3tM0GlKXJbTRxyA/KPe5LWFpFvpg/TwJhppE9pBGg== X-Gm-Gg: AeBDievwKM3C1mc1wqN0rtXBxsN3yvSnSbtR38ey93QGNTdQhXYjrRVSfy01LJRsV/P KzjHE+biPjX6Ai6n0upPtbqFKyWolD/aoAoWfmViJuhQtq6Wbw9wgZ55h0cJlIwtHUAndP9n39X M1AN7IAc/5uL/titZ+1Dg/GA17l5A5jUH0MHpWPPDjYFdOVB9gjcaRK/yfTKsNHGgIzUXipOxNV i/u29RcDioQBdGqmlyq4ZM03xiLeKPayc3DnbcMpaw8Dju9FVxvXLKAiKdsspbXYgiZW2jzbLk4 0tky9EQfvPukQr86gvbq3Y02F6iF0S1pQG7idnlrHTYc2YQRVBoxzgSWJ0mvHNTOwVWtPPdIJyK y+bLl7QTHtIg27WGhG87D6RH/h0cX7jwmOiKv5vxieWOrOVxyb/gSk1qndYG+GeQv4Ubxow== X-Received: by 2002:a05:7022:388a:b0:123:348d:8576 with SMTP id a92af1059eb24-12bfb6ec50bmr11023285c88.6.1775622032782; Tue, 07 Apr 2026 21:20:32 -0700 (PDT) X-Received: by 2002:a05:7022:388a:b0:123:348d:8576 with SMTP id a92af1059eb24-12bfb6ec50bmr11023265c88.6.1775622032206; Tue, 07 Apr 2026 21:20:32 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, philmd@linaro.org, ltaylorsimpson@gmail.com, matheus.bernardino@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, Brian Cain Subject: [PATCH v4 23/28] target/hexagon: Define system, guest reg names Date: Tue, 7 Apr 2026 21:19:48 -0700 Message-Id: <20260408041953.1899532-24-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260408041953.1899532-1-brian.cain@oss.qualcomm.com> References: <20260408041953.1899532-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: oILiyoxW-faUtFuygZXijyOFBAQtw8tH X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDA4MDAzNiBTYWx0ZWRfX+loxDIB5wbdj 7NgILnb63qLZL2agSKcz3WXNJPo21plLqNHU0IIGOvwQsUdOFOLhytw2cJ/MzDwle6aJwhPHpgS RRLjAjdsG5/vP05LNpti5JqCbfaICP+ZQI5nopel5aQuO97eDLQejcI9nqFDCCM7w75daBwYXfh AmCkSB73svcFym0b7iMVdAqdxAI86TjUMVjAFda4YuoXG/0e/GRgT2jkdiTcCMlxKf5ZUf9peLA Cqh0Hg5z1k2dbNED7lVw8stfk87o8xmAEHmkIxbIrErDO1LKbzEDVTr09oMMAtFofGrvlwnD2Tc 69d/hppw8Nndao+3lXjcamkLkz83m4PBWDrzLfv1oBUiOkTyQnxGjCy4LFIKj7NdXWfneooZ6dD ph5rV+gx3wdl4MOrjcLAs2XgB9UMejPU49HyhGid1+F3ZM+amQtZyXf3tqWZM3QlyVtZZfxgHv2 vJ7Z0gmGbDXGNp1JRPQ== X-Authority-Analysis: v=2.4 cv=GN041ONK c=1 sm=1 tr=0 ts=69d5d791 cx=c_pps a=kVLUcbK0zfr7ocalXnG1qA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA: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=vr4QvYf-bLy2KjpDp97w:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-GUID: oILiyoxW-faUtFuygZXijyOFBAQtw8tH X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-04-08_02,2026-04-07_05,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 priorityscore=1501 phishscore=0 suspectscore=0 clxscore=1015 spamscore=0 adultscore=0 bulkscore=0 impostorscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604010000 definitions=main-2604080036 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1775677933079154100 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 89b41fb7851..a48d6178e06 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -90,6 +90,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 Sat Apr 11 18:34:29 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1775676585; cv=none; d=zohomail.com; s=zohoarc; b=DK8j3mpSLYGFcY+df4cqtEgViK0U+3M8DQ2WoDM5AguWoHgwIQsL9BWWji3kt63xi0L03OiEUQqRadWPQZ/Wd/yjqqyvvBltscmXJVAxwJAmm7ZETMNW9rGPcjIkbOqsRxfGhsyrS2vx5Gvwolp+yqDuVBG1l5iANEAIJrW+Q9Y= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1775676585; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=JqirgD+TEHIoit8jv61QYAnhXe1FLYRvtuwMXQLWLDk=; b=ibirLALkekOHVCgXijyvUyiw84y6I6AkkQvxcTTbQV1ccQdZTxoj5iyS0Kbh3VK9VVR0oAOixQrYsctH9HKJf8jBCLXnI6TvKKvq49i+Fk12L0dUQO/pGHuH0m9g1RnjvP+92wAb05U4hoFjjTcj+y0Hn4yqfgFTzuB4ALWAfKs= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1775676585212878.5437363411638; Wed, 8 Apr 2026 12:29:45 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wAYWW-0007It-45; Wed, 08 Apr 2026 15:25:12 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wAY6y-0007Q7-Ur for qemu-devel@nongnu.org; Wed, 08 Apr 2026 14:58:48 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wAKPG-0005cQ-RJ for qemu-devel@nongnu.org; Wed, 08 Apr 2026 00:20:54 -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 637M3Luv1619750 for ; Wed, 8 Apr 2026 04:20:36 GMT Received: from mail-dl1-f69.google.com (mail-dl1-f69.google.com [74.125.82.69]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ddacrgxjm-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 08 Apr 2026 04:20:34 +0000 (GMT) Received: by mail-dl1-f69.google.com with SMTP id a92af1059eb24-12734af2ca4so504755c88.0 for ; Tue, 07 Apr 2026 21:20:34 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-12c14a371b1sm6480362c88.13.2026.04.07.21.20.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 07 Apr 2026 21:20:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= JqirgD+TEHIoit8jv61QYAnhXe1FLYRvtuwMXQLWLDk=; b=a9iW065r4oupQxAM kOjYKtMgLZELLNshgjHIGKOeecDaVOJmtZc54FJ8HRWfTRDjtJTMVRWU1nrzzDv1 cLyPkEeO76OMzTBOMNk+sTYQLYvWti7YcvOe+tt7oRlzDaZXOaXs1WNRCE9Y+Mt2 G+C3fzTOpxw3GQ/z6p0ni6VVc97OZejmyOUxgtpqfKP4t7cWpSBB8/f4oIMosM8S b9QS6Gs5vzCN8DYdU/L0mYQS60rQawxRRkOH6VB2MDTBhUUzDqpJ6Ry07wAYNRIC Vbrs54+ouEeN8VZcyWGaOZJDBEnGOYyqoeXqxeDZnkVh432Pbbcd+CWeT7WlpuFI 9H4Mrw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1775622034; x=1776226834; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=JqirgD+TEHIoit8jv61QYAnhXe1FLYRvtuwMXQLWLDk=; b=eGmhiKWCLTcYohks8bjykFa9AXKLSsucCAHV9VfHE7Fij2KO83bBUtYnm2txTtRs0+ gyieQv/yjZWDiLvlGe28JAe8PgTeNXlGsamXcv1Y4t66ueCigEWXxtO+MOlBafCeKumX apSmBYYaIdZtxfQ7Sb8VkqsLrBohGy47HdwrrEmL/g9DNZQ7nLNFnlegB4pcaouN82J3 fbKfpeEXX0YXlXQw70OayTWHupQA3MVHSyEARgJqw0XVKGaYrdnOd7IHlDq+2N9rsver P9ZAGgtNcBmVcoXXLbsdIOXWpaZSBR0r5Rxx4jQrgXOyxHoZJsAnv+VmyofDbEUes4sI qvwg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775622034; x=1776226834; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=JqirgD+TEHIoit8jv61QYAnhXe1FLYRvtuwMXQLWLDk=; b=UwhiDxjQynkaDH0KKr1nIYIMAtKOtxYgySfnx9Oaue1a+edouikwGXZh1n9VGvLYHt koxWrOHRytKKa7AWmTYroh2h9vq4ZIzlufYozcevZZNtpqkA3DpOT3sNp186ROEyXKE/ 6dIG0Z+OnvFk+d8+zetXttjv/ohQ61keXGJMsESiywcVxi23zOXng/7zVC2Vpk3AN5ru xQff76N76smi7zUP3ujv5wme5cqmsMKJEWOls/eVOpvmpYBh5D+PmPJmDX4eyHyfTLqx o05LYEpQTOCqgOs7Zfdd6B9enqoEni/hvsETwUAgxAa19zGdGkCpzpEmiJuiby9X75NR U4ZQ== X-Gm-Message-State: AOJu0YyelsggCmZT/N1xE4kgK+rhJ5MVCTuFS5+7mwU5/GfufnBm7+yh pM5hTB0HWy8wJf8SYhvfVDVO/igocZuNM86efdyplVtAf9jLBoNpteX2+qetoXJiNOqNpbS5bCO y6XAQSusMza5c3nb3ta3QtgUkeq7AtTwIdXB0JCQRAdLxoRUXhIEAl+RF2Ado1mcDQA== X-Gm-Gg: AeBDieufPeou9ijcCKH2M1WB0Le5oBRJErYbOPWgmYDuvHhysRGINas5b7UI0Tu9dDm 3Pvyti8WZukN4rNPTQNlNeLl2Xg1Vg/2HREFxqN87NpIxlfZwlqFD31yF6N1o+5vEYx0iJm3sq7 HtOPTEtxyAI3QAL2hJKmrVoKYXLBhBLn5LbHCKUeGarqESJXggO1DrYK7WPIWMS3RJwSWKrOMqE GuppCQjM2IjbM+dJcJOz8+ehEB02DNmrpxetlZQg8G+T1YpRS3LNz+//0tvVomxgToc65/v1QYo 3mJR3je5/tXTjeSVOA+OT5M89cy3YwoF3cRzf0WIklF4PUjVvZAYlyg/V9On4Y0AspHTWR+wnkZ NVCgJFVtACPZJ1Gd0Tg+ZtK9La57hGUjhL+S0fHbm0O3CnPrU0GBY6eJXdjHVrfk2TcQ0+Q== X-Received: by 2002:a05:7022:628b:b0:11f:1e5b:2dd6 with SMTP id a92af1059eb24-12bf08803c9mr10028687c88.17.1775622033740; Tue, 07 Apr 2026 21:20:33 -0700 (PDT) X-Received: by 2002:a05:7022:628b:b0:11f:1e5b:2dd6 with SMTP id a92af1059eb24-12bf08803c9mr10028672c88.17.1775622033151; Tue, 07 Apr 2026 21:20:33 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, philmd@linaro.org, ltaylorsimpson@gmail.com, matheus.bernardino@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, Brian Cain Subject: [PATCH v4 24/28] target/hexagon: Add k0 {un,}lock Date: Tue, 7 Apr 2026 21:19:49 -0700 Message-Id: <20260408041953.1899532-25-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260408041953.1899532-1-brian.cain@oss.qualcomm.com> References: <20260408041953.1899532-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: LWjpB9bFz6rygdDciHRf8MgLwsZjEd_l X-Proofpoint-GUID: LWjpB9bFz6rygdDciHRf8MgLwsZjEd_l X-Authority-Analysis: v=2.4 cv=WZs8rUhX c=1 sm=1 tr=0 ts=69d5d792 cx=c_pps a=kVLUcbK0zfr7ocalXnG1qA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA: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=5qM_0fsqfvQKBOMFAjMA:9 a=QEXdDO2ut3YA:10 a=vr4QvYf-bLy2KjpDp97w:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDA4MDAzNiBTYWx0ZWRfX80+txtDBbVDU AsUbAXNvgsJwauTpOZkQXm6LiGOhKToRV/gh0weIRFTyTZ+hd1e6+HVRLTtAOit/758dU3ueQrs IGgextJj1kKya+U4uU1nqHAGqDG1njdMO1CQemMcFT3O7I2JIGkRsWP3DcDqzsuyTJ2I3nRSwk2 cwCJa7LDH/mnp0XWuO8xtqJtD3N2OMrderMVEYM6nKRmZ/w7NTd/uH207YmkvoEf6u1vSEgZCtG AfgOpbsWbVonhxsUUF9dFTd3GMheHkNFj3CUwg6tFrgNqHkwRycs6ZX0BTXKoS/DGAQmKHz4imb Lrt+k6jnU3VFLWury6JblRJu7wDnUuLA5mwUcUH5BcMSW66Hx7r5maZ/2aXCruPcvoNzZSrGVf/ GDL4GfoHgwe2o6KZyReV3Up39VS9Uv8ociwycXUQS9AwvgAP3MIQQ5aT1rVh0UOJr4iRw9qRUrq /MRyJhGZbNyyhGl2AAQ== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-04-08_02,2026-04-07_05,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 malwarescore=0 adultscore=0 phishscore=0 clxscore=1015 bulkscore=0 lowpriorityscore=0 spamscore=0 priorityscore=1501 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604010000 definitions=main-2604080036 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1775676587045154100 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/sys_macros.h | 3 + target/hexagon/op_helper.c | 119 ++++++++++++++++++++++++++++++++++++ 2 files changed, 122 insertions(+) diff --git a/target/hexagon/sys_macros.h b/target/hexagon/sys_macros.h index cbc857fa2f5..37aae71adce 100644 --- a/target/hexagon/sys_macros.h +++ b/target/hexagon/sys_macros.h @@ -146,6 +146,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/op_helper.c b/target/hexagon/op_helper.c index 26d32ab9d47..aeea4715372 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -36,6 +36,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 @@ -1232,6 +1235,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 %d," + " syscfg:k0 =3D %" PRIu32 "\n", + env->threadId, 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 Sat Apr 11 18:34:29 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1775675121; cv=none; d=zohomail.com; s=zohoarc; b=nMBwCSb++gq/WENdBtnI3bUSK06LQE+hd9x07hcpZjL4BqV2P0VBurRYsieXWKj7SOBsVwrKqHsXGeJ1Nio3OlOq0Mpr/N/RaiQWphcaSkkz4AknazWEQt55iELCDUH1ali3dV0q9Y6QCSdRiEoZx5YjlJ8HMM89HNRVlnk3Baw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1775675121; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=sW27XZh/polIRJ6zGlVRtPePAkF7zmzsx2Pd7RqkvxI=; b=OoYbT+3Sp2kmcuaMss01q3XrATFEgxgqcj5n6LaJVnJYj4LHODlLGkD6BIsKf1ys9YYCy4KhKEyWV0Jg9Wmd5pAbH8KFIFT1VuraC3B9NHFeHw7KERLxmHOyOZxFi4ybzCMlvyo+m1AtU0QyPR0CHDdaqXV1/bewFL9Q0ypQKBU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1775675121148635.9094592819628; Wed, 8 Apr 2026 12:05:21 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wAYD6-0001aR-Jg; Wed, 08 Apr 2026 15:05:09 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wAYCb-0001Rk-RY for qemu-devel@nongnu.org; Wed, 08 Apr 2026 15:04:37 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wAKP7-0005cO-37 for qemu-devel@nongnu.org; Wed, 08 Apr 2026 00:20:38 -0400 Received: from pps.filterd (m0279866.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 637J857s3362755 for ; Wed, 8 Apr 2026 04:20:35 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 4dd7tkheyt-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 08 Apr 2026 04:20:35 +0000 (GMT) Received: by mail-dl1-f70.google.com with SMTP id a92af1059eb24-12c21dbc9c1so1093532c88.0 for ; Tue, 07 Apr 2026 21:20: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-12c14a371b1sm6480362c88.13.2026.04.07.21.20.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 07 Apr 2026 21:20: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= sW27XZh/polIRJ6zGlVRtPePAkF7zmzsx2Pd7RqkvxI=; b=OTU2X7M6vdsdAb4p NpF5DjBsV9BchO9kVrXnjwdB6jOruQREy3OxsQ5aA05RufiRAtZrDWlNPeihdesz TQAbHmmaGORU0ioZQd1q4nMoJHyHfsMoj4FaZ1P/Y0lu/Vn0GbWDSiMGhpLcx5gN uneKnPDh6SKH+FR7NGiQevLj70Zj4mw4RjqcGChIMEbLzrgTtVns2TDZGE0Yben6 lQpKm9GXChAlXeW2/XmiHQ8tqSe9/WyGU/I4jHJfSnP0mow/7U+7LTfHTvdmTthc eDwhzgiSEjH7Fwt3pFAYYCyeZWOAHBuE0v2kCgP2SjEtcsDiVtX4Y373kBkTeqCD cZ+Lwg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1775622035; x=1776226835; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=sW27XZh/polIRJ6zGlVRtPePAkF7zmzsx2Pd7RqkvxI=; b=VJFjKyqb7Y/W+nDYdPKw9wOkUzqKkdEATzRCpdFblJYA8tVmbQk8mC7O3DkEEtQdnz jVDcpzX7+E4C6POw4PZPrC2NWTvZfpnpAUlGOTVGJGbqxbPCQM9WLMhII+KxfU/X+p3f 2tZZhLLXdDXarhd9bidSxS+vtD+s7598gyh/c0fdWhCd/qjs7oDomEVyyckrN3NjVgwE SzkQMTOcyW3DUbq0GEVgoX7p/Feo83/Z3rrQBLukmd1lcHIVL3DIgur47p1jOjeioi9D sUBUsPj8SScl6D+EPjlqla3QvEqn0UBB98/b7JrmKOUl0oNCL+gxnHvr9H7XqbWtWVcu hAKQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775622035; x=1776226835; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=sW27XZh/polIRJ6zGlVRtPePAkF7zmzsx2Pd7RqkvxI=; b=G1tuLrTR5V2+E7GPRITmLE7GVFUPLkJWkTta5U9pn8v8dhKnF2t0iF1MyZOiuihAtk QF6wUI9tt5CwOju+rB/doyb56PfTfVb/BPY67c9uJLPrkgvVsBWcL/ZkV2pgZHRGMXoH exPN6I+caOYWcPgT75dNKJfWzmLaEcyYgLl2oQpkjaVRftszeQuESLtl2FNKgUHETm2r UJpE55PSYCBVaR67jHGjladRaWzxCuOU3Knfnzwk9dMi9LuhjALdbL3X10xPAb7RPoEN pelfvpLcldPnSlDUFLYt4kzHM6CkZ0oGaUTYN+/F1d4oKHQHxFTRMb6AYv63HiBZANKX sCiw== X-Gm-Message-State: AOJu0YzLMAMPwS4VcH9IIaZcqSVGA+6n04GJWC8rOv7QxxrvXPMIHqnN NWYSMfGhSTHTfp28hLTZ6T1n2QVH6PgzBVjCHnq2S1+p77/5y0tCPjk3RthftvSEKUz/k06vnGW 7APw7wfoZLbNqG0iGZZjzhY5Drw3hdqaR85B5G6rtLaiQ8kgCfC/MCbPb+tus0Q3Bdg== X-Gm-Gg: AeBDiesmie3hZvctH+XRW8+pOUvZttaUMnBChiiwEg8Imchcm+FEvVuRWBq14iaFytF meuixtQWm4AuZpvA6MogWZKxLJtLjbxBCCHj8Cw9skD7WSGJsKvGTCDMSz3eMzjzi9LRNl/0vA5 cgM0u9tvn2joKFoZjppDMVpuFTfCu84w1JZ9L0GACqJygTEI0nt0eZzh7QLYFymwgol6Acg+Qbb kenzcOfoo41wKSWiqieEXYYeb4FZPIkiakQuxWw9C7t3IPKFELus3FL0t3da1vsEW0b2HnFevvE IG13TtLNo+zoliRRS/CZv7HH8H6AoRkGMyVogoOWc/VAkUJnhehNMkc40q1/OPQlYG42vZiAasY l1i7MCLWORVdun7Pq9C3x0xcdFR7BvqyDxQEBdMt4EZg9p7QEeV9E4raywdsppzGh2tAYOA== X-Received: by 2002:a05:7022:6997:b0:128:d7a7:526b with SMTP id a92af1059eb24-12bfb745137mr11122791c88.22.1775622034686; Tue, 07 Apr 2026 21:20:34 -0700 (PDT) X-Received: by 2002:a05:7022:6997:b0:128:d7a7:526b with SMTP id a92af1059eb24-12bfb745137mr11122773c88.22.1775622034098; Tue, 07 Apr 2026 21:20:34 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, philmd@linaro.org, ltaylorsimpson@gmail.com, matheus.bernardino@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, Brian Cain Subject: [PATCH v4 25/28] target/hexagon: Add PC to raise_exception, use fTRAP() helper Date: Tue, 7 Apr 2026 21:19:50 -0700 Message-Id: <20260408041953.1899532-26-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260408041953.1899532-1-brian.cain@oss.qualcomm.com> References: <20260408041953.1899532-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=drPrzVg4 c=1 sm=1 tr=0 ts=69d5d793 cx=c_pps a=SvEPeNj+VMjHSW//kvnxuw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA: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=4FQt9sIIQT5CW9ciUtIA:9 a=QEXdDO2ut3YA:10 a=Kq8ClHjjuc5pcCNDwlU0:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: T-_7nGHyZGK8A0L1vZyMuks5KqE9m3HX X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDA4MDAzNiBTYWx0ZWRfX/gXQ7huijtTv zZy8i12L9AGR/sMVodYIhsr6PXhcSLeMJlAKImgUW8Rjh/qA2XvnNcoe2dpoCmf5vTMfZLCDiGd b6F1/kVBqtkC9xRg3IDUuVxYSLn9+7bTytLu5mYI8dFFYJrK+re/1IJmqiS7F7QxCSTfQgJ3WCT 8SwfB08TJdlo1nw/qLlzC91ap+5Y/EmA4bqyCdfqcmXspxBCvvUJ+BPMXoh8AtRKKHERjjvpq6D v504xWj0km+Y0qkp8PWOWWDsRIxnRssRGq0nZkGD+k9PTf0p7OxgJa7M4HQ2/hT/nAu8yEWFhVV R/GLI0S/avjNS7WyDaBWhJDIDTfSdurPxZHwPwWgEnjhNeydWIU+RYuUqkZhNQ0iJpcMttK1DCU OlhWQgukptvlq7fUo+8pPsBkclIkhTp0+KWsWNpa4wxBekN0Lmkp/Ueh3FR6fHKko0CwadcRK4R TydSlu1WW9CVsGQ5BBQ== X-Proofpoint-GUID: T-_7nGHyZGK8A0L1vZyMuks5KqE9m3HX X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-04-08_02,2026-04-07_05,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 lowpriorityscore=0 spamscore=0 clxscore=1015 malwarescore=0 bulkscore=0 impostorscore=0 phishscore=0 priorityscore=1501 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604010000 definitions=main-2604080036 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1775675123914158500 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 86d74ed259c..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 17e74b12f3c..a89758b5df5 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 aeea4715372..c4ad6015689 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -65,15 +65,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 38721d74007..ae980c087f0 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], @@ -213,8 +221,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 @@ -228,7 +239,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 Sat Apr 11 18:34:29 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1775675924; cv=none; d=zohomail.com; s=zohoarc; b=d3tCwPeYpOHeP6oZy426bnswSf1wruocQ1RQB6+tKNs7AJoo2ePtCYoH/ZqBmGXBmKdX6CHxqCRzvJPBVcWqWf3J7ZswEF529602At/LzTxYXN/psslHtflrAgC+qGswJam+VuXZ3Q65q2O45FgLIPRnvkbNsMeoy088kNVP/U0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1775675924; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=eDXxY8veDppPGZYB4pvyhydqmDwea2dSVqYJLsKwO3E=; b=K5J8IQ7H1udwx4VwFS6RVIgxfs/JREjrdGiPaPvfCgXVFxGLQki0GusGXjEZmlpqP6bmZwQRpN+V2idZMZQgTG8/2Q1BcJy1ZGzOjvG5SnadoMjglSUizpfr+nfqElE+IzmObRdBr3ERGj+388GNZe2dei/M5J85L5r8bU7eejM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1775675923984978.5768080564025; Wed, 8 Apr 2026 12:18:43 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wAYN1-0007Av-IA; Wed, 08 Apr 2026 15:15: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 1wAYJz-0001Kx-Mb for qemu-devel@nongnu.org; Wed, 08 Apr 2026 15:12: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 1wAKPJ-0005ct-6g for qemu-devel@nongnu.org; Wed, 08 Apr 2026 00:20:55 -0400 Received: from pps.filterd (m0279872.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 637M3Luw1619750 for ; Wed, 8 Apr 2026 04:20:37 GMT Received: from mail-dl1-f69.google.com (mail-dl1-f69.google.com [74.125.82.69]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ddacrgxjr-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 08 Apr 2026 04:20:36 +0000 (GMT) Received: by mail-dl1-f69.google.com with SMTP id a92af1059eb24-1279caef718so9083044c88.1 for ; Tue, 07 Apr 2026 21:20: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-12c14a371b1sm6480362c88.13.2026.04.07.21.20.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 07 Apr 2026 21:20: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= eDXxY8veDppPGZYB4pvyhydqmDwea2dSVqYJLsKwO3E=; b=IafqgEBUstDrhJzv JMSNGpDkUKq1Ws11RTBe3+WV4aTVwx2twf15D27E1Hw7Chu3FpfS6dmsMSckqbAK OoZQAPJCwFUIDp2BYxIDdMwczsfbr0ncRO9h136lGiVuVLW+Ouyfzvf2dXGHdpwG dv95Byp09gEqS/u4WLh5SpjyZ1FnK/oE6jzskKoHkkfnwLY0KcjYrTKbllGFE1sN z1SGPmzRH2MSTZ5Esj2xxYoXh9aKrkOIbuBVZCELAsK1We8Vioy5SLJrWi+uORoR Cnjr4IfVjrHi2CdSlU6X1YMyAJRo6MC1t11qt+GJ82mJWuEFEJh0A84IVvsgW1yX oZP7Qw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1775622035; x=1776226835; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=eDXxY8veDppPGZYB4pvyhydqmDwea2dSVqYJLsKwO3E=; b=A8GYssb476l/NZKY/GJmG56UaruBmLkGOTJGxOApTwtRr/Qz5iXn3JHW6x1rvXi+s9 5wpv0TJrd9x2nx/hkNcf8B2bA+EZzfNkNLRp7leNIdD5Xj/dpYS++mOFoVRQ0ykQb/H1 Uc7UuTeUkPK79n+vJagTJTn+3K1cPyNwWoEL9KMHaWtbtgEq46TawD2jangHuzOGsgnv 7ousko5FrNjcuIGEjyz/DNPKbN2q0CQOMZCE7HAKh4dpm+qu5JLkcQ0W9Y2j7mOxxkiX +PWdru1FL0G+PSqLd8zf/3+dcLU8GJU8yYKkiFi9lwXgIiAUW4zqhSD/8/iJauYx1I2T d4PA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775622035; x=1776226835; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=eDXxY8veDppPGZYB4pvyhydqmDwea2dSVqYJLsKwO3E=; b=aTTi8UqzLd3v+ezwYQcnmVOj1DWidYwyqOISd+XopQ0aHDQ8D9MHHdytZWSBtESM06 JP2e0M6eL3FsZM24z98RTrsXUT/B1SUlmYXsxHWiRP2StRCOyAL9dDmQOQ16Hil6h4Oe rrTjPlU2qYdN5MDOCr2wmo2tP/CPsZ8xgEyc8dhRzYgfAMp2A+vZh8fJLFwCfnq+KuhP aPs7Cn+S+ZISfpAirvC/MGbPBmuaydMV2TwRJrlckMrEtVFq5ysXscWCoJjJKpF2tk41 dYEXxqMsh7T5qjmEFepHTToEL2FH6P3QObe10fmR3Zho6iaqzCWZAf2UTRlsQV24LEYj yEnw== X-Gm-Message-State: AOJu0YzGgx0cel2WmzD4UNzacvPwQDlvi6IZG55/BvOVLuoZyZul2xcP H4elzuYlMy1yzXhtkr+RSCU+GBVSFW15d/vZcHeLMn/mqJ4kPVTp8R+wIuuvicdMZoGAbhCTLGA O0AEQZ0k/sDlSvuzAFJt25tP3VnyQwbyW/VP0KjJQb3jUq+xbnplT+jFoms5lrNav6A== X-Gm-Gg: AeBDietCzrvT2Ws7PZ9N+L7zfWl/hTyxYH10i+pQ7abPUgLzjQBZS0TpZVcPT/EH95k i5fT8PsX2L3fmcx4DDmvatYeLAAhBosdmsQGlOknvd0gcJiUoPc57XCl1XHjefAlnE673bESqlF QDDV/iXEoxYejIvZDMDx7G0jyOIIok0FGOm9EcPRGf9jNzxr0BFvtVOdRV9VwvMmBhUNjhWONQI iTMitGnmFWuAdBMqw3zAQwY+33l76uYql72Y0NXV9bu4v+Mm21vEzZBJLss+mSXXwM/YutUZ/Mc zA1QfHtb9SKVaSCxt96ViiZkg3MXT8TJ3ZZCKJuybdAk0/Tm+f2ZL5Q8STQg7yB8nww0ERSKbOq hf5QxWFGhR/WcA4VRoioNCCEBYEgpumxllOnHPifRQ0PyBwhOFZFZkOnjfiuCG8clPPnblw== X-Received: by 2002:a05:7022:e14:b0:127:35af:1446 with SMTP id a92af1059eb24-12bfb778c4dmr9876277c88.36.1775622035419; Tue, 07 Apr 2026 21:20:35 -0700 (PDT) X-Received: by 2002:a05:7022:e14:b0:127:35af:1446 with SMTP id a92af1059eb24-12bfb778c4dmr9876261c88.36.1775622034929; Tue, 07 Apr 2026 21:20:34 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, philmd@linaro.org, ltaylorsimpson@gmail.com, matheus.bernardino@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, Brian Cain Subject: [PATCH v4 26/28] target/hexagon: Add TCG overrides for transfer insts Date: Tue, 7 Apr 2026 21:19:51 -0700 Message-Id: <20260408041953.1899532-27-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260408041953.1899532-1-brian.cain@oss.qualcomm.com> References: <20260408041953.1899532-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: -91ds-W0TGBux9kOdCSqf6hroONDq_sR X-Proofpoint-GUID: -91ds-W0TGBux9kOdCSqf6hroONDq_sR X-Authority-Analysis: v=2.4 cv=WZs8rUhX c=1 sm=1 tr=0 ts=69d5d794 cx=c_pps a=kVLUcbK0zfr7ocalXnG1qA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA: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=LN73x9Sj_Gq4gUX8wwYA:9 a=QEXdDO2ut3YA:10 a=vr4QvYf-bLy2KjpDp97w:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDA4MDAzNiBTYWx0ZWRfX1DDiIH6ay3pF 21gkBKTdQ9dgd1ofkWMroe+oy1b83N32Eti8Y3LilMEaAeeEv7dCDNl+/v6asNOHpSvQ2czv8xf GrutgkeArutOOjSQGJRmHwROV16DuIw/cogDYp/oxX8twA43puMrlMXpbOnSOPc/ahitEwId1Hn 7ECWRwfGc3soLBaRhhmt1sE9CCZnDJAq2sl+UNULLZPiu1M9cAz6SZSJVP8n5UkMETVFztU0ZG3 /aLHJWhyB+uy1Dt4GsflVXVAALld1HeQLNH0+/duNvAQqME6i++j/6FC4qTLrp1YD6+VCW6G5mf NKIle851lxbaRJvzg67YiijHlapHjn/8sPHJ0ZTLuTYIDvsfWWqJrNstzQfIYyGu7IRQXUw0kyQ KCCoQHxZT/ieo8b7LqjtquHpMFGOA1rRhrEPQJRwP1i7FgMdMCx6NZZwGIUprvQZmg4JKrMRfik 4O5uPQdAIaNLP7+oPUg== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-04-08_02,2026-04-07_05,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 malwarescore=0 adultscore=0 phishscore=0 clxscore=1015 bulkscore=0 lowpriorityscore=0 spamscore=0 priorityscore=1501 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604010000 definitions=main-2604080036 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1775675925747158500 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 04406db6a4b..c4d7c21b890 100644 --- a/target/hexagon/gen_tcg_sys.h +++ b/target/hexagon/gen_tcg_sys.h @@ -80,6 +80,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 Sat Apr 11 18:34:29 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1775676504; cv=none; d=zohomail.com; s=zohoarc; b=MyzPyp8FO4YHe6FnEbZStNtuTf5A9ed97jC8dxu3Z81a6pl+pKH5Pej36V7NbufyTRSivNBE5T4JAa+OWRbZegQkMaQ61s9UUCbYB2tGC46N7ANiDTiFkrhFJeUd+OEJzWDPUuf2w3nlKKa44Vrc8C3iKssHah1GYlTfNTkSs1E= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1775676504; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=mLEQN0ORwCpGaFZFwS98dzL1dd7XNm783qOe+zmq5uE=; b=b+/1LujdzLNNpJm3EMocP1BnWkpUNeccK2aS1RhVXTS7PPu3BMaUkTosbNDIH/2E+sZxy6MHyEmUQMQKOFJxiIc3vAzmcoM+7tDIb+vZoVZh6Ti2IZJAcevyCvvFCt1zKlDIrP8ccIPg+c41jpuuJGN8OR9bVSzVgYVX8GN07CY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1775676504979827.420248856157; Wed, 8 Apr 2026 12:28:24 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wAYO6-0008Bu-Vk; Wed, 08 Apr 2026 15:16: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 1wAYK7-00028d-44 for qemu-devel@nongnu.org; Wed, 08 Apr 2026 15:12: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 1wAKPJ-0005d3-C4 for qemu-devel@nongnu.org; Wed, 08 Apr 2026 00:20:53 -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 6383LaqQ2412322 for ; Wed, 8 Apr 2026 04:20:37 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 4dd61v9x78-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 08 Apr 2026 04:20:37 +0000 (GMT) Received: by mail-dl1-f70.google.com with SMTP id a92af1059eb24-12737f276a2so9127085c88.1 for ; Tue, 07 Apr 2026 21:20: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-12c14a371b1sm6480362c88.13.2026.04.07.21.20.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 07 Apr 2026 21:20: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= mLEQN0ORwCpGaFZFwS98dzL1dd7XNm783qOe+zmq5uE=; b=jMhhsQFq3a/LVKgy 6R1fIR2K/ySL3el4Nk4fuZs5P6kYOM8yBNbDhI2NTImXnhFaxeiyb1xxQp4gxhGQ YnqEJqm1YI67ouKZjnYB3VYKso6bkFI7cKK0J5hwejhP5S5RrCpZku/tAiDtcl+t o6T0RsZuMI20hDv2SMKRl5n/Y/TGogC2OynHZRHUSfiBGn5J0YF7gkukIwQNK/7z hCFhSA5JD011kjRrTYv3FF9StFzIckNfgZnnX9P6CgFOrqAIaEtwjvwnSttoHSzV 2qlyKLYbs21zgX83wiGxzSZhG/PWWaI3MC/fJbdcV2DjRkeEvfoIC8KnJ93pzPz8 cRZABw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1775622036; x=1776226836; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=mLEQN0ORwCpGaFZFwS98dzL1dd7XNm783qOe+zmq5uE=; b=h0tfuc4zxxlGK1alRuzCIotrj41wAo5AM6UxvMDBDoKT0cxVgfa1uNkEvrGSF91NHX NuJQW8mbjGf0Y303/3XGa/BjZIIo51+pVKUPBhzffa0L6exl4C9u7WFEbyzCtCJeIG31 U3wWLXDFrIT4I0VQYcP0h/5evmvg3bUY0eZ4aL4tOiMnCAv0xpRcLfG/hZt5NVqGNgRw it12kSLwja6Ee4ZKtx3tzT8tszkFzW7+pGTAzkynLhLIHQYoHcPJ89ZVBs7gEKIafuy/ yo+i5OXW3Zr0eCoKYytVFd8TiSsNiraYKoYyKE3dSCy2O4nVWVeg7KB506/fwDz73uwh aoYw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775622036; x=1776226836; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=mLEQN0ORwCpGaFZFwS98dzL1dd7XNm783qOe+zmq5uE=; b=T+gH5l8WRq6U0jTfEmH2et7b0LmA2Rn6yDsm0tCQwShwGL1DzuTKKa1HDzM6XvDFNb VNBsG6goCgXaUVCx8fXjXDsYi09t/OowX5tbCJmHphBs+2BgkU5jISdoYdww85/euayN JPqNqCrXJwYUgevEKM1ivYJ1GatCZZGdmiKz39a5T8ylB9D57eR5+cecDx9SGAin3ZOj fnkmeDIOV4ksWdgjctY2vHafDSlzrYvcUvYbvwrzSIoWw7WdEio8ivfP2YI9zxBc7n5r FZPY38fQIQLa0ddMUa/6t89o2aLVEVtpfXyuUgU37Z0+GQ1ViNaMAu1ltsIMo9rxcBO3 T8Ug== X-Gm-Message-State: AOJu0YyWnkIwEus0zROWyN7Vdv2Go/RuwjA22Lwqobt0NF6bK/b8i7uZ V45y8EsJNoGRXvvILzbjyJVT3VJvKaP1Weqa2efJpR7E8esdXlqKgAMD5QUb0ibAuARPhOBzany XqzpZDIIUyZb70Smq0fU3lHWkfOThZgRO82tfMKhhPpncnBXCJOBzgq2dcb5vc6XAhg== X-Gm-Gg: AeBDievjpvFti070gouoT7IPoWLc1qscfum25wocng3M0lPL7KTSkYPYiyOs7TIDa0F al8uE6aurQo1TxigEK5hFyE92xs/wnIAU5CV8Ntto/rDQpoScBXR2H3zVB5sSWWfnG3g9TqeOS3 QWBy4aZO+DKh2Z4Bs1KahB0lr0+jvpOYmGgJioOarUm60qja5nWIDhTPs/m8toXkblLInReEZre lhSe7EfZpuLMvGh9kxlQKFFs5McXjRP3HqsDAmhidQe9Zy76z7S3FaS9LfbYdq7jjLWqz25OCy7 Yvmv0rjZY36rDzvOXpC0xY0/o922u/nxGkvUkeEGayMC19NRiulMS7LtTctDLGCupHlOk11e9qX h+f11WEKgtk8Eikbv4i0QqxxLjVljTqMPqWB0FUVW+aX5/TBJMgYMry9feF/QvqF+M+M7nQ== X-Received: by 2002:a05:7022:6881:b0:128:d39a:b141 with SMTP id a92af1059eb24-12bfb745afcmr9915929c88.17.1775622036332; Tue, 07 Apr 2026 21:20:36 -0700 (PDT) X-Received: by 2002:a05:7022:6881:b0:128:d39a:b141 with SMTP id a92af1059eb24-12bfb745afcmr9915919c88.17.1775622035810; Tue, 07 Apr 2026 21:20:35 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, philmd@linaro.org, ltaylorsimpson@gmail.com, matheus.bernardino@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, Brian Cain Subject: [PATCH v4 27/28] target/hexagon: Add support for loadw_phys Date: Tue, 7 Apr 2026 21:19:52 -0700 Message-Id: <20260408041953.1899532-28-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260408041953.1899532-1-brian.cain@oss.qualcomm.com> References: <20260408041953.1899532-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: AW1haW4tMjYwNDA4MDAzNiBTYWx0ZWRfX+B+RLKzVc9QZ scMnrn3EwzBrgW0r9Mp5lrU71xZy8Jxz3egEATc03DD2wZVUlvzr9AUDgus0iLadImm42n7/5cq 0Ubh+Cv7oITaQ1VmWyFG5OtyuRSHSk04wHb7zkuiLoqatzI1j1/XqCeF/wOZ2jwJwqHh+FAoZ73 e/0sC9o8AJMewknGLS81TvueLZBWtNpaNRQNjhqbAD82tJPeg4D4vQPGcMNpASuFPH8tO0zBJ2k 9EYiV0x6lE4eMR3hlnHmMUtp7rkoaYM1JOEOhQXYGo7tPOaMxCfmTvt3PqA2bnWv4BDPUL4S/uy cLf54wZ2klVMokoVE2TlFIDLzo8MlPBx6OHus73P2K2nMK8h5zIAXZpmmCZTrd9oDIOrvUXzFO7 smlznUO4/KP2YFK9h145iRXu+PkHknwpvm/yEss6tP25EvX6BTgD1ZN/3igXjYG8FNEHNG8KHdS CUX8bvvTl+tpx0URqCA== X-Authority-Analysis: v=2.4 cv=FecHAp+6 c=1 sm=1 tr=0 ts=69d5d795 cx=c_pps a=SvEPeNj+VMjHSW//kvnxuw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_glEPmIy2e8OvE2BGh3C:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=M_0_kNSAHlZdZebFLzYA:9 a=QEXdDO2ut3YA:10 a=Kq8ClHjjuc5pcCNDwlU0:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: 5HX42hK5gCywPOMdM_Cy4P_LAUwVU-NQ X-Proofpoint-GUID: 5HX42hK5gCywPOMdM_Cy4P_LAUwVU-NQ X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-04-08_02,2026-04-07_05,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 phishscore=0 lowpriorityscore=0 priorityscore=1501 suspectscore=0 clxscore=1015 impostorscore=0 bulkscore=0 adultscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604010000 definitions=main-2604080036 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1775676505765154100 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 9986f47114e..8ef8e36852c 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 Sat Apr 11 18:34:29 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1775675984; cv=none; d=zohomail.com; s=zohoarc; b=hwnfJZeeFfDtlBEiHLhXIlfkuOMh4Mk4qpfN9xsDpHRpOrQv3BNSwduZQTb6ZDJR64hMp3oCLAZXyJnb6BUtGQ8+abd6uwU+HMFg/u/5UMzltjUHL7Glg4oo6Ot848Wn/3viWUdpNXVqMxTsUchHaspmWhW8GUm5+WEM19dbOac= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1775675984; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=VyS//kJE8X1YiFhWbpMP89yyJBq8IVDF64zKKUVJKZQ=; b=WcAH7DK5e/5/kATYbzrDch3jqvWWEQUDc/QoOFxFNwbz8abnWOQASIoqAqr47pSLDHdNbzjQWfLcESoL+HqwVFYVd77W1t+m74pTkVZiNA1VTB8PZMMCZIN04wPP/DmNflHUdYZz5nKzeVNnTQ4zPKcJdzJp1unMt2PyZuESMBQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 177567598435189.82106373901877; Wed, 8 Apr 2026 12:19:44 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wAYMo-0006kO-Fx; Wed, 08 Apr 2026 15:15:10 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wAYJy-0001Dp-Rd for qemu-devel@nongnu.org; Wed, 08 Apr 2026 15:12:14 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wAKPJ-0005dA-Ef for qemu-devel@nongnu.org; Wed, 08 Apr 2026 00:20:53 -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 637M4aIU2861188 for ; Wed, 8 Apr 2026 04:20:38 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 4ddad8rwvm-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 08 Apr 2026 04:20:38 +0000 (GMT) Received: by mail-dy1-f198.google.com with SMTP id 5a478bee46e88-2b81ff82e3cso352182eec.0 for ; Tue, 07 Apr 2026 21:20: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-12c14a371b1sm6480362c88.13.2026.04.07.21.20.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 07 Apr 2026 21:20:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= VyS//kJE8X1YiFhWbpMP89yyJBq8IVDF64zKKUVJKZQ=; b=IN+auyB3ntkHmqf/ HKDJ+cmlc2q1YPJ8dEjbkJsXZn7NDdETNNPCw8bb5OfZp0NAxJTWP4BmkBuBQrf+ AN1R5ZNquindE3DNbQM5S568N/Fb3X5D0EuBfP9LlxG3S/gyBYuiRS1PRgW3MdOW pxAdW822Ko4+bpDePKXiGyCWt7OLiDeKdhYU7ehH5HyOScsPVu2zLzkdTwgQQ42n a9uDDD2oPp3O4E1C11fBB1re1hRiZqm+IkH/Pu9s61iolQo89rTz1FlHn4OnRSkw yzvRKybZe1U6r/6xifEoyVfWHa0gDEUJKM8GgY2W5lrjeyzMatTxNdNtjqQlebOH RvthDA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1775622037; x=1776226837; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=VyS//kJE8X1YiFhWbpMP89yyJBq8IVDF64zKKUVJKZQ=; b=DbYaC4KzSAvRNhcGSAay84LwGfuiC46BrcZBb6BkosXGZiucEpVysjZCmnL+0uoTyj dBsXb1+3V8ntEtM+hj7pA5wSMEoKQloQ/uwzwfiNM2vEJ71bQhgWCJ7LYVd3WZAluoa7 27ivX5MRu+JOByNguDWzH0VE+mW6FBmrNEAYK2Fr0vwvC6ItWmEqE/IjGaZbL8nY4/t4 Y7QU9RA9Elusmvtc0cQrKh0mLpAZXoZm1sY+cK8aDtgTM49rnb0ZTP2pkW3A6zN+lXuR So6MK/Dzsvj2LlY2Z5QHSv6nVxUtD8E6GUQnX8JDGN7nfNNwVfMxVRkQAVeJyEIk0l/g 6Ewg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775622037; x=1776226837; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=VyS//kJE8X1YiFhWbpMP89yyJBq8IVDF64zKKUVJKZQ=; b=UPjAJ6oCGuNSORRznIHDAi5SQbquERTx7oy4c0OJBiYgoAe2JHIvDVCl2ZpEV+0h3/ NxCZlKL1VdcWmfexU279tZHx8FNVCOqv9H//OcQgDkrv960QrnloE/RYQOniBdZ3mWRa KZuFRYbBMUFDXF59ouM0fBwmABBUslMo8BKZB0mTyPuJL8Q/n6dbNjxMFOfwQUFIjiby nB3MnGdupzv4mUC8oU/JqZyvb8BLbCd/SfNjaVadMDU003RLa86e2G9KNezjMeSaPdOP GJdhMZKtOMYWc3bcY2ErNGafbqRV3TPDbzd0rdcv4BgcX0rDHrWl9rKFzJThdEb1jO8O TOcw== X-Gm-Message-State: AOJu0YxZ2j0/5ZIOUDdxkg4FcXgVIRmkZtreUFG9n/W6f9JFJ3RKjIGf ZwxKg12iZdG9vemacuYWTiSJDDET2ccZNYubvZRhMaJF6qq7+3CYMa6CNriOOy51hyjcY+Hd+Zx tRs7p+UXaGR6tUMGNJz6154QgnGvQu60rnXm/YTT04rJ5mQb1kacer+4iHyosfsDFuw== X-Gm-Gg: AeBDieutZMG8r4Qlk6zOW4D4dX0XlUwpH0M0EiUFuZ3cMFRhqYbtiyUO29b32RKRZkq WYEuiU42u9Hd3jKZ0TiKh4rNOIkCQ8aAXtDG19o6LHi/i2M0RmAWe7Xw08snh3aKv+KOX3y21gE wnRa+EHld7aHBifoy0aqiRCNYkp1/E0uz8tYqUze4l+avDA9778PwbJYoWOWcLOwl2jaP9sRIhN /jF4F7j+wHg0KeLsVjv4hy6N3R4fQgM4keeYDwLOSNzxvlv6pISbDtCzksrsW7FrKT/MdE2i+2C yWw2U5XDdXJUuik02w4Yj/MuTFkdamVKbn4AYz/aXglpuHBNrHFCzwFuo8nee0SOIskENh9Au0J V7Dl+/El+M9awrT66MlvvPEdxmMCRc/4y6TtorkjRbKSsfFsgI++EBqAuclrI3BdyRfuQxg== X-Received: by 2002:a05:7022:420:b0:128:d1f6:16da with SMTP id a92af1059eb24-12bfaf58986mr9462708c88.14.1775622037369; Tue, 07 Apr 2026 21:20:37 -0700 (PDT) X-Received: by 2002:a05:7022:420:b0:128:d1f6:16da with SMTP id a92af1059eb24-12bfaf58986mr9462695c88.14.1775622036845; Tue, 07 Apr 2026 21:20:36 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, philmd@linaro.org, ltaylorsimpson@gmail.com, matheus.bernardino@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, Matheus Tavares Bernardino Subject: [PATCH v4 28/28] target/hexagon: Add guest reg reading functionality Date: Tue, 7 Apr 2026 21:19:53 -0700 Message-Id: <20260408041953.1899532-29-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260408041953.1899532-1-brian.cain@oss.qualcomm.com> References: <20260408041953.1899532-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: BQ9pnrlvzdFZKAgeMwANDIPnqX5MtvP2 X-Proofpoint-GUID: BQ9pnrlvzdFZKAgeMwANDIPnqX5MtvP2 X-Authority-Analysis: v=2.4 cv=EoDiaycA c=1 sm=1 tr=0 ts=69d5d796 cx=c_pps a=wEP8DlPgTf/vqF+yE6f9lg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=IJQQmebJWjVxhimlKuwA:9 a=QEXdDO2ut3YA:10 a=bBxd6f-gb0O0v-kibOvt:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDA4MDAzNiBTYWx0ZWRfX89OPvUBJRefe f8yxL3p8v1Fyw1D6tlBc3MBmZk++mu+/WabA6AEuh4QL0DHLyZ1VExbCD1CKfF/LxAesdSlpKfd oq258P3EsIxPVpZ4p+5wP3AMkX6nYukiRVvzQKKLPwMVLEdCHgaxmWPmCq6JL4wR4aKUIkWH3tI zjAt7jiMJM0ph9bwps7ryxpZufARnn7MOvB8MyHpkMhI/wxUodfRJPNLD/UUobwajmso5mjASZG 0j4LHaTWqMkdQuKOhjw2mrnMLEV4re9/KHuRdHWY715/pGkKrR0tDHjHEcig69b8GdJ+EvPKDWd ceFcVDAWTeptp2m5cF778NZ2XCtt5YUk8Kzdz5ixwGlNGbjBCGg9FOgnXBxloDMdfhbeHv4RCh2 93j9IzjZ8eOiqEOysurt5H1o1zcQbVM2CxsfwGKLqS6bCJn/zdVMSGhV8eVLEKQE2GeJusV8HlW FiRFLIqEbwgpLsS01LA== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-04-08_02,2026-04-07_05,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 priorityscore=1501 spamscore=0 clxscore=1015 bulkscore=0 malwarescore=0 impostorscore=0 suspectscore=0 phishscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604010000 definitions=main-2604080036 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1775675985884158500 From: Matheus Tavares Bernardino Signed-off-by: Matheus Tavares Bernardino Reviewed-by: Taylor Simpson --- 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 1048e767e6d..09d5cac4fe5 100644 --- a/target/hexagon/cpu.h +++ b/target/hexagon/cpu.h @@ -219,6 +219,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 a48d6178e06..bd3eec0d525 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -765,6 +765,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 + #define DEFINE_CPU(type_name, initfn) \ { \ .name =3D type_name, \ diff --git a/target/hexagon/op_helper.c b/target/hexagon/op_helper.c index c4ad6015689..a1c0c9910f2 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -1877,13 +1877,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