From nobody Sat May 30 17:44:14 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1780091960; cv=none; d=zohomail.com; s=zohoarc; b=a7lf3rDiTpn3ljiGwpHR2mJi0FgA+FUrzYJxbOOR80lbeJ18tBF8LLW5qqGt/Z5sa7ah7R8Rzy0zcDV1VQQX2K30jjm9alArPWPO0RJcTM76+wPjq2BUbFw+F3mnluEll4LQW/S1OZXxDDwNqLg/kvNQJBS9FA4taEZieOMJ6Es= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1780091960; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=QHUxTxKLxznkRKrJuxO05zidH42cmtjKB9KqEsUwl1jkqE6LmrhHDCWYarmFnQLLNAvkTLW7LYSzM6Gzh2gMt3QkiqrzTn/nhv2FVfF6I67HhhmxqyPM7lsiF/oAH4TCSGMIWMDh8kJg7qGx2dyFqQSJ1SAlCnnLAmcyWHbpX/c= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1780091960148813.5267806351743; Fri, 29 May 2026 14:59:20 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wT5De-0003VN-C9; Fri, 29 May 2026 17:58:18 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wT5Dc-0003Go-4L for qemu-devel@nongnu.org; Fri, 29 May 2026 17:58:16 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wT5DZ-0000q4-8q for qemu-devel@nongnu.org; Fri, 29 May 2026 17:58:15 -0400 Received: from pps.filterd (m0279873.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64TIeP6Z204240 for ; Fri, 29 May 2026 21:58:12 GMT Received: from mail-dy1-f199.google.com (mail-dy1-f199.google.com [74.125.82.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4efg9c8r4u-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 29 May 2026 21:58:12 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-304dd917645so2001291eec.1 for ; Fri, 29 May 2026 14:58:12 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-304ed5a9d27sm2428313eec.25.2026.05.29.14.58.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 May 2026 14:58: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= 7jxkk2sWTnge936nkYK0El/Q5cgEUJH6TW4dEtKN/20=; b=Ig8Oa2A1zZKFMMnB jV2K7NGN4l4LGoIPwxCk1Y712GfG1Tc/orvUZj4mwQeD6zbta899x8/L5n0mFvHR BCPlqLjUPknau5g0ijQJWQADeOisRH4zLhWvjsurZbUI/sx6C23H7F/IrIfKUHf1 G+OWWUDfdVW9KcD9vw986X+KCbtDblqc4y28yBhsMtPp3dYkPjPY3bw2IbdgatTr YZKttuY82EzbcvkjrhY/Jk6aPRM0zq/SgJIms+lnBbGIsA1/1fE01FgTLOLhn/yX 3+Qnj7GJShEGb9kCAbDaFOffDXeBFsNApSmROfyyAIgeVfsNK/h8+sinlCUePPFB x4fuhw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1780091891; x=1780696691; darn=nongnu.org; h=content-transfer-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=j8D1lOZvBW9aQWeaWVAmn7fUV9KK0KR5txCSuM5h5ANA3hORHFX6V32tji77S+uJVT Z0Wz2gBG9MCvjBNAu/tcudtB5w2KtOpaTU+QgB/J1Nu8EJLUqdcvi7S5UQZbC925j+D+ 7FvPkvfjqeoFFvXdF+vgS85VHA31eODKx2FsjK3eEn+j9K8ocRVcb6EN8bLmUlGNGrsr oaxt4R013PV1gCAmsatzOkWFzzKzWKoHRyMKlB8VHzXgskOk9HHi3l11S41lRwud60wM k0flTaK6ILgd7WGz1mFMFKHSvx3RrB+IawCS98Ucdg1d4VZE6lXKAEZNJXPBrFcVI/o7 3x1w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780091891; x=1780696691; h=content-transfer-encoding:mime-version:references:in-reply-to :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=QKIT22Ce2WsJSogrw0kuGctoQL/ylSdLP4eWn7ZUp9szYheeowJojFme3LE7BcALfD OFDQkMR5rd1qOCDKAWfs17tCOxNGvj6mpQiOBndECXx2natYMfToZD0uYdxi6ppi1fuk gT+/vWGThkPvuUBmBXw7VOdK4fexzoANi2GXDLbcogeWZlWZHhue978nWjCHtKCYxJYt vt/CjcVWKV/GNjl3xqEyl9SO4Yy9bYxIpKWyPA0OFIM+bldvUwmzI75C/4kd+jj5u/aJ EpHeibzUArnzj2etV/4mayaxSyFnxaCOrewvqZumZOk8w0mDQ3baX6NKcLnH9RE2oDXk Dwog== X-Gm-Message-State: AOJu0YwnIgQWB9xiDrF5dc7ZmTE+T11nBPoRHeyIorFsfYyjEkIK/iez jimdLNqZYIMsgtlC94SLYlfpQ5M6cDEoE3G8XTL5nV0Yh/9ZgL3NGqQUT7yTao2h1lkdwkW18aH q9GSUjb607RXdb8X8pDLhAUfHvxpfC+WFTocmFhcfQ64JsawxdPMMjjUQg9c5F6cDSg== X-Gm-Gg: Acq92OEw/O5t/YsDOzUdjKzu/RgHrHSfNBGW0XmVncWwlAFrbVjndChnOfxzW2jC530 JQe/1UIKw2eQyOFZW3cditIqk8pCfr5dVNjelGPaVLjXfAqzd3oA1u4gwN87UKpfrhdQGpwBUx2 WgYC+mgb3M/wtoFtZ2SJfzlT5BHS1K2s1zhYg3u5glXEfb06RtCYbCm3expIlKgtdMiJiowxtla YOMM6w5lxbzlENbClebNWK3F8DeKFYjYZFbDV00KNE1zwr/U8IBdueavngfEAq+Wlx2gXZrlGfm OJPtDm7MFGO4mHblQGovd+CivSto8LCwZwY/p+qZ3ne1s8cLP0KxunfLbLwUivl4CNFPxSLfqAv BQaPKHz7pKDXp8IT3OsoyoTov2/hdOpTE90GMkrzz+wRwHibovAXarevE2jpqATSvnWI5eJWMyU oRrGJx X-Received: by 2002:a05:7300:6427:b0:2ed:e12:376d with SMTP id 5a478bee46e88-304fa6dcc72mr840580eec.35.1780091891287; Fri, 29 May 2026 14:58:11 -0700 (PDT) X-Received: by 2002:a05:7300:6427:b0:2ed:e12:376d with SMTP id 5a478bee46e88-304fa6dcc72mr840565eec.35.1780091890739; Fri, 29 May 2026 14:58:10 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, matheus.bernardino@oss.qualcomm.com, pierrick.bouvier@oss.qualcomm.com, ltaylorsimpson@gmail.com, philmd@linaro.org, Brian Cain Subject: [PATCH v5 01/28] target/hexagon: Implement {c,}swi helpers Date: Fri, 29 May 2026 14:57:39 -0700 Message-Id: <20260529215806.608770-2-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260529215806.608770-1-brian.cain@oss.qualcomm.com> References: <20260529215806.608770-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: AW1haW4tMjYwNTI5MDIxOSBTYWx0ZWRfX4eKHaRVNwGAB uHfpy5JTVVcM9cUnZW/CrgTx8KqWzWlohRljJYobMTJEqDR1mgtqEcAkK066IVYvCiBrAraVLaT 6M0bs3xoV2MrmqwcHUum5o8iSHOVJX4X89R2xmFhRNzUB2K2CqF1znlm9qj8pVyUNVi+SwBVfs3 6Dnxd2Kq8KYUkPYnuCjLpPrtwk5MG0AzLMwjYGKdjkH3S7xT4lhg2nk6DanfpJ6cldsDhl1dC3Q lQvr5JIVrk7iWleK0HZbERuE+4Xhe8HfqxLljcCH54G9YxK3LmL48FwONBwjAt0rL4IyVChzGNp enoxPk0uDaiWueYQYMb9xlLRnHjuPlIkkDthEV2m3BQl8S40Se5OrVH6XHCq8QrNHgggC4oY4e5 6bxZZBovG3LpU12TyfwxBHeXRlYgRRjn1FnQXwnJyAV4qhTjNpfBrvuP9VIK8aQF9PSY8XJETnL 4TQ/dNQMLED1hIRFlNw== X-Proofpoint-ORIG-GUID: AnomMNlE_TnQwFbkWHtoRXxr9bnyFmAD X-Proofpoint-GUID: AnomMNlE_TnQwFbkWHtoRXxr9bnyFmAD X-Authority-Analysis: v=2.4 cv=SKxykuvH c=1 sm=1 tr=0 ts=6a1a0bf4 cx=c_pps a=cFYjgdjTJScbgFmBucgdfQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA: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=KN34Fzpn9o_w8YhA2GgA:9 a=QEXdDO2ut3YA:10 a=scEy_gLbYbu1JhEsrz4S:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-05-29_06,2026-05-28_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 bulkscore=0 spamscore=0 adultscore=0 suspectscore=0 phishscore=0 malwarescore=0 clxscore=1015 priorityscore=1501 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605210000 definitions=main-2605290219 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1780091961576154100 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 May 30 17:44:14 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1780091969; cv=none; d=zohomail.com; s=zohoarc; b=c0XxXtdD5e+llkStvZojVOmETrsKVq3JsmUShq0a5qfCkOzJCtIEKM33nann72aAWtpjaxuWN+AR1yl3LWfMFMTZDMP65gEPRfp4E2SkDAJdELXACm6eh47ZtiRPwz3+KXc5Zr9zLXYg7K5qYR49BJxbQ3dhThMgsIfEt0S1nLo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1780091969; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=H8UBb1XnawTgkw5/8DmuKswgrTqt4o2ACJoJUXiNo6MHJ8rWPs+HGSSKpJYfmW5zzZroRTZbcOZyB1zllxbIURCMYFdIqQ9eIH/juDwumOGue3WQYJMUNIFx2XzJwxnz0OE+Fqa1Ab7e3KOGHIqS3RBJxrlW5RToUsJHrACWmc0= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1780091969280347.336900353841; Fri, 29 May 2026 14:59:29 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wT5De-0003Zy-Qt; Fri, 29 May 2026 17:58:18 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wT5Dc-0003L1-Pc for qemu-devel@nongnu.org; Fri, 29 May 2026 17:58:16 -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 1wT5Da-0000qG-TH for qemu-devel@nongnu.org; Fri, 29 May 2026 17:58:16 -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 64TIsqJT3526533 for ; Fri, 29 May 2026 21:58:13 GMT Received: from mail-dy1-f200.google.com (mail-dy1-f200.google.com [74.125.82.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4efgge8p8u-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 29 May 2026 21:58:13 +0000 (GMT) Received: by mail-dy1-f200.google.com with SMTP id 5a478bee46e88-304e4636205so3327407eec.1 for ; Fri, 29 May 2026 14:58:13 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-304ed5a9d27sm2428313eec.25.2026.05.29.14.58.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 May 2026 14:58: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= BQPx51Ys0BSe0nfcuWwE/ESRFU/f2P1cefwHo05cHP0=; b=Rta732AVNgB2oLh8 bps81EBt0APqoOv3V/S6C9eOQBmrsCJKeWZxWQjg8AVyTNJpakq0QBNt/wVIHEjy xafci3siCVcUxIj+23eJ8h78ff1omUqGGWbxJpCDDf7MkspG7QY9jKzteBR1NkPz X1ILHRCCbM9+0tUbmh9FgiNsxyp/xel8Y6G1NpQP+4a3S6qVoyQ/7cfz2KkhfLo6 NioFNpougDiDGZFiFXTWrC2Bs5knQ2jdYorjN0yhrDe3FALIFmco39GYYm/Qh8AZ f0WUt281mcfsfUbHF6b4PsOGJTohD2i1EG7I5snzPMhHh44BYDaZuLEUx77qrTco imZY1g== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1780091893; x=1780696693; darn=nongnu.org; h=content-transfer-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=CAgDWneejOGUwzJFNKiyyA0zHoOdh4zu7cwHyRUMO0jpmIuPIO98jwFsLhw/psZU/s xGPd+P40m9NRZKJoHUsftYXUwpW0yo1CsEG6hUUEkJT3b3pAfMDMy34+VrOSpaPdx4xK vJdG9DYgwUEe6d4UTVQMpBWwsQt6Azkv6fvuOsdwjsj1zXfnhMYQYpT4asZYwZoLM2e7 wf3qvk0e0Lej9aJHpaBDfN8DgcGYWoqxkrcBQQMuqG3STxz1977sdcqNPYocqZorJJvC bKYiBhu59N+sYqvWkqdotPbyOjO9ytGJh4FCQ7TpWpZEBRl/ie41vYCB+XxrtPXzp00Z MPaw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780091893; x=1780696693; h=content-transfer-encoding:mime-version:references:in-reply-to :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=gIbnPgGPvk6ThFwTaoo52ddjSnXFkmgvkz8XLO+/gyTQ84gL/GuAeucScvJ9syPhY0 uThJxzTu8e0OSouVKism8QGlio7UJt2zLkAQtvJkBNc7+O3ikQ85ofj2HamBL8iGdHZz 4pcs9GHf/pOeTcWMffEEOBIIVrQu/YcXfncPJj7dFhwXnDQtpiHXWiMRd3X5kn/GY/RD Y85uh/AEbd9wz6MA9vG/AK+7CsVfLfO/g6/Fk9v1H7xxRctZED+J6tintRSBFoR8J1pV 07weidGWeKuDR2dJpp3ib8NaCXytczXxNSzAfQ/aPzEOOqTcurMeOrSKWpQR7eEsR5WV aClg== X-Gm-Message-State: AOJu0Yyy2pluWWoS15kcyQMDlYHRX/gSe6Ek5u9a6E/yRiFuOcZGlp+5 EZDhJcSfZg7S8eIs17NnF2bXwAcNv8CFSGJIvXa1klYf1nQn/8zQtFnvJY0Mv2gKsUoJqj/uYP2 4SE8eNPoxHSEzw9GRSCHG8IJHug8brlkbUoR7Q8qPQS1Lw65ZJOTBjiPFxrhKkCLaBg== X-Gm-Gg: Acq92OGHhaBx5ncmWMpUC2rWuA+0/rY+VyEJSAQMVJCuz8PoUDo0q/qC+2QdF8WgVwK Iw5/gtLJaN+1iBVwGn7TrOHKRMTKjvZr1r1riDbd9EmZvfuMXwhuRSDYXd0hasm9vYQhYubZdXv rF3LSSDFP7/N2NaDbWS2j4JZ2xFxZAE5KZgEpQ/zeJxUlb5T2/3PRWmZSeu6mG1nwJAJyqxkKLH exXkHNcdUMqjAM/YbYp9nx9Ee0LVyOGCrL8JvCkcf1LC7Mxc4IPcqmJQgeT7r58QHM1GA6hDOlP mK8PSUlmhLrb5aVn7Ll1FsP4dUmbLAzqYZVkpuP7tUZ6gM/6nFwRmk0Usgu/I5QfoABTvDfbCd9 HARq6LGk+GpsiNR7SZor4nnIz0P8QVfGCb0cFyePPoJHVaA4JqoxSMubLnd0s4AxhC/qQRqKEb4 ttVUy4 X-Received: by 2002:a05:7300:a44c:b0:304:67ef:41db with SMTP id 5a478bee46e88-304fa75e16fmr755946eec.28.1780091892779; Fri, 29 May 2026 14:58:12 -0700 (PDT) X-Received: by 2002:a05:7300:a44c:b0:304:67ef:41db with SMTP id 5a478bee46e88-304fa75e16fmr755923eec.28.1780091892191; Fri, 29 May 2026 14:58:12 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, matheus.bernardino@oss.qualcomm.com, pierrick.bouvier@oss.qualcomm.com, ltaylorsimpson@gmail.com, philmd@linaro.org, Brian Cain Subject: [PATCH v5 02/28] target/hexagon: Implement iassign{r,w} helpers Date: Fri, 29 May 2026 14:57:40 -0700 Message-Id: <20260529215806.608770-3-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260529215806.608770-1-brian.cain@oss.qualcomm.com> References: <20260529215806.608770-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: -1clpElxYc2-Qa8iYerFDcDt3MUpWxWn X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTI5MDIxOSBTYWx0ZWRfX4H5Mv25jbuM7 6zlRz33drOezDMnQWsKnWJOlom3IQdPrpUpwkzWBiqhaGdgk9AD9yzUo17LCwHpIy9tGkz7wXfJ 1HeRgPHrVGEr5eV1XZaRQOlmtN+7kxzekobhc/yki78Y2dx8XovLtjtARn39gmBpcNtV8H6/KMt ecxkbISO7w179T1SUCcIWwXtT3UoahonRPXr3lv5zoKqapQYeBgEq7IZfxBB6jcE+GkNkY0mOQl UBgHg4UAVabtQE5U/At2j5vV6a/gKDDjKvTcwWjoS44c9mjm4GgnIWclb5sqcmm642I2G44D66l a3WyBZ+D8gUD44RBC/17nd8ZqTQeVbTc66mBpEWiX60SkEWjRENIRxgEwuq8YdY3RJ1koyl2C6o DGZRZzAq6G4doJRtxA0gLP7g6Chp0idW+Ds5XAqB3OKOTeKv3cQXGbMQvOYoXo31ijDzCwSntEY nSWvh03AjAZyrUU+8YQ== X-Proofpoint-GUID: -1clpElxYc2-Qa8iYerFDcDt3MUpWxWn X-Authority-Analysis: v=2.4 cv=Z4zc2nRA c=1 sm=1 tr=0 ts=6a1a0bf5 cx=c_pps a=PfFC4Oe2JQzmKTvty2cRDw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA: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=VnV9S1Uu6eltRR5mmX4A:9 a=QEXdDO2ut3YA:10 a=6Ab_bkdmUrQuMsNx7PHu:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-05-29_06,2026-05-28_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 adultscore=0 suspectscore=0 priorityscore=1501 bulkscore=0 lowpriorityscore=0 phishscore=0 malwarescore=0 impostorscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605210000 definitions=main-2605290219 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1780091971767154100 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 May 30 17:44:14 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1780092133; cv=none; d=zohomail.com; s=zohoarc; b=HuFflpA8QRcMgp1R4PeGbUMFomapZz/c6Tdt7E6GZUvAyqouYdLGTq/ySnTB8QJbkYBjdquAPQDqDlYQS1Kr7FmxEKjZ5g6bm8dZfqdnzQ2kB1OsR9UYeo5qXg3VXffApUAPU/dcRmUoMZzps3q1gBdglkH4aJyHB1+xyeYWwf0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1780092133; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=s1PQwc3EWBskqrO8WaBE8ES2PeyNfuiHhDMrAGd0t2s=; b=n42jOJf9bPYY6xLwppLlnLI/8f+Ij14pHaq2SPYdDoSNb6X119tzlAbTPgv0TuX7mGXIXqfcZFAlbKmK6TxDidKgkVlStlVmTehgC8QQokk26v9PGM89jqe16+1UkhXDSmPwijZVfCdPEEQkY0AiLOJbLRBg6PUiaD4ATX7nmP4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1780092133847169.24874968075835; Fri, 29 May 2026 15:02:13 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wT5Df-0003ev-Bg; Fri, 29 May 2026 17:58: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 1wT5De-0003Um-3y for qemu-devel@nongnu.org; Fri, 29 May 2026 17:58:18 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wT5Dc-0000qZ-7U for qemu-devel@nongnu.org; Fri, 29 May 2026 17:58:17 -0400 Received: from pps.filterd (m0279865.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64TI2Pia1912450 for ; Fri, 29 May 2026 21:58: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 4efbu52gr1-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 29 May 2026 21:58:14 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-304e4636205so3327453eec.1 for ; Fri, 29 May 2026 14:58:14 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-304ed5a9d27sm2428313eec.25.2026.05.29.14.58.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 May 2026 14:58: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= s1PQwc3EWBskqrO8WaBE8ES2PeyNfuiHhDMrAGd0t2s=; b=grY02eOKvhrmzBse T8I24YJ96mO02VC/M2etwJhPQgruBObH5/lCFE833GaeMXaGi+BBUqTZJY1T0YOW 6CLZ4592mEtNYCfydwMvpMKPcU/DVV4neqQIpt7F7gOXgOQRC32JA7Zqui3it+EK iL0FORh54vrqK6zjXrCArNzaQnArgVnPkvQTjNECniSM72eqHtLNr78vgpfY92b2 DCGMFReS/zYIjSS95lOT+VeuDNW+zbdtirU284Q6GQ1/t1uBZ73OGxsscREWk6vl eOvX0+biXOk8k9FmzV45WeIhxmQP7dsOp3oz7vNpllsk2Ob8cgWfmvqOxPqyK2OX 9j6Y4A== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1780091894; x=1780696694; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=s1PQwc3EWBskqrO8WaBE8ES2PeyNfuiHhDMrAGd0t2s=; b=YKuGKSJROamTtVkr8MYc4838bGnV6EaQYCKaZlKBEXLNdov6splDGPP+kb9C+yszEj GQxhLpGWSqSMVsvC+dTBA6CFZT6NhC8h23ZtlLK2qreWAsuerXuMcVU566Vm8b/ti8Lv 2YLtU3eOUt0HqS0/45+Rm+oaX6kkB2WgBiDrXuc3zR5ttTvnFFTNxNeDY2VJSN1O2zxS 6A076+MDTbJWWb2ka4cRtdzBE/8lIZfUB6p4ZPf6OYvNVYD6I0anoJknEWTwDTktkYcZ LMsd1LYOtbo6ABQRpLarX2i+QcpAjgTr3QppKOBjx1QzWBRhICNhXXdmbI5UCGOcLF8l u9Uw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780091894; x=1780696694; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=s1PQwc3EWBskqrO8WaBE8ES2PeyNfuiHhDMrAGd0t2s=; b=pkiHMHUwuKHjpbU93UplI3z15vZbWjMrw+GrsLjbuwl9HKTTkQkx/jqDm2P1al9JX/ 4ge1STIOoFCqEkx7zuzYF/C3WBuWNMQg4Knw5J5jd7pJAUakMKULQ5NhTu0AnESJzAGA KJsT2RoK0Lxn0I+YXVxInivrp/sEaV0HofN4R8x9+6S9B+f0yi8ESXPrazKYI//n5uU9 wMnXouK4LsG8k6c4Zec/2L5sKM2/nmDfb5QnV16+9+dYG5T0Djd/pboroOSnALW5+psL 7GneJ+R8RK5DXNygLumOoVUgv99HbgxMt2AP3xEFgipWYu18etXtWWJRK35ZbnlUfWVd jycw== X-Gm-Message-State: AOJu0YwAc7ViqPUxymUBNvYKXHvcn9L9eVz8CCAFKhFelHjSu9tX1zpo UCBuQ8jdfy0LIg2az54R1++NTlaoMrpkqXuzQwFygnGCcPwfpA3xOXfIJFkvYOOn679JaYVJt5N Q4hJCMj0gp6Ru1Q0r75M8skk09SmgjTJK/u7WL4XmoLKmGoOt6Vkq1N2W7v1cKR7XEQ== X-Gm-Gg: Acq92OFq3cabckF98BrGPSPgbsrckcmrITijLt+yVBcDrlc6qouKMARrkc6sob1CZaw qQTqDnonF2jZC5qP6z5jwXeQcd6a+8FwTGvPvrZ88MzyQUA4k5Zn7QF5aQIreSb8iubYWTIDsuw ZmIQUlPl0CuENikKurTOjUaDzkXz6cziAfCpJYro8Q081uVBwNr4S4bu7ASWKUqmLcxk6BeeosK xKLgM7pNidAjHcTn1TWgsLjL4n7gUX6rMW9gLfcZc54obDFy0D7beSjoH9Jwp6fDkDi8UAgYG3D 5hs3yHXB/ErI1pDTTh6rFlK8BjeKMq5pCRhs6gnuSuuBBCGpJy3fCHg5I6POyzm5yJbtz7wEu1m 8xxqgypf9fjxdG64WepwpToC4GHoseOrHNQyA5ccD6XjUhybx2zt5soPrMd5Bhn26kd85NGohG3 tthLJO X-Received: by 2002:a05:7301:fa06:b0:304:6448:dfea with SMTP id 5a478bee46e88-304fa774efbmr848034eec.33.1780091894066; Fri, 29 May 2026 14:58:14 -0700 (PDT) X-Received: by 2002:a05:7301:fa06:b0:304:6448:dfea with SMTP id 5a478bee46e88-304fa774efbmr848015eec.33.1780091893515; Fri, 29 May 2026 14:58:13 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, matheus.bernardino@oss.qualcomm.com, pierrick.bouvier@oss.qualcomm.com, ltaylorsimpson@gmail.com, philmd@linaro.org, Brian Cain Subject: [PATCH v5 03/28] target/hexagon: Implement start/stop helpers, soft reset Date: Fri, 29 May 2026 14:57:41 -0700 Message-Id: <20260529215806.608770-4-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260529215806.608770-1-brian.cain@oss.qualcomm.com> References: <20260529215806.608770-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=SMRykuvH c=1 sm=1 tr=0 ts=6a1a0bf6 cx=c_pps a=Uww141gWH0fZj/3QKPojxA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=Um2Pa8k9VHT-vaBCBUpS:22 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=mCWuZxMSpaUKZHDxuVkA:9 a=gIRNa_MW_fgC-PB2:21 a=QEXdDO2ut3YA:10 a=PxkB5W3o20Ba91AHUih5:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-GUID: LG4g_6fYt_WkP0jInHzMH-M6kTIUuwCE X-Proofpoint-ORIG-GUID: LG4g_6fYt_WkP0jInHzMH-M6kTIUuwCE X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTI5MDIxOSBTYWx0ZWRfX29H/C92itasq nJl67Kaf0QYXETpnz6pX8OXwmYgT0q5gZf23vAiVSjrxqjpXIRrsohlmE7t66a+moNZYttQ7MjG P9kVYsJBuz1D/sj/Q0WtYlzVo3t3tpISeuyhQ23L+PnVNRMGXzo+R3NgkFr2w1NGh8Dxk0oIECJ WxhokOAvD4YEg+WCFXM8Zp4VLFYFVdB2MWRyQ7BaG3XQFFbnPctl0S+0vOb+r78CJgoUxXaMedA nx2I+x364mAN1SCu4GjZJWjNQTSueZZ5t5lQFMwk3Z/H4uC5H2ZACxk8GpsfTkzDOEq/N4abrqU YoLQnYZAdceZlz75mYxFWC4zs0z9RMdU5/hN0AI0EMIfSYQqyIgLvQB6X/zhyRQlx03o8BeIzDL whFqppzsdi3WuOyVRZ2O8FW7gq+/znek+gZ+8w3kixILJg2ktYXGfKN5gMcgz7XmYoiChZBIX1O ScPqxBNBR6qSkLdJfDA== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-05-29_06,2026-05-28_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 lowpriorityscore=0 malwarescore=0 adultscore=0 clxscore=1015 phishscore=0 impostorscore=0 priorityscore=1501 suspectscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605210000 definitions=main-2605290219 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1780092135392158500 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 9f49329600a..299cbd92ddc 100644 --- a/target/hexagon/cpu.h +++ b/target/hexagon/cpu.h @@ -215,6 +215,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 f5a53d739b8..4ae05769438 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -33,6 +33,7 @@ #ifndef CONFIG_USER_ONLY #include "sys_macros.h" #include "accel/tcg/cpu-ldst.h" +#include "qemu/main-loop.h" #endif =20 static ObjectClass *hexagon_cpu_class_by_name(const char *cpu_model) @@ -310,6 +311,28 @@ static void hexagon_restore_state_to_opc(CPUState *cs, } =20 =20 +#ifndef CONFIG_USER_ONLY +void hexagon_cpu_soft_reset(CPUHexagonState *env) +{ + HexagonCPU *cpu; + + BQL_LOCK_GUARD(); + env->t_sreg[HEX_SREG_SSR] =3D 0; + hexagon_ssr_set_cause(env, HEX_CAUSE_RESET); + + cpu =3D env_archcpu(env); + if (cpu->globalregs) { + uint32_t evb =3D + hexagon_globalreg_read(cpu->globalregs, HEX_SREG_EVB, + env->threadId); + env->gpr[HEX_REG_PC] =3D evb; + } else { + env->gpr[HEX_REG_PC] =3D cpu->boot_addr; + } +} +#endif + + static void hexagon_cpu_reset_hold(Object *obj, ResetType type) { CPUState *cs =3D CPU(obj); @@ -339,9 +362,10 @@ static void hexagon_cpu_reset_hold(Object *obj, ResetT= ype type) =20 env->t_sreg[HEX_SREG_HTID] =3D cpu->htid; env->threadId =3D cpu->htid; - env->gpr[HEX_REG_PC] =3D cpu->boot_addr; -#endif + hexagon_cpu_soft_reset(env); env->cause_code =3D HEX_EVENT_NONE; + env->gpr[HEX_REG_PC] =3D cpu->boot_addr; +#endif } =20 static void hexagon_cpu_disas_set_info(const CPUState *cs, diff --git a/target/hexagon/op_helper.c b/target/hexagon/op_helper.c index 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 May 30 17:44:14 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1780091997; cv=none; d=zohomail.com; s=zohoarc; b=Uj1h1YUz4niaYj5utu/zXghC9IQYALALURO/NhCvwUMSN0mlSHD4LisU2cLI4yipALmFvexmunP7aXoqb27JsLxl0vys5MYUDi2mx3/+CEsDQfryMGEC3YgessivAKmry9+hKLpjkHP2yndxpy0XY9H9RyZ83YjDWnf6iXTr0I0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1780091997; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=KFwlmWF5s1C9S+pCgzFHvNuf7sIeMe8tXq29b1LTU/vpjFWiH5/Nrlo2iQbtmcOmcg0WguIiOvKWURNC13H8OdR23e2+QqnOWpUXMx7vIhH5vy9MtV7zFJz0B64aDs0cEbzJnIrZF/n5klhdwVOFHRZMx15Yz7OEewu1qyzWggE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1780091997190890.4606796797428; Fri, 29 May 2026 14:59:57 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wT5Dh-0003sI-IR; Fri, 29 May 2026 17:58:21 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wT5Dg-0003k6-16 for qemu-devel@nongnu.org; Fri, 29 May 2026 17:58:20 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wT5De-0000qz-9M for qemu-devel@nongnu.org; Fri, 29 May 2026 17:58:19 -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 64TIf813118239 for ; Fri, 29 May 2026 21:58:17 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 4efg9vrqha-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 29 May 2026 21:58:17 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-304dd917645so2001343eec.1 for ; Fri, 29 May 2026 14:58:17 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-304ed5a9d27sm2428313eec.25.2026.05.29.14.58.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 May 2026 14:58: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= vprTvSEgzIgWASZmcb1NhYWButaf8Vz6pBv1wMZS9Rk=; b=H+B2xqPx67zm/Blt MWYPkY/fLAAQJM6PZv8+OKrGbQEA91ozvin7WnGs3Qs04DrwQ+iBoefArLbZT7q7 k+1GSJz3gIzoFtkFtTjZze0CzsK/Sx+guV87cKxDJDXTyo96RzaNpYJzQ8hjTO2+ O+go07s1jjOyjfIYFmLDej1W0ZICK6qnCgnmSFhub6JiQ8qVFaePguMaKYFM7qDC RjVxfRJZLFt9uo6m0PwM+oyAqxoEVGFdc7jNUgvLzDDZq1qW8ckd9IH/GEl+wuDI a8zUVHm54b/0Vdt/bAqPO1b1w9mFnzPpRQNGZMNQWXMKfmzPO16loDHIosg7UvRD lXLm3Q== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1780091896; x=1780696696; darn=nongnu.org; h=content-transfer-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=i6ZT2/4H9udUzSyUYGgg+CFceMt6War+yYupqyv/E9fl7TbBpuGnQHxHLKruTB2y6J FMDwV2qdvsdnn9d0Z6TX5oaCatxxNBzyH1OmaP1rJggANADB+EYF66pBs9w/ReGOkzC3 xtInrx+6tu+HQpszqp7ScXMSl4xlusUEFEVIsoDRR/w3rTOLrKwMQ8kQx7YUvS/aQhIC QnqrZKZOftweL6cqCe1ieHpel/Mk99KJu41K7ghL4yv1bCqXv3+hbVw1UD/9Yr5Bv5qt v025P9ElSf+xaWYEr+8TbBquOuH1N3hOD77VMWk0qIlYnEVMvFkGhFEgoa1jMhRxSIIV LSRA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780091896; x=1780696696; h=content-transfer-encoding:mime-version:references:in-reply-to :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=PKhd9qC9R/gpp5NBOxHa2FyYun8RDubi3/l+3MBOF60gurKGNMyQdwulmMk6Pn3Faq VpAA46VcG/VWlNheDEY1OARXbRHjRrihg4W+8S3IeTn4NPMUNt9cL9fVx6PrwvmINhaD QNuzxQQJGSVpjnXvUlkrSyvhZFSzCh8EUnplnCzWYj2Fd5sXPpTF2TFS2pigzhrf8uGq tuXVx2iUw2Ph6M2z7EGe0AuU/kNTjqnWp+x2t71mQeZ9xPRhDq08HwpwUnguMQJT/EoZ 9ty3ck4krKxR2hqbrtGOxxTfxZYufZbXDrwhz45WxH7WEXB7R+AFRkckBerxnjYCRJwB fIxA== X-Gm-Message-State: AOJu0YwXETI9kwzyQq+8rr9xCg03vioHYJ2tSe/euSzeck2IEWgTRksV ncTkD/HVr0TO6eq/0lZf2ufH+ug52qqVsthreTYIKdO2CTC6i+oP0PhKO7nRWAVntxeVGNmIYom WzgVLOOto41SPhF6gElvdkIdZqTg211JLWslBhTd5+HN1lydHQeQ61E6fJaqhmxediA== X-Gm-Gg: Acq92OFJAws4pI1eZ1Xm7Z7ewlizXRcGu1uxN3oHlb/TQqlXxKaOjvtdwDFdqlZclr5 1zm/DaE7R3CD1mgXYFvwOtrLpIgeaqSPpOGayiycBi/CucUkIjBoMk6FwYXuiEg5Brz6WTWPpJS vc+3pfz20rGaQJpJM93q6ZRb54TfECy7p8hKmtINmI1NzL9t2TjgzOsgV+/UqGj8Wd9mxWNzL8Y cL1JXpLGCloFdjpyNdo9rL2F2oiaIbtPFSccjuKpn2RujYBRPhkl0vg5HzQMBJoiUavkdj5jKhQ li12HKrD6btgAzlGrKSDIBA+bjRqLxXvIE37PKUOtPLE+LzcQGjFLPeaJPEori55AdDQogoRmH+ 7zHm70yYH7dOpezJiT+4Sj0j4Qu95TgA7z6k57bBIX8kTHuGtdZoYqTNtvpeg96Z3ILxgqPUcOX E+8Z8h X-Received: by 2002:a05:7300:e58b:b0:2ea:edc0:4fbe with SMTP id 5a478bee46e88-304fa5230d9mr932588eec.14.1780091896264; Fri, 29 May 2026 14:58:16 -0700 (PDT) X-Received: by 2002:a05:7300:e58b:b0:2ea:edc0:4fbe with SMTP id 5a478bee46e88-304fa5230d9mr932572eec.14.1780091895802; Fri, 29 May 2026 14:58:15 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, matheus.bernardino@oss.qualcomm.com, pierrick.bouvier@oss.qualcomm.com, ltaylorsimpson@gmail.com, philmd@linaro.org, Brian Cain Subject: [PATCH v5 04/28] target/hexagon: Implement {g,s}etimask helpers Date: Fri, 29 May 2026 14:57:42 -0700 Message-Id: <20260529215806.608770-5-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260529215806.608770-1-brian.cain@oss.qualcomm.com> References: <20260529215806.608770-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: AW1haW4tMjYwNTI5MDIxOSBTYWx0ZWRfX9wUk8KcAj48r yr5uQGzoXSJ5Jz9ZjFBXNdMNPPfNcuaN8XWvRwPji6irmKORA4kiSpjSQ3rE5cboljdKLZ8obGP y2nN8pYi4OCyxiKrRDIOAuc9xlbJ1/F1es2Ujby6zmlPtQA51esp6QHL18e9JKRTa20XcQsEyH3 jsqfoWCKWDDvtj1HiR+MyPjIvFmTAod4IIGE9d4MzBXicrMZnzKnO/Ij8XOv69jUQ4XbyBllHEL BvPK9PPu0r4ZtXS6SOyMhHDYT/WyFDnVMPUjl8SHrKqOGkK56uwpkAjFSZIbNxUlG3M1BjJMNwq ML/FqB5Ji0xj0xxfC60PeXcNMmeoaBrOBvipiCDzNauMIGWf+qaJeH2zeWxfc73hv01VXtzLmk5 cKVyFqtUBY5u4J+12lUI62yOCOBj/fZPllLroOVf2v+RklvSlJxkvlvBVY6GB9kAlKrztdOcQmX rqW0V2Jxn0MT9p+Vgxw== X-Proofpoint-GUID: oifpgk5Zp9059McgQcqtPmozqngRSZ1u X-Proofpoint-ORIG-GUID: oifpgk5Zp9059McgQcqtPmozqngRSZ1u X-Authority-Analysis: v=2.4 cv=MJpQXsZl c=1 sm=1 tr=0 ts=6a1a0bf9 cx=c_pps a=Uww141gWH0fZj/3QKPojxA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA: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=he7afFXPmx5H4pWyvLYA:9 a=QEXdDO2ut3YA:10 a=PxkB5W3o20Ba91AHUih5:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-05-29_06,2026-05-28_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 suspectscore=0 clxscore=1015 lowpriorityscore=0 impostorscore=0 malwarescore=0 adultscore=0 priorityscore=1501 phishscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605210000 definitions=main-2605290219 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1780091998235158500 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 May 30 17:44:14 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1780091929; cv=none; d=zohomail.com; s=zohoarc; b=KfkQ9CFel/qFj8U4IGh7N/C7Exc0oHNKNORYhVsk2EdPiTJ4zcHmKGlcASqVktjn4sNODcUcYByQAGpwtzMTRgsGslZjGdYBjCRaLIFPKkCKGH1r1G97O39QD79Gbrs6sk+eq+e8pFAFfg0dQa0t54i5rFtAMJEMGdtt953JuRg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1780091929; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=dFpJLxF599R2lJ90oVxGgJLLfXFdboKXiWyqbkD2Y7E=; b=IenKM8p5dVyns9XiKGmktMWddCeF1UNUhVveizwo5ATpCmU+w2CHikGE/8LkQlcdUo2eyKRXa1FWo11UDWaYzT+fE0y+y8YBnxtu0UguttaHvE5zLTMEQy0//pkygsBvKyuM4iQTcdewNljm8kXLbHboCMbP6JPqHFh7SdrSRXE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1780091929962603.9512652959538; Fri, 29 May 2026 14:58:49 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wT5Di-0003zf-Fp; Fri, 29 May 2026 17:58:22 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wT5Dg-0003q1-V9 for qemu-devel@nongnu.org; Fri, 29 May 2026 17:58:20 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wT5Df-0000rN-A6 for qemu-devel@nongnu.org; Fri, 29 May 2026 17:58:20 -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 64TIesGO117825 for ; Fri, 29 May 2026 21:58:18 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 4efg9vrqhb-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 29 May 2026 21:58:18 +0000 (GMT) Received: by mail-dy1-f200.google.com with SMTP id 5a478bee46e88-304b8d0ee63so5136601eec.0 for ; Fri, 29 May 2026 14:58:18 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-304ed5a9d27sm2428313eec.25.2026.05.29.14.58.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 May 2026 14:58:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= dFpJLxF599R2lJ90oVxGgJLLfXFdboKXiWyqbkD2Y7E=; b=JdaIPr6e5us7Q8PQ 6g2gIHn+l4xgYNSVhtj5nRw279HNC7SrqRV42V5jlAmLw28kezgEYMg+ZimejJ/G f4uzJy21xS7y4e45GpMv3BrXSN34RvXUHdBybtAG7hUgLWx3u4l188i6M8YnlpO0 oVAGY5zFA60vBqFWT2vPPcCIyYeT5Zpua0HUvUSqL6m6KOJ2CCGnjKOrY40SU9dY p4SULpGjS782MLrHXPE/RCNOObv+ay1BLvRvwQcLIhvrFZW1K2uSO+KIc7pb10X/ GeWOxsBrHz387LQBlzDN3+MYuLllkDexbDAn05H/Z//ni3Nim+ZoL9tg7YCa40nb GoV+gw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1780091897; x=1780696697; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=dFpJLxF599R2lJ90oVxGgJLLfXFdboKXiWyqbkD2Y7E=; b=CiZPzJplKQ/J2FVPLoEJP9Dg61XNTj0jU6IKnJnn+5sFBg+JD/IzzbXrlAy9w0sev+ tTY8SOlBP+yiC93t5ayH0OHjIDackfkz+3MEQ2v1W2+l9nnLaZakgLtc/iKOWFaRj4AS loSXnEEK5WHV6V0zU98YwDlOY62C9/wYzNixVzOMgvI+WiP1iCXdpw1NaGyLEfkJyF1+ mh0a+dgqZvpEqF1/MKfrActKW7Mqg6/kvVKMyu+4ni1cN7EQ/zR+raexAeYeAYzia4bn rktMX3hAikbDtYKx93Rh+bxrrDLcY+r+0mcx7NwV8S6fqwjLTLaONr4fH5PJpD8DuxVW 3mFQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780091897; x=1780696697; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=dFpJLxF599R2lJ90oVxGgJLLfXFdboKXiWyqbkD2Y7E=; b=EGIxXmFu1FymLxN5XB9QDvN9ZnWBAUlYu0Nxgc50mU7bqPrej1fU7wMVnQNPNcnWWy n7aeaurTx88M+YdxYUYrEWeFQ/lCQr0WbBkXT/MBlPd0lnvr/IpWHrJWQn/loY+x2vb4 BgtZL8aDvBD3d1dC4Nkpw57OWHaJ/g0KGs/mUMs/urRCkuMLcNwjIjj4AlQq5TB7E9ed 3OM9+IMgjPQc0Ts3quGIYZI6vkQjrLv6GXVUXrsQYI+5CTKGrDwZLBU7j/gcN4KcQYud k4V6gfPHwJsafuGD2IG9xMmZF3IOpuvi7XdHfPRlSj0wwzXLkG4Xc0Cfni39oaTEk9SM UP8g== X-Gm-Message-State: AOJu0YwtMFG9aA2K6z6wbv5zYZUj2occVoy8ZEnshxZnY7yWPrhdOC3v 2hUd/K3lU5FWrN8D7nS0UiZ/e93mQo1e5ab9S23tb9w6xRDJpPLQQBgDNcU96q2TxoAD+kcKzW4 YdonVyoL5LyIrexZyqqQ5tYu7nvcuSl+K9n5Wmraa28laeu/FrU1HyLDraUZW77CbGg== X-Gm-Gg: Acq92OHRNV/MowAjV68IvQmP17pPXdmyWOC4JI9YTSlKN3YeQUFHgAbSqYnWFhuaHRY skMO94NVP/3yNvnP24mKLF05+NTdQGDOQrBW7XRiD4wDrQMfFYbHXFpmnvAULU5nqTzz/g3o2YW AhTBH6gv0JwmFxOZhAh6g4NAfWmh0fUXgfMeuJDKGnYsGCiQk+cLyegbUhwdg7gAHygvKVjy7YS Cc67f+xDjElECyS05LrAOH61m+4EdjEGiXgUYjn3KMXGItsJzN0S+xbS8ovSbqKSzKqz603pMOz 6yfkWSVykFxkS7omLUsFTRH/ewy/uXRzRfW1HJTawOoLJzbkSsu2HcDuhy3H2uvH0OfW+eCbkpo OHoiC6t1M/tUOYOfxpXMcdnvcsyVlsmDjlXhMEqPKa0xIS4eB2088dZzXZXkYl4IoBoQHGXnDXQ SurA+v X-Received: by 2002:a05:7301:100b:b0:304:9b48:53d8 with SMTP id 5a478bee46e88-304fa4c7c48mr745576eec.10.1780091897498; Fri, 29 May 2026 14:58:17 -0700 (PDT) X-Received: by 2002:a05:7301:100b:b0:304:9b48:53d8 with SMTP id 5a478bee46e88-304fa4c7c48mr745555eec.10.1780091896962; Fri, 29 May 2026 14:58:16 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, matheus.bernardino@oss.qualcomm.com, pierrick.bouvier@oss.qualcomm.com, ltaylorsimpson@gmail.com, philmd@linaro.org, Brian Cain Subject: [PATCH v5 05/28] target/hexagon: Implement wait helper Date: Fri, 29 May 2026 14:57:43 -0700 Message-Id: <20260529215806.608770-6-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260529215806.608770-1-brian.cain@oss.qualcomm.com> References: <20260529215806.608770-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: AW1haW4tMjYwNTI5MDIxOSBTYWx0ZWRfX7s6SakvB+w+t pXmC8fo1Zg8/qQM3fMrwV52pIie1S5ca3URORtN7ELDCCy3KWBaQ1mwdBJvFnUIVhGCMA2YEtrt r0RFjObXP84IR/49hA8KBv5mHtfrNLQvUT5MPnbwlqbFYHblFENFPfCl2pg7XX+7AMtjxibv9V4 zrroeGDeXeUU6aH6H36QPPhUaJGp7qWlDNVOFRpnMSXUrVPJ44FvMcfh1DNf2jRfbx1GUWhFJ7V EeuwIamsMLcE32czHkb4lEqfHSTRfBPoHUcnWwpRpp3ZbLpAZo2Yyh/k0QREkuhhp7VHIU67Mhg 57RaEGRFLoeJqB2dwVbuMKEFrQBZ8YgROSyNXUS3gZqfOgLeIwGLujnjxb2vAPmzth272Du3Ttm HBmh+lxOhbPYgm6XcHE2DWZpklS/cAiAdiByvcZwpH8ICvwZVS42Sjprcaq6/b2sxoknIfaNJ3x 2qZ+JjMaeaxex4RITCA== X-Proofpoint-GUID: 5BCfhpprVNV7bePgFr3_Rwu3lUmN7Tia X-Proofpoint-ORIG-GUID: 5BCfhpprVNV7bePgFr3_Rwu3lUmN7Tia X-Authority-Analysis: v=2.4 cv=MJpQXsZl c=1 sm=1 tr=0 ts=6a1a0bfa cx=c_pps a=PfFC4Oe2JQzmKTvty2cRDw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA: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=UWtQ3YZIe0Xef7kIUYIA:9 a=QEXdDO2ut3YA:10 a=6Ab_bkdmUrQuMsNx7PHu:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-05-29_06,2026-05-28_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 suspectscore=0 clxscore=1015 lowpriorityscore=0 impostorscore=0 malwarescore=0 adultscore=0 priorityscore=1501 phishscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605210000 definitions=main-2605290219 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1780091931125154100 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/gen_tcg_sys.h | 2 +- target/hexagon/op_helper.c | 60 ++++++++++++++++++++++++++++++++++-- 2 files changed, 59 insertions(+), 3 deletions(-) diff --git a/target/hexagon/gen_tcg_sys.h b/target/hexagon/gen_tcg_sys.h index 000fc415c74..98cf6216780 100644 --- a/target/hexagon/gen_tcg_sys.h +++ b/target/hexagon/gen_tcg_sys.h @@ -80,7 +80,7 @@ #define fGEN_TCG_Y2_wait(SHORTCODE) \ do { \ RsV =3D RsV; \ - gen_helper_wait(tcg_env, tcg_constant_tl(ctx->pkt->pc)); \ + gen_helper_wait(tcg_env, tcg_constant_tl(ctx->pkt.pc)); \ } while (0) =20 #define fGEN_TCG_Y2_resume(SHORTCODE) \ diff --git a/target/hexagon/op_helper.c b/target/hexagon/op_helper.c index 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 May 30 17:44:14 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1780092078; cv=none; d=zohomail.com; s=zohoarc; b=M4xjm9paZLvjVVXMxJztpLA1FHc1t7oOTgCvPBWItI3+JaWmYT1cPP9bpGkMOX2C5mOfEzQTW3bHVpsPfqDSaB2QQ1QqccIGGzFuBt4VndpOEO3n2DFCTxpEeDq/s7LGG4tn2AAbwh1hGp9r3lH3Vm2M4gWt8azlAiFDOLuZBR4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1780092078; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=UA4pcBNDn9cstqG8fft5PpQHrCK5+LcXCmvzaoSAxMMONkMMRMh+fTGdZcveZC0vtvNAFrJWOgy0Lc342ZzL1Wh8uoEl5kpgrx5saVr0cvcsirSg9jpSCVnIl1sK9kb/4tWQQI8Cd+tlersibxmA26HMpSbHRIFC2G6nyu7u/bs= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1780092078837192.50306293794006; Fri, 29 May 2026 15:01:18 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wT5Dl-0004GT-I1; Fri, 29 May 2026 17:58:25 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wT5Di-00043J-Sx for qemu-devel@nongnu.org; Fri, 29 May 2026 17:58:22 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wT5Dh-0000rb-5X for qemu-devel@nongnu.org; Fri, 29 May 2026 17:58:22 -0400 Received: from pps.filterd (m0279865.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64TI2MPK1912315 for ; Fri, 29 May 2026 21:58:19 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 4efbu52grf-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 29 May 2026 21:58:19 +0000 (GMT) Received: by mail-dy1-f200.google.com with SMTP id 5a478bee46e88-304b8d0ee63so5136617eec.0 for ; Fri, 29 May 2026 14:58:19 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-304ed5a9d27sm2428313eec.25.2026.05.29.14.58.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 May 2026 14:58: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= UbuzJ7YCQZGqOoiI5HAt63RuanuV51wqRpzkdURFyKo=; b=Ml5I1qcwrNgwOQm5 fq9Noush7d9sn0qWhqUaIbu5MCSN4n+8WXzsD5XTkM/8tAuPO3njiuNlN2NXEmoW aOz1LZ43iits9T2l187rHVzAsx5uy6e4sIpHHttSb5LzfAkqtDUoy2UmpN7yOHKp 1VHCLj97mToXNwU4xhfGYdhA4Uxvo6Lye+3QxtLBSa7OPwDZuEGwd+KeIquME+u2 pBmMP4/Cigc/UVfSxP4eIcHhTVNxc/KbjzUfmno16jTitpKrfFUkgLwM2I/jhfUV YYk+cuQ+ehmILm5kvrMH/3eAqibB3wBngCPoboshJuiui5AywxZACMU3x9MMgjBm xhNdjg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1780091899; x=1780696699; darn=nongnu.org; h=content-transfer-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=GSqyiCVZF1gCS0vEt3tXSuz3/4XCZ0Sx2ofwrE7313byVHVEeofWDe6w6h0Ego7bz2 E5bfmFV1ka6WiSnAWFGeYy/WTDmafkySKuzJuOmtR4QR98V43NJ7fNegJPkBaRT0h66G RO6KWoipu+DtS/VQT7hctpfeyDtl0/fjiU4iOYVMXZ/KMCgftqfr7LRwuqlGFRCgOUgY NYt1xBTE1cnV4oAsANHhsLeavUVKIr9Qds/3BvH+hwHJpgqd2Dw2o3zpXBcF2fBC+GtZ zb1cwMZeP1h3dTs790DJPP5EBGyJYHiY9gKzVARzr0i+DP11xFW7PtytTFTppnE7WsRJ lKkg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780091899; x=1780696699; h=content-transfer-encoding:mime-version:references:in-reply-to :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=QG4A93IicmMcKPwdrZnTFzwPYeErDCL3aalwCGTmY59y69HGUZmICDsBrKGuCPhNjU 1HVV/+/XMVWhiqLR80gUModjWdSJSybG2FGwUg/DPMdV7QIhG7md33mMHm7VokJSHUW4 3fbaPwhgvKBRBzUHsNrFjn1yMiVcOy5q/wCeXax3ZfNCttH5+hLalYIAKSFYj2rn0Y+I MJJqq4OnFdnJRcx+n2ngkA+q0wFqtcfRrefxbtLTG9ah8XwBlUe9zsEI6EvYVvqyvMD4 Gwx9EguNuofcyIpqfrqxAIzFrMnGBh6z5+zJ0KK3X2JShh9BwLXu1sw9b+5jUkNG1b7r rudw== X-Gm-Message-State: AOJu0YyjTykex79QnnZnmHllXbg2G+zcMtNbva1rmVF3altEktkUi+wv SdgVXHJBF87+jjGLKt7SmfbaviJes56C0rqcWQk27h+wIN2UBaClrUPD38uWPhPdNy64AiVAr/5 haJ7uGJuzgC/uMmNsiFZwaRnnWT4dIz4ab4PI/V27Adx2vnRyTCpIspZ18lHVE+PPIw== X-Gm-Gg: Acq92OGKIWLpluxAvanJtdRnkV4gdBuMJnKXP+xD4ITXiKVRLa4syKtxNjEsMj4K7OA 4hrrCl3GSiQfrklzRWxz/9li0bnbfMhlntbXabpVt2qKxUhZHHkEwO6zNhFIZmJoactYjIB8lHU sY7NdmLrzgRGZzX6SN+dowjLkzu4OA2jgjW5G8Vr09Vzu5pDnysTOMRLYtdElueo6n47Z22Uenp h52IKhDB1nw2TM9W5DZ4j8ApoMaDN0fXW07y+tRail4WTivbWeH6Ojpr3CQs8Ve5AkTV3+wafKf zoGx7yZ4mU14583F/DfPbYnuiQXnzR+D/HGQl+iyQtVb3IwfNOk9lT1qBB7jQhWxgaAXggwGJ9w MXYSNnh7eD7sOYNgVU7L/Hd4uIj7MngH6QBjPy8xvGEfU1xD0kH1WxpQEJw5dWXSWO3wfFyzx10 ahKsDx X-Received: by 2002:a05:693c:2c0e:b0:2cb:4b8f:b2bd with SMTP id 5a478bee46e88-304fa49b11fmr881173eec.6.1780091898968; Fri, 29 May 2026 14:58:18 -0700 (PDT) X-Received: by 2002:a05:693c:2c0e:b0:2cb:4b8f:b2bd with SMTP id 5a478bee46e88-304fa49b11fmr881155eec.6.1780091898447; Fri, 29 May 2026 14:58:18 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, matheus.bernardino@oss.qualcomm.com, pierrick.bouvier@oss.qualcomm.com, ltaylorsimpson@gmail.com, philmd@linaro.org, Brian Cain Subject: [PATCH v5 06/28] target/hexagon: Implement get_exe_mode() Date: Fri, 29 May 2026 14:57:44 -0700 Message-Id: <20260529215806.608770-7-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260529215806.608770-1-brian.cain@oss.qualcomm.com> References: <20260529215806.608770-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=SMRykuvH c=1 sm=1 tr=0 ts=6a1a0bfb cx=c_pps a=PfFC4Oe2JQzmKTvty2cRDw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=Um2Pa8k9VHT-vaBCBUpS:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=4_WtjC8beq4VSFaiBQMA:9 a=QEXdDO2ut3YA:10 a=6Ab_bkdmUrQuMsNx7PHu:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-GUID: 0maKGDQT-e-q5ATrPXl4zCcU7yitpyBu X-Proofpoint-ORIG-GUID: 0maKGDQT-e-q5ATrPXl4zCcU7yitpyBu X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTI5MDIxOSBTYWx0ZWRfX/kZmlkOEFpef 1PA26wlj3fnyKoxieDQiIsbCObGN6OeVQMzEY2xRSAHzjpLTYjFjxU7QGhPc3eSCT3sW451G3Qh EhjfP4aoUpAQJFp+Kw1IEtRpp7l+dTMDuIvgFXxW4ipwW7QYLJkWLHLss4Ous93xx8V22XtWDKt 2uI4yszManPVxV0dhqwe69eb8WnLGevNtZBzOfm6ZgsD5cjJfrJaUsvd6KYTLLrVtYghoTU4/jq aLY1Ayaxrd+iLTe+a2nM/bCv+2YmvIT+Gh5KbdTVgxrifZyZjhpOgUje63/gmq75lPI7UD1ZHym yiL6ks1wnrbQs3vGcljjKr6VQt4V2C3ZtZj1dmSYSH0frWW5WE9lE5h1uv5ZB/Lm8wdycfJ3Acn bNR08RfQOV9jhiJ4Vx18WnfF8Ba0fcLzbxofvsujPQzlJVltYQZbxxnAgb6TwokAjTzMRrbmYuX URmtKzmqt5OT8l+86GA== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-05-29_06,2026-05-28_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 lowpriorityscore=0 malwarescore=0 adultscore=0 clxscore=1015 phishscore=0 impostorscore=0 priorityscore=1501 suspectscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605210000 definitions=main-2605290219 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, TVD_SPACE_RATIO=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1780092080927158500 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 May 30 17:44:14 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1780092016; cv=none; d=zohomail.com; s=zohoarc; b=O+tI0V1wdkm9pig6H3ypjygM+6StgWExoTi6bxdwxxAmpOctBYrDAILG6aD9CZfYbPvOxnqZEQtNiA0Vvs9ehyyjifE4y/naWOXciwazVaEkEQE/hEcWt1JbHl2O4Y8g0of2tQts26izQD3ZLOiA25IMAKAMLIC0bThvZGtO08E= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1780092016; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=CwT1Tp/yQpPv3VtpfeDNWw5KaxCNPIr+4gMYGP8uTyzv5VU0uIj9SsS3R1DWmlvelKUmjPtK/jntpLAdxJ6F/GWQ1xS2LmaKtfQPIZToiM6SnvM1xWIkzJsw5jG0vedt4M4vtaDHG5kmmwqqoociMgUeZOoJEWkBduIXqTOaOJs= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1780092016090997.3506622343687; Fri, 29 May 2026 15:00:16 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wT5Dl-0004HZ-Mn; Fri, 29 May 2026 17:58:25 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wT5Dj-000488-LG for qemu-devel@nongnu.org; Fri, 29 May 2026 17:58: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 1wT5Di-0000rp-0B for qemu-devel@nongnu.org; Fri, 29 May 2026 17:58: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 64TIdlN4203284 for ; Fri, 29 May 2026 21:58:21 GMT Received: from mail-dy1-f199.google.com (mail-dy1-f199.google.com [74.125.82.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4efg9c8r5j-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 29 May 2026 21:58:21 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-304dd917645so2001398eec.1 for ; Fri, 29 May 2026 14:58:20 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-304ed5a9d27sm2428313eec.25.2026.05.29.14.58.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 May 2026 14:58: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= 4hsqE0JDPfvXJ30nhCZ/CCXuACFuBC+IpE9moxChOvw=; b=FCSPKMm0KpkYZ8+O 2mXtthKybjgGpnDfrwD/nJ0eM6fQkxGa8spoyDl/46s67RLxdV16FNhkZOqSEhlm /a8s3rwRLRluWBPiENfjPN3zFWzPEMkHuENSOU6f7eE3B1xIEnIB6mb9s1b4b8tc YfkxBJLFfIndRc9lu2gikwzSHrCUn8cIxNIaxpgeK0UEDR8QU8UJCT4PZwp6Q0wY FFCL7GPworDGSghJvLa3DUJQBxohxbDUEXYaVOeC6MNecytUBRJBp/Kj2pk/t1Gu 377lS+gN3eTX/PiO8MseghZZJvdQ+5zU0C/PhuE9zbguVOZ5lc/CfWs57XQVSvkB Bb0Adg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1780091900; x=1780696700; darn=nongnu.org; h=content-transfer-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=TXrz7mJQmCqViL1yd0P3kPUmImeot5oNFVTVrftWR4kIjCNWK31J1NLYpuv7QcXPOG azOC4ByZIb2FjKToqF6nO/Z9oSR0RAyLE7jaFZmxIdImBggKFrnh7RL/fYVfMgF3B4vu onQO/TUbNebi4DS7ZtDQmjsraRsus/ocRoYf0UXlOh2ajAM27a7szAkNkejtaEkPBew2 lWfbkmdVX8g2XNJt+PMvhHMZojIrKL32QPPoq/WKxuTxtnzUS7ibLzxtwbor9vU4AVEI BIzv0z4cRZRJEj1tj0eGP1KvpC12oq1jU/2p1ETijsFlBhpk1yIgxCv5hjQiTZlO3B6U WmjQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780091900; x=1780696700; h=content-transfer-encoding:mime-version:references:in-reply-to :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=BHA5NjiVgCsRcYYSd61e+1lozATcpHELFmJoSAralUILmT0OON8XPxD3aHGzI8NEer kdvSc/r9UVVSTRMnqbCIQbLD3ghzb9rGSCuH36/iGAU5XP845Yk/6YRNF15VrazrEuyG rizZUi0l7DpwvdARvo7RL0xbANlfRdL5fQHmHVz39Qd3qfzRN+kGCPZjJUyLlBO3cELw q1fUQ2Imr+s7ty7gWQdmzNXiZBNO+w5kjWqW3/PWD4rK8Kay7rEMknEbnPrWbKnESnCA 5dpULLAC1IiX5ITViS72dX6z8vlU+JiBJ4vj8xyEMtgdSZHaVBp8E6zG2uZxB7DccfVu kpsw== X-Gm-Message-State: AOJu0YyvBH33JrfNVBs0flHsZGyitP0aPz1Ve36stfAu6OIgb2jrYdW3 e5N8nIUEPdh7z3mpAKxCoJnle9oHUpeLaZ+UgabIvQLN3fTroDhZ5uKCvvxlDGWcgA4NQYNIS0k 26nzLDoAZxvzfuxk/qXJTj7osxU32p71oSL6F4DhuMWe+A/xKLxc7PwAAmoBA+hnYAQ== X-Gm-Gg: Acq92OGyzg0WxvJmgrOnezl5/Mh8y0pz3BvLv7gmtRYbFfPVBX/2Q/Qt7KGPMu6lH/v d08zmZJIihZAaKlxaCBLYqQ+7qL8rBQQq7vSMnN7/NQlIndNfSuJ6vb41+glXgKpylFex6qcdLI SzPSQrQDjnd7H//jmQzEgeWqw2y187HGMKS/q8WXTPZx5FuYoj4OH3WNiXzwPzeu0TRPOdIfiox FVhtvnh/473tQ9OJXKWyF4JBr6l6ZHUSwlrLlZbcMAx9eWWuZja/JY+oKhC9MGb8axQVSkdefc9 QAsjL5w8IUN47yW6WkxcPLHoBvC7Vo4VW0R0+URR38X8/D2+x/flTls+WzarztKblGtc4G2V7NU PYayXeZamWQE+VRWiHBn7Akqv3F8+hgZogTvd/JCuY5rNuWFjXZIJizgr212oKHEUZB9AL8nETg uPm2/N X-Received: by 2002:a05:7300:8605:b0:304:de43:130 with SMTP id 5a478bee46e88-304fa4cfa07mr873058eec.2.1780091900167; Fri, 29 May 2026 14:58:20 -0700 (PDT) X-Received: by 2002:a05:7300:8605:b0:304:de43:130 with SMTP id 5a478bee46e88-304fa4cfa07mr873037eec.2.1780091899618; Fri, 29 May 2026 14:58:19 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, matheus.bernardino@oss.qualcomm.com, pierrick.bouvier@oss.qualcomm.com, ltaylorsimpson@gmail.com, philmd@linaro.org, Brian Cain , Laurent Vivier , Helge Deller Subject: [PATCH v5 07/28] target/hexagon: Implement hex_tlb_entry_get_perm() Date: Fri, 29 May 2026 14:57:45 -0700 Message-Id: <20260529215806.608770-8-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260529215806.608770-1-brian.cain@oss.qualcomm.com> References: <20260529215806.608770-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: AW1haW4tMjYwNTI5MDIxOSBTYWx0ZWRfXwuyxVjJ5IfJE yp7L4bPFi0eb/wrmsw31psfM146b/osn6yCDcDfRrb/+Bakz30EV1Fp9GGhMhhedlPPx5CzYaxC AlWJS/ySNRLSZH4HrQOCNNWgQFFHvKlvTKUEw3w1DdZYsCjN+nwHunDVDNBFjixB6L/oqFfpO17 dBrg0ZiWYAMql6J9wkm7YuCw3cf/8THDbKUmXSu9LG7EBQ1d9gWPbtibQHGgur5roFX9UDBi78s I/JNc+oXN32IK7tsbUGqxr/RzljDSP5PnPOPR1tyZthSsaXQ7qkjpF9sOkIBJpDynUQOOFw/GZo PY5dzyeYidrnahZ+crcDm57OWWqPN4o74acxcI5g7weOzYtA6KDgYE4ko3KmUEB4aqh9sOyCpTq UAP7C+xTZU2HdOAYngqa0ioiBUiX8xLgCnRNcYaSMXZKwIf4x4e4fR0ROMobjPTs5MZ/4XsBAO0 M4ELaZ3tgLl+BXmcVUA== X-Proofpoint-ORIG-GUID: dLtD7hUSG5WTqaut2fGcEZqvT3bo2n4a X-Proofpoint-GUID: dLtD7hUSG5WTqaut2fGcEZqvT3bo2n4a X-Authority-Analysis: v=2.4 cv=SKxykuvH c=1 sm=1 tr=0 ts=6a1a0bfd cx=c_pps a=cFYjgdjTJScbgFmBucgdfQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA: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=scEy_gLbYbu1JhEsrz4S:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-05-29_06,2026-05-28_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 bulkscore=0 spamscore=0 adultscore=0 suspectscore=0 phishscore=0 malwarescore=0 clxscore=1015 priorityscore=1501 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605210000 definitions=main-2605290219 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, TVD_SPACE_RATIO=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1780092016355158500 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 May 30 17:44:14 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1780092094; cv=none; d=zohomail.com; s=zohoarc; b=OcY0+iV6eiuT7zTaQvuB4ztMUVYeSAzgoQ/d+ulIOHX08ylkvze2CWQfAmajJRa5QOBjyUelsE9lBat4EeTt2V2ZrkSNnbq51UsPFoYPZkao/XhUbvoUkxhJFDPI4E03dOT46W1vfhx5XZ14/f95cDOCNSlMu1VCCIfSAUOEwRA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1780092094; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=ighBcom7OtMX/Fwzs4arfRoJFxbj+fGStL//N33WUfs=; b=Q1WJJqL0e220CJOQJi3oLuWXB2RvKO5dk4hlxcS6MCAXti0m/qgBbpFogr0xtOobGeYRSiO6JKm1t5gFjNwcxPRW3ZC7Up3pjbBCSIi8i6dT//oI81WV+rwemNFZ23xY8JF3U3RP8tvH3qfQ0/SPRM1P5e5cC41HW427MOyedkY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1780092094683390.8955680206327; Fri, 29 May 2026 15:01:34 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wT5Dn-0004Nd-89; Fri, 29 May 2026 17:58:27 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wT5Dl-0004Ht-VI for qemu-devel@nongnu.org; Fri, 29 May 2026 17:58:25 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wT5Dj-0000sD-Of for qemu-devel@nongnu.org; Fri, 29 May 2026 17:58:25 -0400 Received: from pps.filterd (m0279873.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64TIe3Zu203651 for ; Fri, 29 May 2026 21:58:22 GMT Received: from mail-dy1-f197.google.com (mail-dy1-f197.google.com [74.125.82.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4efg9c8r5k-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 29 May 2026 21:58:22 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-3041ab826ddso15131969eec.0 for ; Fri, 29 May 2026 14:58:22 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-304ed5a9d27sm2428313eec.25.2026.05.29.14.58.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 May 2026 14:58: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= ighBcom7OtMX/Fwzs4arfRoJFxbj+fGStL//N33WUfs=; b=L7VOZHPvH3K/vL6Q vDYiH0XzSvZ7CYnkYmNJXsCgafNslZKBd0HJRnilZhxXpHmy0qT29pfq+Biw+Rzh R8aQJPbUD9bhs3sAvwDaF/ydOudK4qT65/NHeoZ4yA1s7+dMOxAu6R6Qjz7/Bxag PyYbhlDuAECCZgevePkV8TN6crgp5A2AyjwbEYdhwFA7KJBz4CBYPSEncfbqWieT xGukbr0ELqc/y9RBxRxBNjDFLuhIqbihvOaQzKH4bSgvlctlNqW0TmFTpyW/xGxa bllyTeKjKUWoH+nOPJhilB4/Jr1XcJFKrP1DvZyP1FmKSa4+Mvv+tV1VoFp9Qk+N bF9KCQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1780091902; x=1780696702; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=ighBcom7OtMX/Fwzs4arfRoJFxbj+fGStL//N33WUfs=; b=In2gvD4inRgp7aY9qy3csxhMskx9SdcVm/st/Uy4G90ieGTno5wVuy30sqneo29eOb EMahgAd31vW0x5/9A2uGBPtMf+tbXr8WQXdGDlWunYH7NSkkOPYR5bFIMAUIQOBXrlmd ctviKSR4ZP7myxvll5AjCvLAp9lhfFwdcBmO+rYp0i52B3Dem1CskgHQYLJ955HyVyOV 0+M/Ao04eKQydS2m6LQS6G27/Yo/guZEyCOr9Ezci4OAGSmjNViSJ5I2Sly8nxc5/qAk Sx0ydhKbwfQbUHBLcAOcroFxeZHsD1Lr35f0b1wGvELRJCoJTnvRPo1b9+fNxvUUcaEi LUDw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780091902; x=1780696702; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=ighBcom7OtMX/Fwzs4arfRoJFxbj+fGStL//N33WUfs=; b=rzvRECw8E+Bl2zzLI4soKR2zNAVvFYP1VazqNnAupfFmMG0qOYMvfe6YGiqyituTan 6DHY2EIRT/D+hQaLTXwA1L5SOtcdM63y6BAwc2pbMWIJhPGve0GOhBe9xmXbAf+mPgz+ iHiBytbJV8xgWrGi/TXd2ax2mADeXZDDMbqlxB2ZIov0cZtsy0dFbsxBuEXt3Gtau5OV aPXI09WBonDmhMw1fXHTDLV7ch1hTzzvQJ+RJoigEriig+HEMdU6fkJqgXPBCRNUURhA 0b2Eaq2JynHOfAWaa52NrVrbobh7xKKMt15kEyTTZVefEvgy9C+zLGhUJPuIVTZ54uN1 OdSQ== X-Gm-Message-State: AOJu0Yx/khrJS9Ph4enVjXwngADonLre3m/FYi/rO0NETHX54HivgoCc 8qC8nkxm0gDj/EWOU0B2ZUGMMHimRmftnJhC0PNR8lN2ND1Z1OaLzAain6loDR+oMQLpoDATkoW qXl/fCflPGTmGMO/k9EIeNZTN8JUKM90rlTweWL+d9s4n6jLo2mm68Jxf94TynTTdNg== X-Gm-Gg: Acq92OES5I/MaQokGNrnT63uqwxXNRawJqdM5e+0K/stdkcFLRVpAjCqAAU14pOT3io RIdicno1NL0wwhhtoehOWslol8kYIcgEhaiBnTnuqGQEmcxj7KGuw1C/Wzo0dW/MWeH/90vLJ8+ 7IigWOdy8cVwZ4JdsKBm4MdrwYNAs1ywLGGfEdUXcoss1ajE6dbzzaUXXhf40eIx75Rz8HhLlRK l5T1zA/ops5StkXXM/lIUQKWrGMufmnMMYWR9FbB+SHOO3IoNj5e9cKmTlC4sGjIea63wnm33rr stpQov/XidzfaW2kwHFA/Xs0I43kymqGqUa5VNCfoDuVn44jJbcmLcOTSuDl3nVGr58ikSN9xo1 15fMC8Qo0fEAFgbe2kUJN1YSLld05Htof8L+YXr+DjfP+xokj6O590OZ218hqguhLvguUWWR5+Q TpVy4h X-Received: by 2002:a05:7300:72cc:b0:304:c520:4e14 with SMTP id 5a478bee46e88-304fa4fe9bfmr912641eec.11.1780091901607; Fri, 29 May 2026 14:58:21 -0700 (PDT) X-Received: by 2002:a05:7300:72cc:b0:304:c520:4e14 with SMTP id 5a478bee46e88-304fa4fe9bfmr912616eec.11.1780091901041; Fri, 29 May 2026 14:58:21 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, matheus.bernardino@oss.qualcomm.com, pierrick.bouvier@oss.qualcomm.com, ltaylorsimpson@gmail.com, philmd@linaro.org, Brian Cain , Mike Lambert Subject: [PATCH v5 08/28] target/hexagon: Implement software interrupt Date: Fri, 29 May 2026 14:57:46 -0700 Message-Id: <20260529215806.608770-9-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260529215806.608770-1-brian.cain@oss.qualcomm.com> References: <20260529215806.608770-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: AW1haW4tMjYwNTI5MDIxOSBTYWx0ZWRfX38fCxwOZhkgP MKCGz8Ot3/mLA/QhkMeBR/7iVspeEIyj4yKnJ3J2a7ottG7RWtoTv94CrjvtC0U1K9fip8nF1Dd CFT9jUCg4qxwSyJhYEeYZAhtDXUJQtAHZnUMqHY6PqLAWArkpI11DisFEaeoKo61t6afd6b0CaX GIQuaoJSZM1wtGFRtL6JjP8PXSm27WaCr4vE7LgSK0XZNtUki27b3Cb/5rkA58+qYMCa6ZPAuzV 1wdA8Jvpt8gO9j4YNGOwv4Y49jxavb4gmuLVoyeybX6idIU9ZJow6d2CUpn8R84RI/TK+K48Q0k TYjpBS7XvWtj65hFDghDgehCRmJOVAEANMtnRzhMbmyep+MvcfOcfQbnVjTlqQNdpdMm+khC6Ms YoBeRrSEAMr7eH5iZ5Cqdze+3aCb+v7KpTuDfzAdcclLuu61lDl5dbF8FnW9EFc+/XOHGl6wNXl y8Y8qAYJ4mYvDifl+ag== X-Proofpoint-ORIG-GUID: OTWDQdhbioO1ryI-y8PlJFQCDYJ01AgL X-Proofpoint-GUID: OTWDQdhbioO1ryI-y8PlJFQCDYJ01AgL X-Authority-Analysis: v=2.4 cv=SKxykuvH c=1 sm=1 tr=0 ts=6a1a0bfe cx=c_pps a=Uww141gWH0fZj/3QKPojxA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=rJkE3RaqiGZ5pbrm-msn:22 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=tNsvDMl9nzr4Tn7f5JwA:9 a=QEXdDO2ut3YA:10 a=PxkB5W3o20Ba91AHUih5:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-05-29_06,2026-05-28_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 bulkscore=0 spamscore=0 adultscore=0 suspectscore=0 phishscore=0 malwarescore=0 clxscore=1015 priorityscore=1501 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605210000 definitions=main-2605290219 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1780092097690154100 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 | 270 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 288 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 4ae05769438..a5586c1386f 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -34,6 +34,7 @@ #include "sys_macros.h" #include "accel/tcg/cpu-ldst.h" #include "qemu/main-loop.h" +#include "hex_interrupts.h" #endif =20 static ObjectClass *hexagon_cpu_class_by_name(const char *cpu_model) diff --git a/target/hexagon/hexswi.c b/target/hexagon/hexswi.c new file mode 100644 index 00000000000..dbb5dec827e --- /dev/null +++ b/target/hexagon/hexswi.c @@ -0,0 +1,270 @@ +/* + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "qemu/osdep.h" +#include "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%02" PRIx32 ") caught:= " + "Cause code (0x%" PRIx32 ") " + "TID =3D 0x%" PRIx32 ", PC =3D 0x%" PRIx32 + ", BADVA =3D 0x%" PRIx32 "\n", + (uint32_t)cs->exception_index, + env->cause_code, env->threadId, + env->gpr[HEX_REG_PC], + env->t_sreg[HEX_SREG_BADVA]); + + hexagon_ssr_set_cause(env, env->cause_code); + set_addresses(env, 0, cs->exception_index); + break; + + default: + cpu_abort(cs, + "1:Hexagon exception %" PRId32 "/0x%02" PRIx32 ": " + "Unknown cause code %" PRIu32 "/0x%" PRIx32 "\n", + (uint32_t)cs->exception_index, + (uint32_t)cs->exception_index, + env->cause_code, + env->cause_code); + break; + } + break; + + case HEX_EVENT_TLB_MISS_RW: + switch (env->cause_code) { + case HEX_CAUSE_TLBMISSRW_CAUSE_READ: + case HEX_CAUSE_TLBMISSRW_CAUSE_WRITE: + qemu_log_mask(CPU_LOG_MMU, + "TLB miss RW exception (0x%02" PRIx32 ") caught:= " + "Cause code (0x%" PRIx32 ") " + "TID =3D 0x%" PRIx32 ", PC =3D 0x%" PRIx32 + ", BADVA =3D 0x%" PRIx32 "\n", + (uint32_t)cs->exception_index, + env->cause_code, env->threadId, + env->gpr[HEX_REG_PC], + env->t_sreg[HEX_SREG_BADVA]); + + hexagon_ssr_set_cause(env, env->cause_code); + set_addresses(env, 0, cs->exception_index); + /* env->sreg[HEX_SREG_BADVA] is set when the exception is rais= ed */ + break; + + default: + cpu_abort(cs, + "2:Hexagon exception %" PRId32 "/0x%02" PRIx32 ": " + "Unknown cause code %" PRIu32 "/0x%" PRIx32 "\n", + (uint32_t)cs->exception_index, + (uint32_t)cs->exception_index, + env->cause_code, + env->cause_code); + break; + } + break; + + case HEX_EVENT_FPTRAP: + hexagon_ssr_set_cause(env, env->cause_code); + set_addresses(env, 0, cs->exception_index); + break; + + case HEX_EVENT_DEBUG: + hexagon_ssr_set_cause(env, env->cause_code); + set_addresses(env, 0, cs->exception_index); + qemu_log_mask(LOG_UNIMP, "single-step exception is not handled\n"); + break; + + case HEX_EVENT_PRECISE: + switch (env->cause_code) { + case HEX_CAUSE_FETCH_NO_XPAGE: + case HEX_CAUSE_FETCH_NO_UPAGE: + case HEX_CAUSE_PRIV_NO_READ: + case HEX_CAUSE_PRIV_NO_UREAD: + case HEX_CAUSE_PRIV_NO_WRITE: + case HEX_CAUSE_PRIV_NO_UWRITE: + case HEX_CAUSE_MISALIGNED_LOAD: + case HEX_CAUSE_MISALIGNED_STORE: + case HEX_CAUSE_PC_NOT_ALIGNED: + qemu_log_mask(CPU_LOG_MMU, + "MMU permission exception (0x%02" PRIx32 ") caug= ht: " + "Cause code (0x%" PRIx32 ") " + "TID =3D 0x%" PRIx32 ", PC =3D 0x%" PRIx32 + ", BADVA =3D 0x%" PRIx32 "\n", + (uint32_t)cs->exception_index, + env->cause_code, env->threadId, + env->gpr[HEX_REG_PC], + env->t_sreg[HEX_SREG_BADVA]); + + + hexagon_ssr_set_cause(env, env->cause_code); + set_addresses(env, 0, cs->exception_index); + /* env->sreg[HEX_SREG_BADVA] is set when the exception is rais= ed */ + break; + + case HEX_CAUSE_DOUBLE_EXCEPT: + case HEX_CAUSE_PRIV_USER_NO_SINSN: + case HEX_CAUSE_PRIV_USER_NO_GINSN: + case HEX_CAUSE_INVALID_OPCODE: + case HEX_CAUSE_NO_COPROC_ENABLE: + case HEX_CAUSE_NO_COPROC2_ENABLE: + case HEX_CAUSE_UNSUPPORTED_HVX_64B: + case HEX_CAUSE_REG_WRITE_CONFLICT: + case HEX_CAUSE_VWCTRL_WINDOW_MISS: + hexagon_ssr_set_cause(env, env->cause_code); + set_addresses(env, 0, cs->exception_index); + break; + + case HEX_CAUSE_COPROC_LDST: + hexagon_ssr_set_cause(env, env->cause_code); + set_addresses(env, 0, cs->exception_index); + break; + + case HEX_CAUSE_STACK_LIMIT: + hexagon_ssr_set_cause(env, env->cause_code); + set_addresses(env, 0, cs->exception_index); + break; + + default: + cpu_abort(cs, + "3:Hexagon exception %" PRId32 "/0x%02" PRIx32 ": " + "Unknown cause code %" PRIu32 "/0x%" PRIx32 "\n", + (uint32_t)cs->exception_index, + (uint32_t)cs->exception_index, + env->cause_code, + env->cause_code); + break; + } + break; + + case HEX_EVENT_IMPRECISE: + qemu_log_mask(LOG_UNIMP, + "Imprecise exception: this case is not yet handled"); + break; + + default: + qemu_log_mask(LOG_UNIMP, + "Hexagon Unsupported exception 0x%02x/0x%" PRIx32 "\n", + (unsigned)cs->exception_index, env->cause_code); + break; + } + + cs->exception_index =3D HEX_EVENT_NONE; +} + +void register_trap_exception(CPUHexagonState *env, int traptype, int imm, + uint32_t PC) +{ + CPUState *cs =3D env_cpu(env); + + cs->exception_index =3D (traptype =3D=3D 0) ? HEX_EVENT_TRAP0 : HEX_EV= ENT_TRAP1; + ASSERT_DIRECT_TO_GUEST_UNSET(env, cs->exception_index); + + env->cause_code =3D imm; + env->gpr[HEX_REG_PC] =3D PC; + cpu_loop_exit(cs); +} --=20 2.34.1 From nobody Sat May 30 17:44:14 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1780091997; cv=none; d=zohomail.com; s=zohoarc; b=kWjzQyX+LuPIssSSU9dJVRl68QzL832OUqrTei8OQoNAR100Da6WtB02i9rR6fMUDi41860AX3N+lVm5Z7u20IoquqVueAsvuZmg6+kHMPcPvy0oFLlUfdxHxOORXNTt4wJlyFeoKfkPb1kb1nM1OMPxK7TnY3vWIyuDNVgxJ/I= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1780091997; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=YGOouOw9V0S59GvPWu+Xsj8PL40oiyY13kTbAjRssDc=; b=jhoVPj1cZ44JpR2eYZVZSh8eH5GV3Uk/XT8TvYszMW3Sd99iicTJ6crO+XZ51AzPwfg8vVUROmkxd+/SZy8Geau7wKRkdAczxQ1b1f07ay3Y+cw9ZOQlfuDH/+717EtRgTG04NjHkwpg8QGyVXOAy56r2U0rEmdKlBbODQQ5yt4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1780091997850392.9765715409595; Fri, 29 May 2026 14:59:57 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wT5Dp-0004Xd-Em; Fri, 29 May 2026 17:58:29 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wT5Dn-0004PO-K4 for qemu-devel@nongnu.org; Fri, 29 May 2026 17:58:27 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wT5Dk-0000sO-Vx for qemu-devel@nongnu.org; Fri, 29 May 2026 17:58:27 -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 64TI2T7K1863167 for ; Fri, 29 May 2026 21:58:23 GMT Received: from mail-dy1-f199.google.com (mail-dy1-f199.google.com [74.125.82.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ef3te4pgh-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 29 May 2026 21:58:23 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-304f1820babso1365888eec.1 for ; Fri, 29 May 2026 14:58:23 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-304ed5a9d27sm2428313eec.25.2026.05.29.14.58.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 May 2026 14:58: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= YGOouOw9V0S59GvPWu+Xsj8PL40oiyY13kTbAjRssDc=; b=K6x8WSHjOq4/Bkjk 6RzO9fuTPcM1QPQgbabx7Z/0MNjY67fVTtqgbauaFecNsWVBxCt6csUABqAuuen0 7aDLG6p+O4K09fyfxeGFD4QonMfVoHR8TNtq4DrdMxsDjk3e1VocD417GtGDJvDP yVF6LvxBepAqC+46Tqtxj6F/sJd0Kqrvubcfkeled2grnWrNymaioBvcW8w6Loo/ MCzvVJIkiOsP734DkwfjPTIX3Fm0dB1WrKNRKayF+/f98qclANgwW4HcUVpZfrQF 0Ss3kJ8s860OlgqelmP+y6og7KLoRkNY6IZ2TqDPuqt9MWIxA1vOoRuVsWjjK9/3 9og6yw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1780091903; x=1780696703; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=YGOouOw9V0S59GvPWu+Xsj8PL40oiyY13kTbAjRssDc=; b=AR/tV9n9BS2CTB2YkyGKOzl2d6/CsiJpcjgY761y1ocgtgb1rx4KVRO2JKqni/t6e4 w50z5Xd2xZFcVrp5zU7OscsQQYkGC7nyPD0ahTnjcayvnA6iNs/TgPlzt23FQzA4ovpx pV4Pn7Wo97KZ6yQYq2hZs9jkpUWZNz3EGTqsGoqeCy3N/UauhHQB8AEn8fzyn23E5hmj L79L20EabGGMZ/9+wIBvMPtOUzOmDOsY1JP+cyYc7RjnekHLA9nLjSUIcS4rtSIptVn7 Cp8A0jbIiu1EfLCtHjvh3q8fzfxrTwpb/tUu/BsVFzuKG5o9wDjRzg6mT7b/cGeN+HpC EFVg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780091903; x=1780696703; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=YGOouOw9V0S59GvPWu+Xsj8PL40oiyY13kTbAjRssDc=; b=lrTPomCrerA5kMedv2rRnwifeQlm7LLHCOAnG8IqHQScH8MXBX2TbGvVqceFT5S5Dh nwGkydLubuAAHpvuX0FRl08i57PS0wpAxIU1EX6wBc1HzMZNKJkWBejeVWiP6xPnv8iD UFpfQkrq9Pl7dmWdpD8aySrTXo6GisBrg/ntE0cDB2zYzvhhFY7C9w7oS8SvUKdhrf+W 6IeSbcUnG9DOIxw4RrLyXS0R/PtoLx5CdFEQpZuZbnwhrM7woK4YkHLsZ6qRbiIDCBMr 7zFFe65UOzryisciCyAZDw618jeWeqoOf719wazvIzoIb1kIwaDrzKWI1TxO/H45NVez ZGSA== X-Gm-Message-State: AOJu0YxMPxjUjC/Fg88fAvA6+9P7ek28lNDRxq+EiZdf5riSeyOkPw4E DDMIHesd1zMLv08mmHgn+bESM6xY0BVAPCJpEMvADf8mHlzmyUGlC8lCms9jYbVpP3QokBJlGgi zWL7i7bzwznuxIzfjvyGljyVwcZBTTKEN9dIkll5jzkSZMg+F6oklOuB1uPYdLd2MUg== X-Gm-Gg: Acq92OHlokG8D641nwNxWe4kiTNZ681L9GNEw2H5b0wHq8vcZ6m7Bwj0KXaGoBzIru6 2P5ZcpNH8+di7GymNKvNyJc/8hhUHNIN2r3CcUXbucvoF4mvsrMpV/o3CnwEXyAzp0aesmUJhRQ /ooMuCT6J+41mLQc9i9zmn92UTwMFLmaFNhUXZrkrhGp6xnjZGmqfAXTIasCrO8Touzz/Ni1GYF udJPl3CTYzYvgmXbx5EzhdL35Ws24AMREyw6VzYASMHO4vnVSnz6E6VAZzRrxbKRvOwNVbEJBqJ hZ1NA5aGtF5/Q8twC1J52gYxlpjgvK0NQXIZaKBIPAQj61z2m+a9fPE2zOUqlSh4UdzygsVZ/A4 IAROaDxdpbfKnJAc83Nxk3aKWDo4T5uJ6yE3E2C6ygCERLPGC39Q2lO3iBhfVuRJBQlR3arYI0A iBD4VX X-Received: by 2002:a05:7300:6427:b0:304:5b0d:489b with SMTP id 5a478bee46e88-304fa68ba4bmr758287eec.27.1780091902790; Fri, 29 May 2026 14:58:22 -0700 (PDT) X-Received: by 2002:a05:7300:6427:b0:304:5b0d:489b with SMTP id 5a478bee46e88-304fa68ba4bmr758275eec.27.1780091902197; Fri, 29 May 2026 14:58:22 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, matheus.bernardino@oss.qualcomm.com, pierrick.bouvier@oss.qualcomm.com, ltaylorsimpson@gmail.com, philmd@linaro.org, Alessandro Di Federico , Anton Johansson Subject: [PATCH v5 09/28] target/hexagon: Implement stack overflow exception Date: Fri, 29 May 2026 14:57:47 -0700 Message-Id: <20260529215806.608770-10-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260529215806.608770-1-brian.cain@oss.qualcomm.com> References: <20260529215806.608770-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: uf4h4qwlrhWodfVBHmi_YUvUaEvNuFWj X-Proofpoint-GUID: uf4h4qwlrhWodfVBHmi_YUvUaEvNuFWj X-Authority-Analysis: v=2.4 cv=daSwG3Xe c=1 sm=1 tr=0 ts=6a1a0bff cx=c_pps a=cFYjgdjTJScbgFmBucgdfQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_K5XuSEh1TEqbUxoQ0s3:22 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=DTjK4E8Rq4C45BV92HcA:9 a=QEXdDO2ut3YA:10 a=scEy_gLbYbu1JhEsrz4S:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTI5MDIxOSBTYWx0ZWRfX7HoTDm75hu2P xBxVfHfT6q9sqrPUd/twWbC3GuH4QRtgK2NE9ySPUcHC8oEOUqJEJkaKs3+74CibAcis9gKuIOg Fbgj5quuF9//EL29grplp6c3uKIKBeGY9Xymx4yNiXNgPyB8WdEe00aF9MqJz0X3GefygQt3Q5W XStTFy4MLK3XEaHyBTwG9eCLru1oYnvX8PgJoflg32N9WAVTy+wW5WlneKIIppFkfDtKRELiedu STMZhu0WEDg95oXjpbt1KqQ198B0g4MQp6tYtunD7EPIMZpxJkbKmL5u/JwQYYPw6+OYGzFtQEJ JCJ0mTQ6TCjkylrtPsji9+TJH87Y9wJhTqMkkdUeax85P0pidgEG1Yjq9sfBzz2LfcpPofabnOo SRpwiwBDpIN83NLpyGf2rLcbmN9RW32NvxXxUN29KvSx6t2OZWo8Sk8QFU/ImgmrooO5XXwqT26 GTEv0DoCWvXZgL/MObw== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-05-29_06,2026-05-28_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 bulkscore=0 priorityscore=1501 impostorscore=0 suspectscore=0 clxscore=1015 spamscore=0 phishscore=0 lowpriorityscore=0 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605210000 definitions=main-2605290219 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1780091998385158500 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 041e68a150e..21ab8ae5bbf 100644 --- a/target/hexagon/macros.h +++ b/target/hexagon/macros.h @@ -538,9 +538,6 @@ static inline TCGv gen_read_ireg(TCGv result, TCGv val,= int shift) =20 #ifdef CONFIG_USER_ONLY #define fFRAMECHECK(ADDR, EA) do { } while (0) /* Not modelled in linux-us= er */ -#else -/* System mode not implemented yet */ -#define fFRAMECHECK(ADDR, EA) g_assert_not_reached(); #endif =20 #ifdef QEMU_GENERATE diff --git a/target/hexagon/sys_macros.h b/target/hexagon/sys_macros.h index 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 208cf141e7e..f79bdedd7b6 100644 --- a/target/hexagon/translate.h +++ b/target/hexagon/translate.h @@ -341,4 +341,6 @@ FIELD(PROBE_PKT_SCALAR_HVX_STORES, S0_IS_PRED, 3, 1) FIELD(PROBE_PKT_SCALAR_HVX_STORES, S1_IS_PRED, 4, 1) FIELD(PROBE_PKT_SCALAR_HVX_STORES, MMU_IDX, 5, 2) =20 +void gen_framecheck(DisasContext *ctx, TCGv_i32 addr, TCGv_i32 ea); + #endif diff --git a/target/hexagon/genptr.c b/target/hexagon/genptr.c index ee69feae4b0..1ebc7471409 100644 --- a/target/hexagon/genptr.c +++ b/target/hexagon/genptr.c @@ -893,26 +893,30 @@ static void gen_load_frame(DisasContext *ctx, TCGv_i6= 4 frame, TCGv EA) tcg_gen_qemu_ld_i64(frame, EA, ctx->mem_idx, MO_LE | MO_UQ); } =20 -#ifndef CONFIG_HEXAGON_IDEF_PARSER /* Stack overflow check */ -static void gen_framecheck(TCGv EA, int framesize) +void gen_framecheck(DisasContext *ctx, TCGv_i32 addr, TCGv_i32 ea) { - /* Not modelled in linux-user mode */ - /* Placeholder for system mode */ #ifndef CONFIG_USER_ONLY - g_assert_not_reached(); + TCGLabel *ok =3D gen_new_label(); + tcg_gen_brcond_i32(TCG_COND_GEU, addr, hex_gpr[HEX_REG_FRAMELIMIT], ok= ); + gen_helper_raise_stack_overflow(tcg_env, + tcg_constant_i32(ctx->insn->slot), ea); + gen_set_label(ok); #endif } =20 +#ifndef CONFIG_HEXAGON_IDEF_PARSER static void gen_allocframe(DisasContext *ctx, TCGv r29, int framesize) { TCGv r30 =3D get_result_gpr(ctx, HEX_REG_FP); + TCGv_i32 new_r29 =3D tcg_temp_new_i32(); TCGv_i64 frame; tcg_gen_addi_tl(r30, r29, -8); frame =3D gen_frame_scramble(); gen_store8(tcg_env, r30, frame, ctx->insn->slot); - gen_framecheck(r30, framesize); - tcg_gen_subi_tl(r29, r30, framesize); + tcg_gen_subi_tl(new_r29, r30, framesize); + gen_framecheck(ctx, new_r29, hex_gpr[HEX_REG_PC]); + tcg_gen_mov_tl(r29, new_r29); } =20 static void gen_deallocframe(DisasContext *ctx, TCGv_i64 r31_30, TCGv r30) diff --git a/target/hexagon/idef-parser/parser-helpers.c b/target/hexagon/i= def-parser/parser-helpers.c index 70bfa64432d..b942d9ea16b 100644 --- a/target/hexagon/idef-parser/parser-helpers.c +++ b/target/hexagon/idef-parser/parser-helpers.c @@ -1731,6 +1731,15 @@ void gen_load_cancel(Context *c, YYLTYPE *locp) OUT(c, locp, "}\n"); } =20 +void gen_framecheck(Context *c, YYLTYPE *locp, HexValue *addr, HexValue *e= a) +{ + HexValue addr_m =3D rvalue_materialize(c, locp, addr); + HexValue ea_m =3D rvalue_materialize(c, locp, ea); + addr_m =3D gen_rvalue_truncate(c, locp, &addr_m); + ea_m =3D gen_rvalue_truncate(c, locp, &ea_m); + OUT(c, locp, "gen_framecheck(ctx, ", &addr_m, ", ", &ea_m, ");\n"); +} + void gen_load(Context *c, YYLTYPE *locp, HexValue *width, HexSignedness signedness, HexValue *ea, HexValue *dst) { diff --git a/target/hexagon/op_helper.c b/target/hexagon/op_helper.c index 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 May 30 17:44:14 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1780092115; cv=none; d=zohomail.com; s=zohoarc; b=efOXNlVhZqB/ct2BNIt+QHHSOeLbfYLauY5XfqSo+JbFlrHSXxpECcH1nQmFbz4f4nUGBk1JpYHIBWwunkatTO8b10bYjcWfF7V9Fmp2ZkxfyBXbfp+UFHYdhWcnu6+LpOK6/msv2juO8x6wUFGNFYXLE8Td64aZ1riinOjYR4g= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1780092115; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=0yxF1ltXXIDanlw4lkA3r4pCeK1rhMon8NWDhqLpzTU=; b=gmbcSN+R2s3pHLYuylrZ2HpLkojNvzhvSW6xI/XHAb9ge7b7ISKige+h19PB/aG/ayGl3jEOYXeRcENNj0Txnf46oiTAVibVcOYP8pe1YVdP//ntAAQk3un7/h9W1XjD+NrVZ7T1cxuQkl6v96wqJOxwgEVua0L7OFWZZDG/+cA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 178009211532599.7944910259182; Fri, 29 May 2026 15:01:55 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wT5Dp-0004Zx-Te; Fri, 29 May 2026 17:58:29 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wT5Dn-0004Oo-G9 for qemu-devel@nongnu.org; Fri, 29 May 2026 17:58:27 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wT5Dl-0000tA-G1 for qemu-devel@nongnu.org; Fri, 29 May 2026 17:58:27 -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 64TI2Kqq2998017 for ; Fri, 29 May 2026 21:58:24 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 4ef4jj4euk-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 29 May 2026 21:58:24 +0000 (GMT) Received: by mail-dy1-f198.google.com with SMTP id 5a478bee46e88-2fe1cf409a1so4777440eec.1 for ; Fri, 29 May 2026 14:58:24 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-304ed5a9d27sm2428313eec.25.2026.05.29.14.58.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 May 2026 14:58: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= 0yxF1ltXXIDanlw4lkA3r4pCeK1rhMon8NWDhqLpzTU=; b=V7lNAlhrn0qRhsx6 Ko1nV7Q+TI41zMOIXjsgngTezh+QnbrYHf95qpC7N1t/kkU7tyhbEtgraH/d4eYr hwnK4hMN7z+7wr8zo3QI1wtMDswnx5R2l5OYqdJUWDXpT8ONDXm7e4yTSGuGi1R7 P83BP9pXsHt4tBQa/aKAer52YROFFM98sjdvEJqNH5gK0PoSFI1VVVoBNRBmJO6P c5lG8BFAwKwAxRzRK1/LPdhOT6F6zMIrjCExWixYsR1JHbsrhpxuUbmTeBH6ba/B pguR+oxoi6gQf0GB/XvKvR06rpFT3n1vh7CLUC4koHCCsJfYwai18ohqP3Xasm/k vZHFfg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1780091904; x=1780696704; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=0yxF1ltXXIDanlw4lkA3r4pCeK1rhMon8NWDhqLpzTU=; b=B5oJgbwmpenNzhEuIttCnLRZ7kCeSIxy+TDsSROUh3Nlm+pWqeGpWClLGxDblaeYGv 9VxfZlr/FfrfH2JWfRKIzwv8lwOgrNukFgOAU1ZvM1LY3alRQ4pjNlpIW633FQ7fojuB e/Ve6xC5ObS6fBkJnq8Dt2G0GMkrkiidG9ycmyiWYBGKu719dQhpwZxNaK0yqWkSkPrF vmPzFlz1S09FmW5ndpupIAqOwXGcKcP1TI79W/9Bk9LdlQnYUqm6HIBRniKEG4wj6t5g knYKtS+9bA/AFeOFprGEUgKrZ/V3NO5TWMEFcipXTwRqD7iIWct9VBeNJexxFl+8dpFR 3vLw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780091904; x=1780696704; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=0yxF1ltXXIDanlw4lkA3r4pCeK1rhMon8NWDhqLpzTU=; b=Hs5VNlPS8nMxfMzkd2TafRkzmInai9FFtsW798wtd3PsxEoA3Muq4D0sjBZ7OO2wo2 /uVs9NJdt6NcLZSCGTWBu3qL9wUtEWkH9gy/fGFTjec1WveboONfAUCEZW4ZS81OMraz 0HGBpQ7LdJC+BIkiEo+ibg3T2HmGcDeAPzZV0e2fcIDk9ycOkMle4XrnJedKOabz38y0 exxniQt3fXn4eJKr0jkh0H49xMV+8d3DLvqDfxJFZP8ORt0L9V8RV5QBBNLairxzbJsy wVzsaBgASLzokc3QnGONWWHhZVJ10FN5XXmRD+4kgsryUcqZINtx9SPRFn3VQzgRiMlo VBgw== X-Gm-Message-State: AOJu0YwQ2GIQYVCKIwFaKOtgc7mpZcaoux6CjvAt2nj9hez++E1ihz7t T+SWRmJtHTbIrSvvNctk0z74jzcFhr2e/le4QeekxsZE6d1zn8zG/qh9rnfk+T2DXUw60AMfO9B +JMKww/hRBAfI2aWtig2TCq4HjhFJ1tC2aDR4zJFq9zdjuyUYlrK4cAEtm1xVb9Tk3Q== X-Gm-Gg: Acq92OFSXpn+w/IA0bUl7P6YZRA3o6BMwTC9J11Ym82jG38hNuJoYnMlcLWLYNTA5DA +8jTxErSx7XwNzKTvd8ZMFlhamm70UNrVhP70UuHbNokPIjBgPy6+e2xHnUKpGcy+j8srNbz6v2 dpyko69tmYhVO9xPAhjfl6gLQR3UQs9xWYxoBi8C7KhlFv9z4tsJA8a0T5yXwXqcCogCz6gxTiF w5W+wM1jT5bdmzeslJA94AD3VNJQH+2p0fNTZpqv7rS+RItMrnwZcw6uq67rbDJbyk5+UTvYt4y T95KVIHZXqSQvhgZhruahM07Lkv7pB/nB6c4QshG2OQ3kWZ6z2dvvQy+D6DvJA0n8JmRy1dKQur 6hgVt0G0bqKxZB37K9Z42cveh5dd3v+r5/+949CChYOrWo9qO8yuoMtzCcRObDkMNb+K7yWmw5N wiGc46 X-Received: by 2002:a05:7300:72c5:b0:304:5a53:7dac with SMTP id 5a478bee46e88-304fa62a1c5mr737724eec.25.1780091903553; Fri, 29 May 2026 14:58:23 -0700 (PDT) X-Received: by 2002:a05:7300:72c5:b0:304:5a53:7dac with SMTP id 5a478bee46e88-304fa62a1c5mr737710eec.25.1780091903005; Fri, 29 May 2026 14:58:23 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, matheus.bernardino@oss.qualcomm.com, pierrick.bouvier@oss.qualcomm.com, ltaylorsimpson@gmail.com, philmd@linaro.org, Brian Cain Subject: [PATCH v5 10/28] target/hexagon: Implement exec_interrupt, set_irq Date: Fri, 29 May 2026 14:57:48 -0700 Message-Id: <20260529215806.608770-11-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260529215806.608770-1-brian.cain@oss.qualcomm.com> References: <20260529215806.608770-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: AW1haW4tMjYwNTI5MDIxOSBTYWx0ZWRfX/7lFDT/PNXom WA4XF0UpEJC0CaLcahFwmBmFogKofScZDE4Vx92zePRk0CVIURv6LsJvGfjclo5z6AbD8Bh0wGx LW2x1bhzsGKOln2yGCTY78h4oiOmcimdaPWzHzqlshOOYSYwqcKMuoncT8Buam9lSbHYvWgqz+9 kz+4/KNhM8lMJV4eEzBym6+ReNpGUg8ert1lz4y1gi6apDNcO3mZe17BqFI5qg68ij1ZNNAZD2n nQ2P2juzIlkJaqsHI1qAdLWnMTwjHmGgm+jQSXiTB6OeZR+1Kto3QOhc38oL+iVDGVCO6qFwJDt FYL8L2+HJ0XIecORrIpEj1A8XIRAlHlKCz1EO1xMJtB1ODuomOyUkHDYg51vMx9GcJiOfuP+6Ey FD21vlVNJ/MD58v63y2opbQ48EDDhSeO3tTkNVYkdq8T6LDFS3T2VbbJttoB65mOSn3L8B9Dvg6 TTgyqO8iTUJ4XnTCO2w== X-Proofpoint-ORIG-GUID: zjSXrxmVUdGCGAUys7QgQOg730_7ckZ9 X-Authority-Analysis: v=2.4 cv=Tt7WQjXh c=1 sm=1 tr=0 ts=6a1a0c00 cx=c_pps a=wEP8DlPgTf/vqF+yE6f9lg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_glEPmIy2e8OvE2BGh3C:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=GA9jbsKyPMLDJDmtv64A:9 a=QEXdDO2ut3YA:10 a=bBxd6f-gb0O0v-kibOvt:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-GUID: zjSXrxmVUdGCGAUys7QgQOg730_7ckZ9 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-05-29_06,2026-05-28_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 lowpriorityscore=0 clxscore=1015 impostorscore=0 bulkscore=0 adultscore=0 malwarescore=0 phishscore=0 spamscore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605210000 definitions=main-2605290219 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1780092118077154100 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 a5586c1386f..f086502036c 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -16,6 +16,7 @@ */ =20 #include "qemu/osdep.h" +#include "qemu/log.h" #include "qemu/qemu-print.h" #include "cpu.h" #include "internal.h" @@ -31,10 +32,12 @@ #include "hex_mmu.h" =20 #ifndef CONFIG_USER_ONLY +#include "macros.h" #include "sys_macros.h" #include "accel/tcg/cpu-ldst.h" #include "qemu/main-loop.h" #include "hex_interrupts.h" +#include "exec/cpu-interrupt.h" #endif =20 static ObjectClass *hexagon_cpu_class_by_name(const char *cpu_model) @@ -304,6 +307,36 @@ static void hexagon_cpu_synchronize_from_tb(CPUState *= cs, cpu_env(cs)->gpr[HEX_REG_PC] =3D tb->pc; } =20 +#ifndef CONFIG_USER_ONLY +bool hexagon_thread_is_enabled(CPUHexagonState *env) +{ + HexagonCPU *cpu =3D env_archcpu(env); + uint32_t modectl; + uint32_t thread_enabled_mask; + bool E_bit; + + if (!cpu->globalregs) { + return true; + } + modectl =3D + hexagon_globalreg_read(cpu->globalregs, HEX_SREG_MODECTL, + env->threadId); + thread_enabled_mask =3D GET_FIELD(MODECTL_E, modectl); + E_bit =3D thread_enabled_mask & (0x1 << env->threadId); + + return E_bit; +} + +static bool hexagon_cpu_has_work(CPUState *cs) +{ + CPUHexagonState *env =3D cpu_env(cs); + + return hexagon_thread_is_enabled(env) && + (cs->interrupt_request & (CPU_INTERRUPT_HARD | CPU_INTERRUPT_SWI + | CPU_INTERRUPT_K0_UNLOCK | CPU_INTERRUPT_TLB_UNLOCK)); +} +#endif + static void hexagon_restore_state_to_opc(CPUState *cs, const TranslationBlock *tb, const uint64_t *data) @@ -412,10 +445,58 @@ static int hexagon_cpu_mmu_index(CPUState *cs, bool i= fetch) return MMU_USER_IDX; } =20 +#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, @@ -426,6 +507,9 @@ static const TCGCPUOps hexagon_tcg_ops =3D { .synchronize_from_tb =3D hexagon_cpu_synchronize_from_tb, .restore_state_to_opc =3D hexagon_restore_state_to_opc, .mmu_index =3D hexagon_cpu_mmu_index, +#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 May 30 17:44:14 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1780092155; cv=none; d=zohomail.com; s=zohoarc; b=njOk5nmgebMSyHSrE8fj9YjEXOEFMN0o7ix/hwynYRD35Z3MR2XyQMnQW7P/EXpKvTigf22xPU2yI53gpiQTnxudM0NQvDdz3t0+kKwXc54j+t5Ekiv1oVMTB1ZY0VzcYWTv6ePOq3E15K9MsSaseCt+N5zSsLucXN9JuukhR9c= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1780092155; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=DlKAtUgeKAnIofsVsDjszMdagkmHGeouDOhcnG+Rwqo=; b=iiFWxNyJeG2fCaFXTIP/eiyi8sVkGb6w/DRIy5W3AxwiE0e3DBZwsWwUNq614rpUXnGQynd6R4hEYEzlxvlu0JUGK2u9tN0R8vy5IKXLoYWeGjU6DvJX4JfpiIzsuhT3R6yRI3/GMq0fN1oY3l06dRhaCVc7WWFT1onsOmDccAA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 17800921554063.7202636756077254; Fri, 29 May 2026 15:02:35 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wT5Dr-0004j8-C5; Fri, 29 May 2026 17:58:31 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wT5Dp-0004Zz-Qz for qemu-devel@nongnu.org; Fri, 29 May 2026 17:58: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 1wT5Do-0000u7-1i for qemu-devel@nongnu.org; Fri, 29 May 2026 17:58:29 -0400 Received: from pps.filterd (m0279867.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64TI2I8n589615 for ; Fri, 29 May 2026 21:58:26 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 4ef8rckbw9-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 29 May 2026 21:58:26 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-304df51ff3eso2146252eec.0 for ; Fri, 29 May 2026 14:58:26 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-304ed5a9d27sm2428313eec.25.2026.05.29.14.58.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 May 2026 14:58: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= DlKAtUgeKAnIofsVsDjszMdagkmHGeouDOhcnG+Rwqo=; b=BCdq1gEZ6dA3/bBB gFgZzQGhcjl5IUYB5D/Ks5jZ+tPq/ug6b4xzwX+GBAb9ZV9vc8KHrTgDxU8iUmOx oKSqHgaSPPOd700MogXVW+p8MNF7jzGcneJLJjOZ2lGJ6o9Hl/Gr47hcg2ycONUg iXNj5YV6aF3YBZ6q+ubiwUvG1PAY0reep4MgIeBWaK8HkpwiZ7jLPojJL5SGEgxh NA4GK/kEp6Hjbss3+IGiPuun3cjYvVNnhkXSu74M+svTjAnPuQtLIdsZh61XKptH nLu09avuDguU7dl4JsnfuZ2GB97/AxUP3kw4BqntsQddixcHkFSWqLErBaJT8xBT 1H40yg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1780091906; x=1780696706; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=DlKAtUgeKAnIofsVsDjszMdagkmHGeouDOhcnG+Rwqo=; b=Lig6HNlJvSmRY+3bMRP4HWms9kczNKP8HTFJg+Vtc8zZgGEgMgy/cMju8ALHm+/IG+ b6NGPVs1xFG5lwXgYZLgZPWGlxptG0PrF+vywG3OrEyzs/UW5zx93CmOQKu0LO+CaUdJ rGfB3ij1A9e+jIaQM/+EIW6CbxeL+3uqHuF3ytaLCzLvKIrg5oYN/GRtYUnD8Kx3mxxI KOycmy0ewKhDi63BM5BR8NVqLwIB1KTBygBUUa8p6V3VVj8pZAEtJvP2Swh5r+clwvsu HDu0m9WciGBV/GM8OpvHv4TftrpzMRXsyy41VQOQoKKixHA8839carzNaBiofX9LOXFL aAwg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780091906; x=1780696706; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=DlKAtUgeKAnIofsVsDjszMdagkmHGeouDOhcnG+Rwqo=; b=HuMLqUyzfj2MPzgMSThd4Z9J7xRdtaYa8FQYV4Lw2tkTkL4GL3r4wNmbWjNOp3onvX 8JFAvGuDWp4xS2Kr3gtx0ueYTlqIR+wBWDF/oONqPNO1rni7lORAJ8hLa2QdqGgQpzdu 3VP2GBO9HGfEzaN7b2AsNANiw33BZSZIMhsrBxg71qMZpjPFrhgEnV7MX84PC+Wn2nKj qBRmHbmICJQSPsTJDDWoIKUzlLAWXqc0x4Wg6WkszEj1UakZyH7fO3nO3hbBwtd+kEPe Ya/Je0yoEfB31YQ5Uv1ULonO+YP1zRo1h/3bkxqMSJuGATpzWRh4rdTc4dsMaRnvEQTA tDjw== X-Gm-Message-State: AOJu0YwkFRwCkim1domBvzNK3hXEty89TWG4RwvClwKEXUWIRQ2X44lu Uea8LVbP4P58ykEfvgoqeLgYnb1PboHXQ9EyJ0bvDOmqLYv4o4EQWAET8djh22gdYq5AxIj4A4N aR4KhvPjkjIxYU12IWRq97QQyYxUyEqbkF8732T4wWYX922kSaZigvVrPpoRPtMstdg== X-Gm-Gg: Acq92OFfSfd3fUYuUua1D3Bsl3gFexYIWnGIMDdpsxLKRNaULdQnr1aXIPV6lccXdFz X9lwsJzfGFWy9/T7UBJA4ntUdqUinbx6gJ2XBFm+tPkdkMyTA1Ywb1yS74NcXo9sPDNqV+Zwy55 1j0naXJep0mdB7G48ndgAI4r3i+p8GHcOJQvu/G8+6qRinA3Ar+BbGevrsupxgbxSO6S7GxpdW3 ECKwdjpDd3jIGVU5Sy8WmfElQRbKScIC1tTD9QF3sHA15LIXMwfR6TT02DWZCZUlDMOdv0+vJud G2+OnFaDJYD0OKjwFC83JE8UYj16mLsJUQ5VX5WDkHzWTWjaHg5aiV4QihgOhMhuKneIxVI0Ied o6o5YSyewkpTacQ/AjUSkjwuCgji0ySDHHOcCY978re4FPHi0AKSVpJ0glwI7Q5eAe0mGJ6OGKp Zl7x5S X-Received: by 2002:a05:7301:580b:b0:2d9:6373:ad0a with SMTP id 5a478bee46e88-304fa510f4fmr850679eec.11.1780091905940; Fri, 29 May 2026 14:58:25 -0700 (PDT) X-Received: by 2002:a05:7301:580b:b0:2d9:6373:ad0a with SMTP id 5a478bee46e88-304fa510f4fmr850659eec.11.1780091905403; Fri, 29 May 2026 14:58:25 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, matheus.bernardino@oss.qualcomm.com, pierrick.bouvier@oss.qualcomm.com, ltaylorsimpson@gmail.com, philmd@linaro.org Subject: [PATCH v5 11/28] target/hexagon: add simple cpu_exec_reset and pointer_wrap Date: Fri, 29 May 2026 14:57:49 -0700 Message-Id: <20260529215806.608770-12-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260529215806.608770-1-brian.cain@oss.qualcomm.com> References: <20260529215806.608770-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Proofpoint-GUID: KU8Q4uYIF1yLZTwwYTaS0nvxgx9B89ul X-Proofpoint-ORIG-GUID: KU8Q4uYIF1yLZTwwYTaS0nvxgx9B89ul X-Authority-Analysis: v=2.4 cv=DuNmPm/+ c=1 sm=1 tr=0 ts=6a1a0c02 cx=c_pps a=Uww141gWH0fZj/3QKPojxA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=eoimf2acIAo5FJnRuUoq:22 a=EUspDBNiAAAA:8 a=pGLkceISAAAA:8 a=O9wV_FzQyngHLK0UYg8A:9 a=QEXdDO2ut3YA:10 a=PxkB5W3o20Ba91AHUih5:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTI5MDIxOSBTYWx0ZWRfX0I4iXVW+pZlI 1jh/QmUH0bbiPrkjsvLosK3E9pzDSAvrv8PW7A+MB5R7T6c1A4531OPL3i456LUpKGhOFup3hEf ISD1sltmnD+lKPBmpbvCCe7sDenuPjUZOndD90yjGD0T4Xhy7a/A/1UfloR7PI6hwHP6G77grqD bIlq0AZ4FF82QjEL8ZaYKdpRVWL8L9QY87HQxNr0AZkUuhHv/unb2coJp17TnsW5dT/UwRY/Len GbGOTHO/mYZ82npvX5FXpJJU//BPKpfQXtu6VrJN3cZMopXoqeHwduawQ7QiotqUNuUqsJuwemX axIhzUVwcS0zmhrEdWML6LF1vzbeEKFKJKeI0womT9aOPCA6P2Ty4QfDs6RE8qkb4XEIzDk/YnE C4aK4xTRFyHW9rFjrm1+M5erbs/cS1SUeT8Z+rFQdi//0e52e3mxcTlGqMA5vkclzEPdk5phu7o LHrK+MYRyFeG+L4yUjQ== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-05-29_06,2026-05-28_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 adultscore=0 impostorscore=0 clxscore=1015 priorityscore=1501 lowpriorityscore=0 suspectscore=0 malwarescore=0 phishscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605210000 definitions=main-2605290219 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1780092156820154100 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 f086502036c..b4cf47cdf7e 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -495,6 +495,12 @@ static bool hexagon_cpu_exec_interrupt(CPUState *cs, i= nt interrupt_request) return false; } =20 +static vaddr hexagon_pointer_wrap(CPUState *cs, int mmu_idx, + vaddr result, vaddr base) +{ + return result; +} + #endif =20 static const TCGCPUOps hexagon_tcg_ops =3D { @@ -509,6 +515,8 @@ static const TCGCPUOps hexagon_tcg_ops =3D { .mmu_index =3D hexagon_cpu_mmu_index, #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 May 30 17:44:14 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1780091981; cv=none; d=zohomail.com; s=zohoarc; b=kJhjo6KJMcx7ANMHvP8hSM/qhMrVxOmK4PDDuQZimvL8U35qGZtkMNp5hMAoJiRth6c+PzlS4bJV78WHCqfpwNgejbZgw0RVG7/53PwQJtjfBlQjXwWiRVHD41W281zF7a9EvmTkIY1bLXgEEGJh4n31rOfPVMu3aJyzxPiM4BI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1780091981; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=ky/H7YxLHQOYPT9iE+BJy1Z59BoP2RFeVcUJDUu2pwg=; b=PpTvFmqp28lAF3offwBVI/1Py8tXFqZh4DknAc4NY5dYdGuj5Cq6tqP/kLP6qyWLWmncGbI6AVuc1tcH/8wHJm6ykpx7eZ8mauutdJxc9TbmZr7+hJRkyOqehr4b9V/sPDtAPkiHV4HEQdWD1TF2+4SBghL1C/iBgnU9I4uPPm8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1780091981534292.76442785533845; Fri, 29 May 2026 14:59:41 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wT5Ds-0004qC-M2; Fri, 29 May 2026 17:58: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 1wT5Dr-0004jD-8X for qemu-devel@nongnu.org; Fri, 29 May 2026 17:58:31 -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 1wT5Dp-0000uM-4P for qemu-devel@nongnu.org; Fri, 29 May 2026 17:58:30 -0400 Received: from pps.filterd (m0279870.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64TI2H65198959 for ; Fri, 29 May 2026 21:58:28 GMT Received: from mail-dy1-f199.google.com (mail-dy1-f199.google.com [74.125.82.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4efdjnhxwe-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 29 May 2026 21:58:28 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-304ee7d1368so936393eec.0 for ; Fri, 29 May 2026 14:58:28 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-304ed5a9d27sm2428313eec.25.2026.05.29.14.58.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 May 2026 14:58: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= ky/H7YxLHQOYPT9iE+BJy1Z59BoP2RFeVcUJDUu2pwg=; b=QA93oUinwTGksg91 kyn0IQB9N4WCv61BdTuXnjpd73Em2p+XexcfhWUp7Iyv/2ZQqv7R2Ro0Mb05El2F tDy+qozhM8OtB022BhZx0TuNmV7LDMbtibqK5135SDDBG32zDSUO0XGJd3t2fMoB 4+xi54lGKOBiSlVMA1QHf4vXPt/FHftaJBH3wIpTStTD6FBrQLOoFVMgqS9OKbHS nbCSCwn+DDhEHtnnCgmpt/NFDxNuO1CHtKLjyFRRYGRKoCe5j6C12/qNTcEA/xh+ J4aA14GTmMKyYT+bQN3Ckny2gjjRqS2WDs8Ok46k8+palbtV97hpwvLz8HMjCszU x1Pjag== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1780091907; x=1780696707; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=ky/H7YxLHQOYPT9iE+BJy1Z59BoP2RFeVcUJDUu2pwg=; b=QKABO4ObFF/xOgIEi/e3a/FgvV4jF4fAa1j4NIQy0cVdj7RhiFGGqjEVWfnTmKiE0i 3ahZVv6ctdnG6stuYqi68Or/NNXmQepNHBiOlQHtoxTJwlOQFa7lcBt7Qvkdc3O1DfdB ZaXPRyOyPhPWUYpSwdBgX6mxhcEoUiwLgmhmGdiA3n1CXN5LnihYsL/MiXxzpg1qpGSb tQ7gewSr4pu78ixycaOHRTpmB8KvXsG64x6Sl11zoqhI2jnCtnXdS7uszqmChf0fTszM sRoJ239dMbw39cav/mjBsHV2+byk90Klz1oETlP8/oSIw//SBSe2T9qh31vLvb1KocTQ PEGg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780091907; x=1780696707; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=ky/H7YxLHQOYPT9iE+BJy1Z59BoP2RFeVcUJDUu2pwg=; b=Nb0tsefzIF7ugFl7YjHllezM1RqBvQjMj1vmBSicP4moOmGWsSMPnzknHVEC/4DlI2 6OcRMZSRQqQxYNpbodPLjUTq4pnfTlVUxNPZwuIbN3e2Qg++hw+7gmgnritqbMXyc0ZM YZWDXf23uOGcHv6DSsDUpdBRsDnKIs7wk0XZKlwM/jEwZvt+svKvPtwCDF77gV9o48Zo DqIHVfd81TprOlI2ww7jPajNg7kg2FtgpO/qv/kHTaxkgPcToJvKTRv0lkz34JU3FjIl JPEJFE9AQvyJO4vBdLs3nQ7J3tPxQ4GcHZmPbj9uMTkatPFpDp6WSk40Bc6Ul+VFrDPz 4WDQ== X-Gm-Message-State: AOJu0Yzs2EnN8y3U4B74qdwkJ1+WCjdGZ+8IeAK0O0wKqSNBu1fgA55r n5+Vdm96K7vEU26I3KTSBtxtaxgd00PFZtsbAn8b0NS7I/HvxbMi1nzAtiZHIXWdHl+GtjBHJWv Xnf9fqvEpCjCwwA5WymKW6U+6cEuyaX7yVRstiSJ1nH4+P5CIU253Gti9Zm5ewNXKeA== X-Gm-Gg: Acq92OG09VEYuK5KPostzjIuBk/mFUua6rkewPNg9bumOkGWtvjvABTohgeltoZWk29 gOo4GoWxnL8H3OTVW7VCzQi4emZB+/fek3Bns12Ncogs/Va/FDtd0q9ijm+BbJT0YbCyPzY4oYs wB/O+KCPx3TvNZxmbPTiTkmw11L9ew0nYsWVXeMMSZhY40NqE5k2BoSIbLkMXIMj4hEG4+y3D3u IhCWx00g/tO83sbgfxiKkaJMwwCa8MPEPEcIdx429wMoOrXLPojyTNgrwswZynoW2c1YYaPbSnB A8ilDziuCZYW/E3Je++kK5KBCo4nNOYT2NqgJXEtrQxxLQpceY0nS0UjZKiXjJ9/ojM/aYIy7D0 jehSTgwda8ybfH5HQ3Mp743IAMMnCH8lsf3BeaxfzoAN5/15mfPBqx7Q/4qgP5i0qxbPjNvqImo OW4uik X-Received: by 2002:a05:7300:e683:b0:304:de26:3cb6 with SMTP id 5a478bee46e88-304fa61b98cmr849321eec.23.1780091907186; Fri, 29 May 2026 14:58:27 -0700 (PDT) X-Received: by 2002:a05:7300:e683:b0:304:de26:3cb6 with SMTP id 5a478bee46e88-304fa61b98cmr849305eec.23.1780091906683; Fri, 29 May 2026 14:58:26 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, matheus.bernardino@oss.qualcomm.com, pierrick.bouvier@oss.qualcomm.com, ltaylorsimpson@gmail.com, philmd@linaro.org, Brian Cain Subject: [PATCH v5 12/28] target/hexagon: Implement hexagon_tlb_fill() Date: Fri, 29 May 2026 14:57:50 -0700 Message-Id: <20260529215806.608770-13-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260529215806.608770-1-brian.cain@oss.qualcomm.com> References: <20260529215806.608770-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: AW1haW4tMjYwNTI5MDIxOSBTYWx0ZWRfX4CDzyEvRRAHI Qk8ViZVcXWuKb5u2nK2jf+SwxY31uDMRDc2mfvqYDBZwVowPCSNiZwLigo3dNQAy25jNyM3czaO Xl4xZYnQhfAnG7XJXMviCSXIy8c5ddnkxOTNQBmSl9VDfeBs7M38f+yvf3UcbbJZIJE/2iBui07 GOQBELW/CNbshzkVMNZ2dz1eZfz/kqIc/u/cKJWVC+qEgnnYQxxibqmydb3FbhyagLfhqt8kL2E 2ncYcmfou5RozW4TgI6lccKsu2Jw9W3nD9SkSqbFO6XEXXTsePM50sl/+MsoHT3CR+jmx6/836F wHWDeB02oxjFJ5CU+873JWSk+mLcaAYZ9KqeQjfJjdwqoTiA0qRfN4qHw2QqTtLHrupKB2E9/GE gH62wUVzinEa7cAmPaNtsuNHLRpQSJAJH7qRWfKWg9NU6XckeSzVIFdxZE17A3B5x54msvCYQ2f GoOLWd/O6X3q5nDQpqg== X-Proofpoint-GUID: nhEIkAsxLO0wOhbR3rJ5nhd59zgVpiyz X-Proofpoint-ORIG-GUID: nhEIkAsxLO0wOhbR3rJ5nhd59zgVpiyz X-Authority-Analysis: v=2.4 cv=PtKjqQM3 c=1 sm=1 tr=0 ts=6a1a0c04 cx=c_pps a=cFYjgdjTJScbgFmBucgdfQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA: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=yz7b9sy1sBSXNk6fZdQA:9 a=QEXdDO2ut3YA:10 a=scEy_gLbYbu1JhEsrz4S:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-05-29_06,2026-05-28_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 lowpriorityscore=0 phishscore=0 bulkscore=0 suspectscore=0 adultscore=0 impostorscore=0 spamscore=0 clxscore=1015 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605210000 definitions=main-2605290219 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1780091983881154100 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 b4cf47cdf7e..a7f1a75a165 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 ObjectClass *hexagon_cpu_class_by_name(const char *cpu_model) @@ -475,6 +477,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) { @@ -517,6 +651,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 May 30 17:44:14 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1780091979; cv=none; d=zohomail.com; s=zohoarc; b=NVAn6vNUFS8tbNZTVi4o/7MiiLSl0VvFfITUXAId1TD8Bq8vwdGcG7cOMObFhOAJB5DlH7uCvpcioplNY7Gu9uVdeE+jVN4MMLdXDV6DlQdg8X0a6o+lmANU2YGK1veqqp31zpKG5dIHnUfDg+doUNN3TT3MOP0tRsIRL3ZfSJI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1780091979; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=LJNSJ8GKW8f62EbxJRepob5TMha/Ifi3aHsWb3idyNicoiSnU091p4IF5123vpWPLn56JU9jtLzunOnUotAprDsUuAZrDgSCnvR5jxl5XI1hyiF/tg6bAT4/GhWdro4QqJL1qK1MlBivLgw/u9Xda1PX2z+6fB9Emm7EDfO/K28= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1780091979604851.8084460318779; Fri, 29 May 2026 14:59:39 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wT5E4-0005n8-Bs; Fri, 29 May 2026 17:58: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 1wT5E2-0005hG-CH for qemu-devel@nongnu.org; Fri, 29 May 2026 17:58:42 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wT5E0-0000uW-Sc for qemu-devel@nongnu.org; Fri, 29 May 2026 17:58:42 -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 64TI2Le82998046 for ; Fri, 29 May 2026 21:58:29 GMT Received: from mail-dy1-f198.google.com (mail-dy1-f198.google.com [74.125.82.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ef4jj4euv-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 29 May 2026 21:58:29 +0000 (GMT) Received: by mail-dy1-f198.google.com with SMTP id 5a478bee46e88-304e3e3fba5so6174337eec.0 for ; Fri, 29 May 2026 14:58:29 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-304ed5a9d27sm2428313eec.25.2026.05.29.14.58.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 May 2026 14:58: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= F0cep0TaF14MbTHyoNohBMjmTyEDCIMV2M5fWWT0+KQ=; b=VuSt6DOgEuVlmown l7XyWQtm+xocG3g4rGxungFxd1fpWq2knK2CJT5dtKt61WfEA9QSAlzHBhRZ1rKo ZlbQSKaJcvmDPnJvHkglOlJPBbyCzH5aOVtgm4qk2LVi3bU1faITpscPWy9Y7EQA yAc6T5+PhZ0IfarkWlApPfD3cGXCUMYwDu5VDdcLiRM6btQiPR8XK7ghwnJBI72+ tnKJufl9jxwvMVdrSIPfeY43j7/QbhXPxT8QqPKgGV1jHTvVgXqsddiQrTR70HHt 5enlEc1oRPPpKRiJsbqrIEFKNb9rN96lacQU1h/uLAyNLmCc2A7P1jpU7/gP2XkE dHPv7w== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1780091909; x=1780696709; darn=nongnu.org; h=content-transfer-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=HhCdoGv5RKzq6ZIE5In+YWoTe8MkV/P2HUnHQArKIAngEpwR2+GR2AJpJ8Y8gKYmyX YhzqKb1dQc9WVzK/KFDvjiukkEDngJRGb3Ywl1aLcNXW2m82/YMX+PrYfHi9z/8Z8b7E iKP4ulIV96H+Mt5RIAQCKTuPqCQ77zdnYf91/87Xc0Sm3Q5l1Zai3Nb4HcWodzxNo9kW 8Lh2TAewVGwfTb0cgMUXs49NkuYcm7HPvSiyCosJqq4Vv7AJcScNcTlQH1Vs/tX03efO 7xzrYHLuUVUyD7yk20mtBHwVzHLmn826C0OPNwo4i0xd0uQNMORcI0E0tpKowPBlsOJq RsXg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780091909; x=1780696709; h=content-transfer-encoding:mime-version:references:in-reply-to :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=cE891m1iZK/ZWOhpcTu8JtG0X91JWZXLW+KE2hv4EDFDM6bzpRmmWNJgDB7EHaIDgR jcFZl7m7Odr0mXpOygQJsyXLxFJVxJKNJm4OYsCTHx/Ok7BKEb2mQVMbq/9JyRnCV6PY mrz8zs12J4wWHXZTTvDVvEWhlh/GyMrqQTwsgtsbrj7SVIk6IRkYaO2EMkywhTuKG1hS K+iuVpCXS8gsJnDyeBezqbsoxQw9qH8Gf2/sj2h4vYzzcwUPCVqNR5Tdev64TNPVTRUa 725v5ka3FqG0RUR1cKK3P5RtEzlKAFjnr10wnp0UrdI11Ba8xe4PFnjbpLh1slBVngJz kJHQ== X-Gm-Message-State: AOJu0Yw5g9qzcnZuP7VMEh3Yu+ymhPNhNIbMx2TW9hu8kzNT0RTEE3Fu n4kbn9wK+QC0dBn9KyfY5GVBRdz9TSmDGDUZrVC9CWuF1M261C8wd20HqAg0dHhGggv9rppUM50 MrZJj54AJNi1xIxhJgQbKcShJdVOZBieGM5w20bXr4+fHWALupFJXeFN2OOZC6wje2w== X-Gm-Gg: Acq92OFojz+jd+h7NxCQ97L+6N3gtrnX7nqPza9LmS257j87eNYYkD/CsLGR+WDEP+x 8O2gYztVPKz7Zb3FWJ5cUcY8TJ10f+t6yULNOIkX2rvcuHOcvQJ9aNhbgtQEabowDTSpY9BKiQr AQzmumJxtCQNIvxl93p5RliMmcJV2aSIsbNKRFDIJsXI7Xk6axbmWYmLAqBHtZclGUTAXQnSdE6 g1Gi67N6KYlFz/jTR9U0sevzUC3faeCxJehT/iGb6j4Bc3Gu8bPXuGWysTgt8hbf+bHjxH6xfgJ xCdzwrAvT4IJkhluZ7xNO7M9oVD0iFcLGtnirv4L1e7QgCCFuJ8MAzalJH9pW+iPCdAOHUtlsoW FN12pJ/fOu7YUz+SKgSsAerYLhdedG2fFtiFRM/ui3vFOvLZzQbXtlj6HOTYMoC4Wf+scuQX3z0 6zK9v6 X-Received: by 2002:a05:7300:2201:b0:304:d8cb:8424 with SMTP id 5a478bee46e88-304fa546886mr819741eec.9.1780091908791; Fri, 29 May 2026 14:58:28 -0700 (PDT) X-Received: by 2002:a05:7300:2201:b0:304:d8cb:8424 with SMTP id 5a478bee46e88-304fa546886mr819722eec.9.1780091908232; Fri, 29 May 2026 14:58:28 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, matheus.bernardino@oss.qualcomm.com, pierrick.bouvier@oss.qualcomm.com, ltaylorsimpson@gmail.com, philmd@linaro.org, Brian Cain Subject: [PATCH v5 13/28] target/hexagon: Implement siad inst Date: Fri, 29 May 2026 14:57:51 -0700 Message-Id: <20260529215806.608770-14-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260529215806.608770-1-brian.cain@oss.qualcomm.com> References: <20260529215806.608770-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: AW1haW4tMjYwNTI5MDIxOSBTYWx0ZWRfXx6Z4ls9hIP50 yD1YY1UT9w5nBfN0yO89Yr1KCPr5yQdYnKTKFtN/2h1HwZ2jhVaNOBhDovAOw+TKAH9nNXV2DeS a3tSB3dgUS0wLJKaZFEfhpNrC15l08Fgbb18URFxpyTHB7NsPRi9lI3Np9TNcsYnayFSDWzq1JL FXF6eE56fjK76XHZD+XyGEYB7vIIhpWKS0c47V4DXzkAe6/Dg3vMtkEzfA3g8GjbEGoYgEPa1mX xfb4Ml006lqxeCkUblODlNAChXYum+AJlfEvpP0qmYgXtVCa/Ewxv6F4x7cNvB7yQdSQxjgUvEv e5soPWiK57fqa3kDA1dbVQmB8l2jtu0lpHmS9dpyGVk8Y0vpWAeh3qc11Q3nRGdvtc9H0E5BzBV MoIxr6Hx4bX4kb9AvZ/BkOJt6kayy5Fa2eeaon1mSQkNyiqMpxIB2WHoL8RZVQWvSzJ7iVPqFjm lc9HBcyRqH0cVGor+BQ== X-Proofpoint-ORIG-GUID: NRlGtk9tZCMxqJvbsRw5BgM04MyLE52L X-Authority-Analysis: v=2.4 cv=Tt7WQjXh c=1 sm=1 tr=0 ts=6a1a0c05 cx=c_pps a=wEP8DlPgTf/vqF+yE6f9lg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA: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=bBxd6f-gb0O0v-kibOvt:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-GUID: NRlGtk9tZCMxqJvbsRw5BgM04MyLE52L X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-05-29_06,2026-05-28_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 lowpriorityscore=0 clxscore=1015 impostorscore=0 bulkscore=0 adultscore=0 malwarescore=0 phishscore=0 spamscore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605210000 definitions=main-2605290219 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1780091980109158500 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 May 30 17:44:14 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1780091981; cv=none; d=zohomail.com; s=zohoarc; b=HPhr/NpFJgJGhT0uiz2Da/bLOm27MeTFP0+g7a7SIw+0Wl9l1R30y3Z7Ldgla1WLCY+wlFS8RLAIoiHM90hVB7E/HCLHOmkk/l63qFI2SkO9INnjk59SyLR7jNc/z/EFBnFhnuxf4J8f239SSHDBO66TUqQ041w2mv4pm7qC7S8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1780091981; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=kuTE6HgisKrwfOsg2yLkLYCYEjmFwpc3LGLU3ZkItsk=; b=SJFGyIrZwrYq2raM2WfZx5Pvp7C9MGUevYknMslSobktWMbJjiaYs6Jcrr9/hvWGl0U4IrKDgPajJoG4XZOL9gOBTYPOzUT0xllfReF1mCIGDbSQ9boYviZ9LZST0T3MUWPw0vXLEuBEwFV6YMr8pxSgJICVu5hSP1b+PjP4rvc= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1780091981775987.2662888060505; Fri, 29 May 2026 14:59:41 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wT5EA-0005t4-Vt; Fri, 29 May 2026 17:58:51 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wT5E3-0005mL-OQ for qemu-devel@nongnu.org; Fri, 29 May 2026 17:58: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 1wT5E2-0000v8-4p for qemu-devel@nongnu.org; Fri, 29 May 2026 17:58:43 -0400 Received: from pps.filterd (m0279871.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64TIfjPS119680 for ; Fri, 29 May 2026 21:58:31 GMT Received: from mail-dy1-f199.google.com (mail-dy1-f199.google.com [74.125.82.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4efg9vrqje-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 29 May 2026 21:58:30 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-304ea42b025so409133eec.0 for ; Fri, 29 May 2026 14:58:30 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-304ed5a9d27sm2428313eec.25.2026.05.29.14.58.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 May 2026 14:58: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= kuTE6HgisKrwfOsg2yLkLYCYEjmFwpc3LGLU3ZkItsk=; b=Pr6t9KpmLqv+hWCr n8WMQYcDw7Ryiw6sjjY9l9swjvWfSz2cYnpChqxLvEf3mnD1zlWRhK0qX5P8+WY2 B751KtgOgvetzJOyJd8DTamNWhJQ1+RrkYZgo4y1b13FwClPgAzquG+tI9ivhaMq T9Q8gOJWZDZpggBi5WcMWN7aASaDBnjjkLhBdkaz8xipuBegYJH66HReYcaVm369 At42VTFjL61S8aYKt0KOLLfBRcQm5fTJFz8Rz5NnrdIiDMW8xbwBZQEGknvBs9lt qyCZlzgWfGzrI/etmhFV2wxCv+J/JVP0IwD74l8pFcNfLTlIJcTT48elOfyVNJ9J T1sQuw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1780091910; x=1780696710; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=kuTE6HgisKrwfOsg2yLkLYCYEjmFwpc3LGLU3ZkItsk=; b=X3nsYHvv+wW3Jl7mf42Qou59mE2kPenANR4XojbQQfSQZyp7BK/S8NlBih+E5WZLHT KSB1Buaz6WS9S1Z11kRzERYD5PdQRL94BxUsRn6kHvQnCrkzBVJfuTG+cTqrkvfBBNQV +VlBdL6RWcE1kGudt2uGw+Iv8GGZniRlVaFM27vUckGdPl9MKBWjoOHpTOac6jsRtLH3 Q+IVTQTyIgld46lv9Un+BKUTOQPEDW3XUvikDEADwZMHSMrf3KonHTddQ4KHVvnbfW2U pgM00rM0MIdQzpZ1qkB4rO3WXzoOJ5ClaipBSkvoQQrwWOegC4n2LV4dk1YcEZPi4GdH cCzQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780091910; x=1780696710; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=kuTE6HgisKrwfOsg2yLkLYCYEjmFwpc3LGLU3ZkItsk=; b=ettzNXt/M6sTkRZdxBeH1hhO0mOjpzgtj+78HFX8Pzr7prl9wij9+DfTd5Ty0ul2+j S+iH506G1wOkRTnW53cEXD8XSMK5Id2Pn5Zmtp7nH8HmDYtwo++bp7nuaWiN9MCTyyqQ Z/YsqNyBt78qRwIUBTvdjc4paprd4u0nU0I/xwDPZlEK0Mz13w6K8Y7+384hfYF7sUp/ mmNiQceXGDF+JP/0/+VmobEsupuTO/Jt254hcv3M01rmHcii+0/UFQqCAUrCG09bxg76 J2qI2rQxOpRfmppiSTbpjZy0J6jmoNao9IyyFbAJ39P0gus/pC0B4zxu5Kh9plmlXAD1 WMAg== X-Gm-Message-State: AOJu0Yy7RGRjrWrB4qSOvHTc0BwEF0/CXENU7hdP0nMvsE5U0MQPfr6u wZ+Dt6/yww1gl14qr7hVa8Z7e51lc+vTSxGjseh/eNT8SZKv+yh5ujOsgGADlnBKj0/8hBttWUu INtHCgy3oYLRdL2r7BCyoyvp1I2MgVpzyzdHHvr64B+oq4qglW5+sazIcrkRwFms7sg== X-Gm-Gg: Acq92OH90N1OP8uaMQ4EXFb/QEkWd4wLt4SUwVCX/c5IjfGb4WXbtu39y2n4pP7bmqH 3/OE2NTNMw9yPEw2c7Hu2W+qXDKPbgqRjqFN1GsJFxNsvsXlXzBCqhgVi6EkHM3EpAe+mNr5BlQ WPMxxSWFyJZtt3gAMH7wAVSCPWVs1c6DumWsLNDAUlSMl7wQaBHp/puFjAPgMC4DznrkbatRYS+ G8uKkvDunQI4rXIvNPz8isr8sXT+JHDquZAEBDlNg1CYVAR+RVUKyqFcqPotObwqqNmXH4FbnJG EY98/W2Kc/yvylXMj5AineYMHuMBLe0AoavKDCMAmgeAKUkehcNO9jUF5ZylO5mnt6ZVDX9IA05 7Px4MhnYx9a9aZ13BkZUPL/poaCEe/41F3P1nVQYz0OXV7Lp4G/uxIv7CrRzg0bh/YgxRTSHtbT pmx20X X-Received: by 2002:a05:7300:6d05:b0:304:56fc:775 with SMTP id 5a478bee46e88-304eb22df94mr1929079eec.21.1780091910004; Fri, 29 May 2026 14:58:30 -0700 (PDT) X-Received: by 2002:a05:7300:6d05:b0:304:56fc:775 with SMTP id 5a478bee46e88-304eb22df94mr1929071eec.21.1780091909469; Fri, 29 May 2026 14:58:29 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, matheus.bernardino@oss.qualcomm.com, pierrick.bouvier@oss.qualcomm.com, ltaylorsimpson@gmail.com, philmd@linaro.org, Brian Cain Subject: [PATCH v5 14/28] target/hexagon: Implement hexagon_resume_threads() Date: Fri, 29 May 2026 14:57:52 -0700 Message-Id: <20260529215806.608770-15-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260529215806.608770-1-brian.cain@oss.qualcomm.com> References: <20260529215806.608770-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: AW1haW4tMjYwNTI5MDIxOSBTYWx0ZWRfX6p9xlS5zOqTl Qi6tszEXU2OFDXjEDZpj+6FequdzOxXNpiKhIoUPwKAxyv7qPvyxcs57UF3mlLz9UW+MkX6WTLG Zb5ADhpTzvI5CQG17AV4hzKWWzxGT7qrVBPlaTiiWLo8IPZg/mMayfA2nO0Eb3XdW+ENjcV3q39 pOMqQ/lMItx4X/yCwwR2uShHk6qu4xajCJEAApwVuLVoMwZIcdyTQFwQBgGLKVAOwLn9+3urmd4 J2MzaIuAwzNC6PDcEY9aYR3JpmKbDY7494K525veU/uHYzp3ecbjA7HdGD2a8FJEYPppkA9Twzc 66YB5Cr1ONUX5HyEAcbl/BYlwpcnk0C7C1gDP5wAo8mgA+qX7/fiqlAtfmg8r98TkkVEVxMKcTB pEaQzFkSOmpleKsJbSoMZLrtpoQ5SOVziQsXRrRDGJYvOq51HxX7m/g01P5vMyFOR2UwJwcPNE6 vGEzioe8pCxf5U4Cuqw== X-Proofpoint-GUID: ulnwFDErc8VZ0dFsSqhSiytLPpdO6gu- X-Proofpoint-ORIG-GUID: ulnwFDErc8VZ0dFsSqhSiytLPpdO6gu- X-Authority-Analysis: v=2.4 cv=MJpQXsZl c=1 sm=1 tr=0 ts=6a1a0c07 cx=c_pps a=cFYjgdjTJScbgFmBucgdfQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA: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=scEy_gLbYbu1JhEsrz4S:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-05-29_06,2026-05-28_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 suspectscore=0 clxscore=1015 lowpriorityscore=0 impostorscore=0 malwarescore=0 adultscore=0 priorityscore=1501 phishscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605210000 definitions=main-2605290219 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1780091984130158500 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 299cbd92ddc..555955b5926 100644 --- a/target/hexagon/cpu.h +++ b/target/hexagon/cpu.h @@ -54,6 +54,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 May 30 17:44:14 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1780092095; cv=none; d=zohomail.com; s=zohoarc; b=LDoMlfXUpCrQ00WrNZ6DIMzyQgL0WET7zOBTxH5oBdxGdXFt2Wga9XN8DpKEQWyj/NA3IWWQyug26c5fh97gdwsrCKAWC913qi3ZgB6lWjRt3GMeNgnahxj3cmGQjpZ0SUUyf2UdiHq8ftTopFMu1ijL2251vNviCPgXjAxBPEg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1780092095; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=TRhzy/A1cTDgjaCTiUykI/3FI0JD/gjC9gP+SRi5Y9o=; b=aySnfzGnWIJJvkEJhX/eFzRG9E7+RYOJ6J1rkFykb0XhCltsfuy/3GwFIf7QJWg8Jbl0yT7g4WfD3jCe5JskPr/lWaXV5iUpuT9SvoqZTHbdVgTkEggKJlehvq1H8H4l4DjwBKgLDawsP6zJUv9IdP0tbxeKqURbb5grnXTh2kE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1780092095974130.97378069602632; Fri, 29 May 2026 15:01:35 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wT5Dw-0005Ic-UL; Fri, 29 May 2026 17:58:36 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wT5Dv-00057l-AG for qemu-devel@nongnu.org; Fri, 29 May 2026 17:58:35 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wT5Dt-0000vg-FD for qemu-devel@nongnu.org; Fri, 29 May 2026 17:58:35 -0400 Received: from pps.filterd (m0279866.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64TJZtNu4123960 for ; Fri, 29 May 2026 21:58:32 GMT Received: from mail-dy1-f199.google.com (mail-dy1-f199.google.com [74.125.82.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4efh3n8g2y-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 29 May 2026 21:58:32 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-2fe1cf409a1so4777634eec.1 for ; Fri, 29 May 2026 14:58:32 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-304ed5a9d27sm2428313eec.25.2026.05.29.14.58.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 May 2026 14:58: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= TRhzy/A1cTDgjaCTiUykI/3FI0JD/gjC9gP+SRi5Y9o=; b=e8GNsF7OgHkUUmJo 8R9wW+IySIZDErFYCT8YUGZSf0Mfd/z5gBCEWyy7F2JRiyrJjO1u59tqYWWj5kB8 R0lI9rrnDuB0Q+E9JnfoH+QT/nx3DfycgfvEiEAhNHHwIX53vCMCxxQwUFiARUn+ OZBUOAoRmv2umqVdprh9bPTzPI2CaaKgWwMy4rVdF9fDh8zcXjSu/8paXYPC+siN xYF/8xFMHwRoftwBZ4dN8YQE2azzROU9cjd3oYnPvi5ItT9d6sHpfJyQftpU1/X0 lM+IZ5Zr3aKH3NMQjUgbb162Iuj69V8bGgh9YBMxP6q3GBPAjLtG2RP1zjJkmgzy FBKzMA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1780091911; x=1780696711; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=TRhzy/A1cTDgjaCTiUykI/3FI0JD/gjC9gP+SRi5Y9o=; b=BNVX3IwfAuzNmjex3ZECwkX/54+FdCbYxyzdStWTqvqF96sm2K+N3j+3WXpKoaBVDL KQnZtfNZfGCZjEWi4F16+7Wyx5jKphr7y9lm4e/L4CLSN+hj4IoAU71tKpYRy+KQjo40 9C4/JFctYrhBDPq8pzf4W8tKfrAVFF7vnKf28jAcLaFALTU31RZ5R5vx7NzKdzVUNCfu 8p0elhvQUwsndPgtNeiRqUcJLKPSeNGGygVTG7uZKUkD/vMocH2gF6f2otLmRnIlEMAZ 80lq0Pe8xD5dBWrxGM1On5V2dwTQT+h1FOJAYOVdKjuLSiaUH582uNnv1nvBSWhrZhqr 0Pug== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780091911; x=1780696711; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=TRhzy/A1cTDgjaCTiUykI/3FI0JD/gjC9gP+SRi5Y9o=; b=nbr8mr872ZYMnqm9V/cdMg+M8ZLMmlPWHw1AJua+41qxXoXxB8fxLjhw843joQr9iQ fwdHMV4r9OOPbeWuKU7Z32L061Ghh4B29Spq/yqDKMVS1CPKVx/N00vJoB/G/ecCSZAs i7j3NhX7MzDhJjv/bwI4JMCd+Eh77TfAltuTr5n6TSl145gOo9ntHEy0ucnpQWs6V5wZ TPrII58ERERQyKk+tusLBnOu/BxYMJdlXxhSgA4I/nhj/SlL9Zh1a745QfvWC0KGZAFN XYA4jT0p3kR3da8UHLGLiG/HFGGtBNC51N/+UUxGx6VzfNnEepgaUwOJvcbC1mfBAyX6 f2lw== X-Gm-Message-State: AOJu0YxLrvVeAVqWyfNNew3hMFD7TIf8Am4ArFxRBXfJzyqFe4ygU8iO sUvYLBor1zbAz3poshR4qxe8Yzkw4v3AyiwIu8E4fFzbCRQuxM9VhDesleVQwUaEs2NOAlad7Pj j0gITm5BQQ2LhEdETbwydRnTf0P3u2Di97sIvdm4dKgbib4JRMLTerW7sb6XOGXdW2Q== X-Gm-Gg: Acq92OGnIzAa/7EjxLmHNY3Xy708CVw9GAjn2SwgqaNCNqbO9Er9KIt4mmGicgrxWqT R/qxSrYxs5t5G8WFxOZGunaBjBIl0BHATJ56ySI2byjdjjhbBKfvsBIyfUTYJNTDvc3LpumeVaL HCU4BNWV1FwPJ8YOQWausDVP9I/Eo0zDL6yK5Xy8sFNIdQH/ASrhpD6xhJmb0Zw6V75DNYCHh6N Crkp6k6nLgp4DKP+RwjTRmoh+Ese6vn5j8gVNki3iFO5XNwLCU+nqq2Db0uxkQnA70Wben6aZtj ntmv7syaYdye5xRaq0dnbrwcjyFYudhLm35dOQpWuvBaA2RQ1GPGzaKj7d0xg+UzrBm/1D6R0gF nBeLkZ8RJLge8BWLTjGuhyR3ZbcI57uSWvxV/y1rG4vjHltQWUDgkv05s5BbEo4heFA1LNQXpys 5eeA1t X-Received: by 2002:a05:7301:4918:b0:304:630d:e4ec with SMTP id 5a478bee46e88-304fa666a76mr916478eec.28.1780091911421; Fri, 29 May 2026 14:58:31 -0700 (PDT) X-Received: by 2002:a05:7301:4918:b0:304:630d:e4ec with SMTP id 5a478bee46e88-304fa666a76mr916466eec.28.1780091910865; Fri, 29 May 2026 14:58:30 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, matheus.bernardino@oss.qualcomm.com, pierrick.bouvier@oss.qualcomm.com, ltaylorsimpson@gmail.com, philmd@linaro.org, Brian Cain Subject: [PATCH v5 15/28] target/hexagon: Implement setprio, resched Date: Fri, 29 May 2026 14:57:53 -0700 Message-Id: <20260529215806.608770-16-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260529215806.608770-1-brian.cain@oss.qualcomm.com> References: <20260529215806.608770-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=RcCgzVtv c=1 sm=1 tr=0 ts=6a1a0c08 cx=c_pps a=cFYjgdjTJScbgFmBucgdfQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=YMgV9FUhrdKAYTUUvYB2:22 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=9hY_xzidxOicKg_qOOkA:9 a=QEXdDO2ut3YA:10 a=scEy_gLbYbu1JhEsrz4S:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTI5MDIxOSBTYWx0ZWRfX0qx3VnWTsktN CqO2TwXIuNUrX2t5toG7yWsG8WoqKZPL6bK0M28rhrqNbuNXZdGzZwTm6s/IspWfuNbnKq+ZaxY Apu3HsEvD2deRtLS5Q+sh06gcf2xCvNVa7KlkrccahMRTdUam2GXEYbUwXxSjzrX0z2iwtN7fbA e/h54wuIDMcPyQFBsvELDP0uRGN1RTdi/Gv9I30AclAe93ZAjtNTHZyUhV47iDfemLqV/SXzEoQ gYvvE6GUb0iXCwxhiZIDOQ6Qgf/Q6F1Ug+qjlRpKKK+CaR0a5NUJkWmlrRhnfRVZ68SUlXqbiNI dnrhWURA8A/TQ4m3nA6mublbMIxJ6Ynnmiy1vmYts9Qx3rNsXQJvQWZoYGXnTFbckB3fEWIzdil MbKqpx++g6k2/tbCqOELQzSEznJADTwQAIcRm5HdtvK6fFnx0YFmK7qRN3LIoYiQ5Y0qrHoKuDN WLzigDlFkk+i6GhiNkA== X-Proofpoint-ORIG-GUID: kLDqFYt2nIEugwrihjqrpuBY8_Wznii2 X-Proofpoint-GUID: kLDqFYt2nIEugwrihjqrpuBY8_Wznii2 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-05-29_06,2026-05-28_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 malwarescore=0 lowpriorityscore=0 suspectscore=0 phishscore=0 bulkscore=0 adultscore=0 clxscore=1015 impostorscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605210000 definitions=main-2605290219 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1780092097088158500 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..82062a2f802 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 %u," + " cur PC 0x%" PRIx32 "\n", + __func__, (unsigned)int_number, env->gpr[HEX_REG_PC]); + SET_SYSTEM_FIELD(env, HEX_SREG_BESTWAIT, BESTWAIT_PRIO, ~0); + hex_raise_interrupts(env, 1 << int_number, CPU_INTERRUPT_SWI); + } +} + void HELPER(wait)(CPUHexagonState *env, uint32_t PC) { BQL_LOCK_GUARD(); @@ -1697,8 +1755,27 @@ uint64_t HELPER(greg_read_pair)(CPUHexagonState *env= , uint32_t reg) g_assert_not_reached(); } =20 +/* + * setprio/resched - hardware-assisted scheduler helpers for managing + * the run queue and interrupt steering. + */ void HELPER(setprio)(CPUHexagonState *env, uint32_t thread, uint32_t prio) { + CPUState *cs; + + BQL_LOCK_GUARD(); + CPU_FOREACH(cs) { + HexagonCPU *found_cpu =3D HEXAGON_CPU(cs); + CPUHexagonState *found_env =3D &found_cpu->env; + if (thread =3D=3D found_env->threadId) { + SET_SYSTEM_FIELD(found_env, HEX_SREG_STID, STID_PRIO, prio); + qemu_log_mask(CPU_LOG_INT, + "%s: tid %" PRIu32 " prio =3D 0x%" PRIx32 "\n", + __func__, found_env->threadId, prio); + resched(env); + return; + } + } g_assert_not_reached(); } =20 --=20 2.34.1 From nobody Sat May 30 17:44:14 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1780092134; cv=none; d=zohomail.com; s=zohoarc; b=RBwb3Z8ZaAYkeX/n/NKlV8EY3WpuLOcS5BAmE6Sad7V6OvBnX5oFjL9i/L8zhh/oaQxM9Vp6mjiLIvbo7VxMsUC7cAu9bf7VH8Q+xzXor0C1mJUWqI6S4/z/gGN9g8wFVZ/r5CQDYNOG3WsZMfkvVsTwBJfQKWpkatN45E9fpD4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1780092134; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=dVAWAQOUEPCDn6RYUsIoXW4LWB1iufowpmmkRsJbAic=; b=DorFokN9TQxGmZjO43yn2VArBJ46RMUCv49NWVmwBz2RiPRfirRxZkgpNBFXaDHZjWOFNUP1gh1v4z2oHhBQR91sAcZeIxQEpj2PPF3AZ73QbmVbVngXzmDtKK/xzP1mkUeOI8+qT+prb7DyKLGzewzfUwzKIYm17a0471KHfhY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1780092134068733.6288776244382; Fri, 29 May 2026 15:02:14 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wT5EL-0005yp-QY; Fri, 29 May 2026 17:59:01 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wT5E6-0005q1-IR for qemu-devel@nongnu.org; Fri, 29 May 2026 17:58:46 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wT5E4-0000vr-Js for qemu-devel@nongnu.org; Fri, 29 May 2026 17:58:45 -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 64TIdlN7203284 for ; Fri, 29 May 2026 21:58: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 4efg9c8r6k-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 29 May 2026 21:58:33 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-304f1820babso1365997eec.1 for ; Fri, 29 May 2026 14:58:33 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-304ed5a9d27sm2428313eec.25.2026.05.29.14.58.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 May 2026 14:58: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= dVAWAQOUEPCDn6RYUsIoXW4LWB1iufowpmmkRsJbAic=; b=U2JBzgKO/dABO/4O wN3H8e4UeJD4C234R32uvtAO7M2zFPUJaAgy5e3bQGtcsa/Q40OSvg5aEjxrAHxd f2/dlxUbzPZoVXKn40ECQYl6oYMZBXyMSNVINBx2TKUBjan5eRw+37J08n1eIGU0 5/O84NI06yTEELet6hY6fDHMMqGLPNbT1uBH5IOiBTo3zlxjtC/74YFzdI6zql7u h63HejZ/fec8Z2OtbhImdVsSqSGeSx4OOYKcWZv6jLKJvtcFpTLmvNnCFGyAzavW hh0YaWHb0uZzsnjZsC6rqzk2cRJJ6NzrSf8lhOlCx6AJlO34P4UaQzFdOW0jTCEe ATzFmg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1780091913; x=1780696713; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=dVAWAQOUEPCDn6RYUsIoXW4LWB1iufowpmmkRsJbAic=; b=NfDAvf/wU9a+hs4VRIoJtBOTdL5Np80H73w0aRRxzrfy+DOtgp8Y79zSbuH5VE+3IU uFEA1jl4BtkYDj5SGAoEAOFCsx2jst7SSNUbyHwRstPcx29O5armu+TyOcfHd7i+d2rB jEvEORKYgCaQz+CMFw/2fOY+g21sgqEL3QqsybWq4XFwlokTjwPv8gELYD7HGyTSkK5M HrQeGfk9xfDlZykTmwQi5N+FlJYhHw0e299b4NJAKdzxqtEVNpBfjejDO0O4hEX3b8wP sLFdmf0uQEP3xnqT5HPk2txOr1xjv9G6K7oJHczlz/SdghxhNh2zMftBF51yjYk0xgpB pENA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780091913; x=1780696713; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=dVAWAQOUEPCDn6RYUsIoXW4LWB1iufowpmmkRsJbAic=; b=djMWhljrh9qKa/PGSvfZrZXxdqD6Uu1yWTdJ97DZDneUNC5THPR4BwUNe/DPKK5v9T GI0H357gtalLKQ2YpumZriAmIpT9m4Nzrb2ugTFUUEaY92nnKj8l0fTMskGraO4JP+zU dc2cUphXWDN0pM/ULRqCULfr2Ti/RB1MVM4og+V8pG6vw3guoujyJhDboaBQYHZ++DqE vGwVpGygzRowVvtfc9HnWa+DV6xUN29tAWCRcxZx7ojhTLhF1NLmyaWHse1vVYvEvPKi lGjdokANpQZPvZRAlsxHrdHuT6FVdY7thUCPLf8REYrcnlT7pOsnmZxeNanWu2fCiHg7 NJPg== X-Gm-Message-State: AOJu0YzitEp9G6OyuTmk82/p6nDsa6Cuh00i2ki9GuHXAvweRpOCgVjA 3l/J9rzxSU0vbogqTMR3lUreuqEzNKB45vZeFFAi01FjLVWfpyhwRzCaNB7OCYRItcPjZaT2nd8 B5B2/5F56LcArOrkeZzOapzBSytc3eg+UmIHgqCYc8x5pUIUhYfjszuFdvcvqioabbw== X-Gm-Gg: Acq92OGAt0E6y/pdnWmFO1v1VJYyUYOD5RVD/tnUIGo0Hg14tVe92OiUK9e0LRzESM+ p/muAE3DsDwVLmlLr+9ejqLBU3TiPPSlSlLMusWS02MtwjczJbcOxWfBladBszh3rlSJN5DtOki 34kasKWrcC1neYXNq+NYRgcr6wiOkz48b9yPMn97FIdfqfZPrrCUa6d1BaZ4qhtQD/zQFdrrMRZ 1RDgjLj8P4IFANDv3NnR7HfxhBYZKlw6Y8HQYJTWfvK9LdFdyhTHi+eodO2ftJoiIFxHhgLYXCt WMYIaTHcJ81l8GI2CiEQYVXPpqom+lVdvh0Ln+97jELgVnw7fyXSwrgSpveei4K3xEXAwStdfcs jHtbqOFOAprVgQ/lIsCBjzWSHof/ghN8QzEFeeKhsm+VChmGWuZpMHy85zx2o0ZBFBkTPgKkFmC 1RwNdX X-Received: by 2002:a05:7300:cb13:b0:304:819f:5029 with SMTP id 5a478bee46e88-304fa4b7178mr785693eec.2.1780091912689; Fri, 29 May 2026 14:58:32 -0700 (PDT) X-Received: by 2002:a05:7300:cb13:b0:304:819f:5029 with SMTP id 5a478bee46e88-304fa4b7178mr785680eec.2.1780091912120; Fri, 29 May 2026 14:58:32 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, matheus.bernardino@oss.qualcomm.com, pierrick.bouvier@oss.qualcomm.com, ltaylorsimpson@gmail.com, philmd@linaro.org, Brian Cain Subject: [PATCH v5 16/28] target/hexagon: Add sysemu_ops, cpu_get_phys_page_debug() Date: Fri, 29 May 2026 14:57:54 -0700 Message-Id: <20260529215806.608770-17-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260529215806.608770-1-brian.cain@oss.qualcomm.com> References: <20260529215806.608770-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: AW1haW4tMjYwNTI5MDIxOSBTYWx0ZWRfX5uXUzPVQACaU lTBUKiXvFGE5h/rK9J7wHEV9BEACaJC48caGD/87LPhyeTqUfqE7AbgWSLaBkEzf4EuVj+YqqbH 5AV6CBU6XaCeTVvnEf5vEQr1rWg21paSlFtGbtHV+XHy7nBu010aKnJksmeb7s2qpwhUxXEVE57 iX4V5z2NDDe4dmyR+pticDcyzmSK5oMRrIuoBZhibPqV0omsg73OmBfDJEmeHJpV7d1jDr0b1Kp AuX4UqPyjQfDAY5tGa8ydOzhwDEtsiseccsK9hSepzO5Q8RWkbg98qLm/LWYXpcAl0GIbAasVC3 UwGAqNxWKqUh/M+Tpa0dgiSNy+GhRywKBgoLle9yIo73jI1hcrkOYhKYbYeZ99yRWK+f8VHimDy q0cJrsphdb5Bgh/4eeY/+n88neyXwLDr/vzsN2/c8pVzxkHQFsLduuzoCRfTRxcFwLHRXp4qHev U8LpnRod/cx40Vb+E0Q== X-Proofpoint-ORIG-GUID: rDlzsO8jJwFg1VpmCmbBAGR7Eh-x3LX8 X-Proofpoint-GUID: rDlzsO8jJwFg1VpmCmbBAGR7Eh-x3LX8 X-Authority-Analysis: v=2.4 cv=SKxykuvH c=1 sm=1 tr=0 ts=6a1a0c09 cx=c_pps a=Uww141gWH0fZj/3QKPojxA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA: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=fg0LxJQkbHe3Ved8Rg4A:9 a=QEXdDO2ut3YA:10 a=PxkB5W3o20Ba91AHUih5:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-05-29_06,2026-05-28_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 bulkscore=0 spamscore=0 adultscore=0 suspectscore=0 phishscore=0 malwarescore=0 clxscore=1015 priorityscore=1501 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605210000 definitions=main-2605290219 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1780092136359154100 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 a7f1a75a165..d7e4c8decbf 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" @@ -503,6 +505,24 @@ static void find_qemu_subpage(vaddr *addr, hwaddr *phy= s, uint64_t page_size) *phys +=3D offset; } =20 +static hwaddr hexagon_cpu_get_phys_addr_debug(CPUState *cs, vaddr addr) +{ + CPUHexagonState *env =3D cpu_env(cs); + hwaddr phys_addr; + int prot; + uint64_t page_size =3D 0; + int32_t excp =3D 0; + int mmu_idx =3D MMU_KERNEL_IDX; + + if (get_physical_address(env, &phys_addr, &prot, &page_size, &excp, + addr, 0, mmu_idx)) { + find_qemu_subpage(&addr, &phys_addr, page_size); + return phys_addr; + } + + return -1; +} + =20 #define INVALID_BADVA 0xbadabada =20 @@ -610,6 +630,13 @@ static bool hexagon_tlb_fill(CPUState *cs, vaddr addre= ss, int size, do_raise_exception(env, cs->exception_index, env->gpr[HEX_REG_PC], ret= addr); } =20 +#include "hw/core/sysemu-cpu-ops.h" + +static const struct SysemuCPUOps hexagon_sysemu_ops =3D { + .has_work =3D hexagon_cpu_has_work, + .get_phys_addr_debug =3D hexagon_cpu_get_phys_addr_debug, +}; + static bool hexagon_cpu_exec_interrupt(CPUState *cs, int interrupt_request) { CPUHexagonState *env =3D cpu_env(cs); @@ -652,6 +679,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 @@ -679,9 +708,12 @@ static void hexagon_cpu_class_init(ObjectClass *c, con= st void *data) cc->gdb_core_xml_file =3D "hexagon-core.xml"; cc->disas_set_info =3D hexagon_cpu_disas_set_info; #ifndef CONFIG_USER_ONLY + cc->sysemu_ops =3D &hexagon_sysemu_ops; dc->vmsd =3D &vmstate_hexagon_cpu; #endif +#ifdef CONFIG_TCG cc->tcg_ops =3D &hexagon_tcg_ops; +#endif } =20 static void hexagon_cpu_class_base_init(ObjectClass *c, const void *data) --=20 2.34.1 From nobody Sat May 30 17:44:14 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1780091982; cv=none; d=zohomail.com; s=zohoarc; b=A69mRYnlsl+i6MQ7tlsTe+qHgTfUp6QhBPEMUQr5hRrgretWO4l/tRpvoDzuxgmg3j10zrzfGbaDJTPlgiSqtpz9nShXsX4TdFS6E0Heh6QhMG8bAAH0AZODG8G3mCYg1GQZXPIaUj6LIC3F9coyLXyrU0R9QVIeYxiriMUTRrs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1780091982; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=2VNTg2hRB7sMnPAli+/93SbHw6Nr4/kM39xvLcXxGeA=; b=YfMVpSb7T2Zf++vvOEXRj8x68d/UwTRgOfcMUnMtciC5mq4JGDNcb9XrimcnVNry4ktVWcLP61tsUGrmMUmDtSPXIuVnMRQR6Rw1MF/WtMzISVgwopigJdw1lTf9ven/Rd/Twp1kamE+tJ0bUnETuLxODyCnUjiUD5YvOptRnGU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1780091981997466.6705860570935; Fri, 29 May 2026 14:59:41 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wT5Dz-0005Wt-O7; Fri, 29 May 2026 17:58: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 1wT5Dx-0005NU-Lp for qemu-devel@nongnu.org; Fri, 29 May 2026 17:58: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 1wT5Dv-0000vw-Uu for qemu-devel@nongnu.org; Fri, 29 May 2026 17:58: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 64TIQeRa877141 for ; Fri, 29 May 2026 21:58:34 GMT Received: from mail-dy1-f197.google.com (mail-dy1-f197.google.com [74.125.82.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4efg340ucp-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 29 May 2026 21:58:34 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-304e7fbfaf5so5110468eec.1 for ; Fri, 29 May 2026 14:58:34 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-304ed5a9d27sm2428313eec.25.2026.05.29.14.58.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 May 2026 14:58: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= 2VNTg2hRB7sMnPAli+/93SbHw6Nr4/kM39xvLcXxGeA=; b=K45NerKAIVVQovHX YFbqQNBLl+UgjGutm0XzZsDcbl4cSrFohHjy+cBhj6zSXdri6x1fG5wDay0w77K/ WAkiXTkqxC7mUXpId8MOgXC1+jW/LoOs0pH1PsibM9AgkhzgG7w+7eCAxerFszcb NjhR8PG6axLTTNya8SZi1Ag1ohiPEJL4NLKXCuxN2S6Y9Odg1EeTfYPODyv4MVuP /imQBJ3j9sPECKiAyCLfFSUuDlfXHxRJ4QCfSgyn72J+JmhU1TWFisFFN7d3caSC 4mDMHz9VmS1D7AEJiXBEhhuWO/qulJcFc3NWZkmfV/V4tiwV9poRuXndcASzivnL +3i+xQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1780091914; x=1780696714; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=2VNTg2hRB7sMnPAli+/93SbHw6Nr4/kM39xvLcXxGeA=; b=OEgiKO5/miAX2JwDGkgiaQ5HodWWetV2OghSQb6HTaKUUtR8cvznaf16/IDM7iLA5I CS6MSajkHB4OOazJf4NGJObk4qth+mfAOpqa735HVLJ+xVFdyU2ht+ZTzPdJURc0usg7 tcvZEo9fJCiQRyr5ekpuXAQksm282e87lxdfMOtlHpi+mrVc33owTBieRRHjgkcjU6OF GR7WalFBrjQM70vlU+VYBcj9MKbVoKYXb2u6chzBg3Nm8H0adxjKuYpDln/i812rHYYC N6g6w6rtC65Iup/Qghb6CBtCWY/W+0BCJxiDoBiwnwCoKiZrcwmSvR67LfNaIHpHP8hq 0oqQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780091914; x=1780696714; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=2VNTg2hRB7sMnPAli+/93SbHw6Nr4/kM39xvLcXxGeA=; b=a8Sr5OoCdWIqrERlOfGNdDBxckbd/dy+zqbhb4Q/ipKkLDm/R66emi8EqmglClMxx+ bwuo3i1/ubC2db+OwcFW5dx/+0iTKa2cB2GzkG4m0NbQkZwUFbAq9OjOeuAxnZXC/EJg kQyYXeVknpWGR7v/w0VlWgpNoGolvOCXAJe1o0Xw0YnSeZOwh5pW9++Or5fNLLvZlmWA rneDNZK4zD9klawQaHkxZR/QIo+Yt2xOZ6e+qn1oRIZjl9xVsBEf/GVGE7QlQABarArO 6huw5vjSwokhpfKxsv0WyzbJnOk7CdAMzku/5O/18mgW9kx3+Dw3rugZIsDoN2rin6nx dbNA== X-Gm-Message-State: AOJu0Yyr4bcsxhW2NYDwS4JvTCeF3Wo0AKvwDn7/7wRoGazkNPkRvT5X wR2jNzzOF3nEpea1pEHYyhEeAKXmTgKbrKh5ExkHGLN2GwGtHB9e7OrjhIVrTMa7w8B7SHUK8Gg wi2vT4fOJzp4qVdTrsI5eD/EcM85EAKuxjpFMz5BWxFFB2bYw8C2jPs447/P5DWxiZg== X-Gm-Gg: Acq92OFhxNRXFgc8f2ELthEyOgtHi/NvmdCJ5xzpjqJkSVp7SL1uBVM6BTazHhid/RB 5hSlzF/APlnGCm0MAixd6ImZ+mipgG6GA+TMc6W+sXjPaysGacotIDMOpRyXLOZFUYzKyauhwLg fgafuPCm4afRKRmOufyAwWn5O7o+fGcg/v3MN6ZcEmyRVXiZnX8JJCt6QQsjKCTFC+euxKnDLKp 8NZLcWJWb33YPxCBmfCHRK88Ju7JMs0WgRBTwIOHyh800Ml/s+dy7af+sJOMzX+Fml+V0en8x4a NFBKN2WKc0Z52BTM/YSbuP5LXMSg8wX7Pswm5g6bKuTWqnMWAofuz6N+/aj+hW1Z3KoKGGOXx0k +hnS7cM+aVCklDRe1cLO4IOvMF4z0c7tHphSYYuZUJALR0vTGct5lsrzZ+XuHjH4ao5zwVt0iiR IRFdd8 X-Received: by 2002:a05:7300:2313:b0:304:2af3:5ffa with SMTP id 5a478bee46e88-304fa5a949cmr907641eec.19.1780091913930; Fri, 29 May 2026 14:58:33 -0700 (PDT) X-Received: by 2002:a05:7300:2313:b0:304:2af3:5ffa with SMTP id 5a478bee46e88-304fa5a949cmr907623eec.19.1780091913450; Fri, 29 May 2026 14:58:33 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, matheus.bernardino@oss.qualcomm.com, pierrick.bouvier@oss.qualcomm.com, ltaylorsimpson@gmail.com, philmd@linaro.org, Brian Cain Subject: [PATCH v5 17/28] target/hexagon: extend hexagon_cpu_mmu_index() for sysemu Date: Fri, 29 May 2026 14:57:55 -0700 Message-Id: <20260529215806.608770-18-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260529215806.608770-1-brian.cain@oss.qualcomm.com> References: <20260529215806.608770-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: yql68BEHmGVvNLAcZfWfPhq9hL0p9T5u X-Authority-Analysis: v=2.4 cv=EOI2FVZC c=1 sm=1 tr=0 ts=6a1a0c0a cx=c_pps a=Uww141gWH0fZj/3QKPojxA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=DJpcGTmdVt4CTyJn9g5Z:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=hUoHZ09r4jABJgGRQWAA:9 a=QEXdDO2ut3YA:10 a=PxkB5W3o20Ba91AHUih5:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-GUID: yql68BEHmGVvNLAcZfWfPhq9hL0p9T5u X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTI5MDIxOSBTYWx0ZWRfX6MrpVsH4KIh6 2HmA9G7R9tTf4YXHTOBEbrlI4Q87xlLas6u2HvVTPpJ+7NrvkHFDDJw6cd4rSKQPd/WRwI6n7Gz NOWN7/1iV3RQJppTTVR/IR6iBTQf/9z/v0hnRNkb0iuNrvgfatsRMiRrHaZECdQeWsa0o+Z7dDg gwqSaqir3kAOLinVitfdTO8aMby6RGLy6vLnU+3Fq1zj5R6Wyol7dWdNZdHqgGEhOKskl4ASi1z G62VYJPMHmJTCrAn3AsPvSJq30Mo1VqK8vfPj8VbSxaF1uhGntD21FaYLFynBAuUuHNLHIXE+JV 1yhc3ueGUs1H+tLg9qD1h5Kgq78n8HAxRnm3FktEc7D8woVysLn0frVTjmmPDVCFF6crG70/ggH qoJz0Nuir+uKuqaO246muRMRzgv17iE8H+g5IFwuBT97xYTM3UGIYhzsw0v7r78Do3yTjjM3G28 xBvznZF5cDjitHu/MtQ== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-05-29_06,2026-05-28_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 impostorscore=0 spamscore=0 phishscore=0 bulkscore=0 suspectscore=0 clxscore=1015 malwarescore=0 lowpriorityscore=0 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605210000 definitions=main-2605290219 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1780091983830154100 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 d7e4c8decbf..4bffda03f8c 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -446,6 +446,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 May 30 17:44:14 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1780092139; cv=none; d=zohomail.com; s=zohoarc; b=btB3cEyMKAHpmNP3fWN0bN9UgwCs19gRNnUZQykkpgoJfPmB4Ri6sUXIkvC400WgkyD3ErlriWSb16Rs/z4zfyiCDMFitCwd/a9G7lK4vPc5b/PsJYED76ZrVfx238vP1hijPutNqYprc2dwCiYB+LPbAz5ntxzgP5dkW/hR9/M= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1780092139; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=5GZH4T2axovWb5Y5+QKnZG26Gi/4A1GoNVSURLdkpAQ=; b=FW10pwnTbZcnGrrv7yl7QoGWpfQ+j2oXrFJ0UBat44yrin6RE7YMZqas1gbG2c92EJViQYneeh+WgMADloa5wCXGMk2W+v/jAofhIZV2S3j252sacRaXhlx4Kg/GG3LCvzxdNHiKgqEnubvq/J45CygFjxYUDgoBjZoF/C2ePU4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1780092139002498.1162781430702; Fri, 29 May 2026 15:02:19 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wT5E1-0005dZ-EA; Fri, 29 May 2026 17:58: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 1wT5Dy-0005TF-Q9 for qemu-devel@nongnu.org; Fri, 29 May 2026 17:58:38 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wT5Dx-0000w9-7Y for qemu-devel@nongnu.org; Fri, 29 May 2026 17:58:38 -0400 Received: from pps.filterd (m0279867.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64TI2I7n589642 for ; Fri, 29 May 2026 21:58:36 GMT Received: from mail-dy1-f199.google.com (mail-dy1-f199.google.com [74.125.82.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ef8rckbx0-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 29 May 2026 21:58:35 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-304e3e3fba5so6174588eec.0 for ; Fri, 29 May 2026 14:58:35 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-304ed5a9d27sm2428313eec.25.2026.05.29.14.58.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 May 2026 14:58: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= 5GZH4T2axovWb5Y5+QKnZG26Gi/4A1GoNVSURLdkpAQ=; b=D4DbVAH53YkRgM6V lTiiouNr6ooBmWLijOPWnyL4K43+t6m0fEcc95dvYPeEGwI9SzaaeR/Bsv3sUwHc 60AAsw30WwLaJSwN5zTkYgyP0LZ1W71OWBVT5+4tUOQjZN7H4aluMwWV5SxnPO9f vK2IGzM3bH4CnMscbkLItfCoyk5WBhXcPRZxrOvPdKevcvtZGLRRPYiNwJk/b9FY phwQRuI2K3yXXfQ/my2wDCr3E8XlYjMzBk2bHTafZmuxu4AxPBV/ExOePTtl6Vnf 5eiBqlrdAYN+kjZW8T31BSYR5yXvMp3/z53sevV46KQBDp9Rfm+BHDhE52Lpy9rP ymSnqQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1780091915; x=1780696715; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=5GZH4T2axovWb5Y5+QKnZG26Gi/4A1GoNVSURLdkpAQ=; b=h4JWI1/SAW5A9vJgrzCIAgSN8v151xtoupz004xf6vwjpgj25PmoEonKajv5kyPkS6 NK8Qs6WP3il6RePTkowlEhud1bGzeHuCYmwBT5bIDdUFwGvCZPLFLiAknMPp3NSSVw/W XEk2YSbF+LksobiUwJnmH2f1kjEzDkmiR4J92Mg2AlNUDI2FnXHWsKNRi2+3Mp+LuUXa iwdygp1KgtX7hFV0RMYRpJVJmsfAJLmJ/WpScL2MJM8t9txWoagirSqdvGFczOpcbdRj 1Bc+YRuar5Xg6FF1GWmLHngZ4iGe/E8+ej2Qxf6v51qfd2+OjnC/lfynxnJaT2OpBtmR /SBA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780091915; x=1780696715; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=5GZH4T2axovWb5Y5+QKnZG26Gi/4A1GoNVSURLdkpAQ=; b=mcWAzDAzZt2PrsRP+nS7aNIFkPu4fV+Vq3hqN4D3eZZbIsEFTpiTtwYMD5+ETESqex NEWKj/WiUZlXnb0QCnWOy2wriK2Vub99FKoOEOak4JV1XcqrwgiiAYTEIecNFXoBkX5g y36zCId1WiihppJDHiDJoyQjLwKH4eMw5IM+Ph/8OBk5fSOiMuC95ESdpPCK/lbj/glp xMbgGwB0bUQ8CMdzy++aacEO7A6hsRfm9JApI4Eob6TmHRkPnzdYVVxmQs2JrsftKr/g M1jOpixiJfBgYPmzYUWGNueavjCXbhN0NbohUhnyQAkk2fDbfPOqQu41mhmyfxFG6+Qz hT6A== X-Gm-Message-State: AOJu0YziB9YwSUvjdlBIIOtdbVm7VmOzfw9I4BRS6aWvMk2Oc3gaFG20 W/oC6Q9Ro0FxT3B17QLGOdTsyMFu8vYhkH1EhqQv2WDWlh7oRTazrEL7FsQXXssXkqYqM9mgVqS voXL9W9ntsx+GvYD/U69W3A5mq94sg66bRWIb7vlE+cabSnwsc0V8DOtVS2Ob2L3IoA== X-Gm-Gg: Acq92OEZSj4qEpUjgyhY50wRUvqFradKw1FYtA7JftBKCl02NtfuqgZd7S1fXB00Eu/ t21l9Z1GI8057O7m1Ojp27XlfDJ6guajhgp+Uqx339hw4rmijpDq8J4u+k5YpQRhuBhTN+Jy+b2 mEn3d/nSfv+OLzkYe1XdORVx/2rTkk12EyS34SXMlF5oCVaJRrwt3UYk7m6B/NOvbhgtNzBnDWh pOto4bs+izJ1KJjyKpdEK9L7CLrirEYTpca5fZJ4Amlpx54NAC8R02siCvBt017cBMwGDKN3KBU bLe7N1qcIP8ksgHG+OV0FapZrLbV7Rwp1aglUSfotDdRemRDMbURJOzFDjvqAFv127+S5D81a2k 4BTAoUvwiFnSsRTVmajWkQ8qsthNMk+G2WsiXhrCtZHWymM6yTqglMCCA7TQl+W9R5t6RnumpYL JAusaq X-Received: by 2002:a05:7300:5726:b0:304:8366:9fb6 with SMTP id 5a478bee46e88-304fa5232d8mr926278eec.2.1780091915200; Fri, 29 May 2026 14:58:35 -0700 (PDT) X-Received: by 2002:a05:7300:5726:b0:304:8366:9fb6 with SMTP id 5a478bee46e88-304fa5232d8mr926262eec.2.1780091914664; Fri, 29 May 2026 14:58:34 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, matheus.bernardino@oss.qualcomm.com, pierrick.bouvier@oss.qualcomm.com, ltaylorsimpson@gmail.com, philmd@linaro.org, Brian Cain Subject: [PATCH v5 18/28] target/hexagon: Decode trap1, rte as COF Date: Fri, 29 May 2026 14:57:56 -0700 Message-Id: <20260529215806.608770-19-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260529215806.608770-1-brian.cain@oss.qualcomm.com> References: <20260529215806.608770-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Proofpoint-GUID: kuMfyItvqZhNOTO1t00D6TR-NH9tagZu X-Proofpoint-ORIG-GUID: kuMfyItvqZhNOTO1t00D6TR-NH9tagZu X-Authority-Analysis: v=2.4 cv=DuNmPm/+ c=1 sm=1 tr=0 ts=6a1a0c0b cx=c_pps a=cFYjgdjTJScbgFmBucgdfQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA: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=oDs3gbQtVgqjpHJ5GUgA:9 a=QEXdDO2ut3YA:10 a=scEy_gLbYbu1JhEsrz4S:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTI5MDIxOSBTYWx0ZWRfX3y2lyGCIgntk ph9JwGexLEYPQKMq5zaGWY5oE8f6MWKfUFjRVpvkb4VwR4Bh1iL2MGTCyFHRgx9Zz7o8k8AASgx k40r/iQzMuVDbbzJ2OktHkYgAOxA2POPFI+Ci2Fp2yIbDHAO8DJ6H0wqX1YCmQfFVvx94Bg04UX xmF2LdnFGQTqUtTCCxS2kuOmuIrKQBPv52xmHM3y9B/s7lRMHSDYNBcpCT+dAdiCAc4pW0nG+zA fTBUXrGhIZKYhB1/FiTmNQfkYm3FNWXUplbvZVDW3eSpgmssyIKzx8X2uPB9LadC2a9mMC491iU fRzCGY57A5VaMpKIWO5dHLIe1vGYGFH3IdpgiYLoNmrc8HnsUNFzb+N346rxT4S/boy9mREjvDP jMwmNztLwv3ZW4EP5tMfp8OXSs7xRaeoa7d85IFO2XfaBbsQEgFwbE7/9blT9fuVzCG7ECCcZ49 aMWqogQXwyZ/ginu70g== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-05-29_06,2026-05-28_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 adultscore=0 impostorscore=0 clxscore=1015 priorityscore=1501 lowpriorityscore=0 suspectscore=0 malwarescore=0 phishscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605210000 definitions=main-2605290219 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1780092139283158500 From: Brian Cain Also: handle rte instructions at the end of the packet. Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/decode.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/target/hexagon/decode.c b/target/hexagon/decode.c index 15954518b83..6eddcca26ed 100644 --- a/target/hexagon/decode.c +++ b/target/hexagon/decode.c @@ -185,6 +185,8 @@ static bool decode_opcode_can_jump(int opcode) if ((GET_ATTRIB(opcode, A_JUMP)) || (GET_ATTRIB(opcode, A_CALL)) || (opcode =3D=3D J2_trap0) || + (opcode =3D=3D J2_trap1) || + (opcode =3D=3D J2_rte) || (opcode =3D=3D J2_pause)) { /* Exception to A_JUMP attribute */ if (opcode =3D=3D J4_hintjumpr) { @@ -363,6 +365,18 @@ static void decode_shuffle_for_execution(Packet *packe= t) break; } } + /* + * And at the very very very end, move any RTE's, since they update + * user/supervisor mode. + */ +#if !defined(CONFIG_USER_ONLY) + for (i =3D 0; i < last_insn; i++) { + if (packet->insn[i].opcode =3D=3D J2_rte) { + decode_send_insn_to(packet, i, last_insn); + break; + } + } +#endif } =20 static void --=20 2.34.1 From nobody Sat May 30 17:44:14 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1780092166; cv=none; d=zohomail.com; s=zohoarc; b=HHZjUVl1uQ9TFiQjhI8yukhSuJQRbQAzKBWLzCDsIuQGCB9i46wjfsR05p2/PEwLfMRTJ2iIsdxf09hokWPG4CEfeFywIdEPvo9hu7/+KavVEFBOtYFdc/1UhVn3DVnUWyEwz4654Mh4mqLagTChMKTx92DKsfj13GfuWYAx0Hs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1780092166; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=uA/ZdyibhVq3w7u6SVL95n2qojKuqLFxM6O/1uzo4Aw=; b=GUFAY99CfCbfXZaY/p/dQonC64klAhln/Wu+xYRg4BdCWZHJKLY6H5H8j2pAAlCezS3jDun3JeabPT41KFwJk6dN1FNw1mJBGt0TtgeCKSk15vpmxt/qXPJtEmErMv37LobeQUgXH4G8pPgziOUUZTzewE1qPyPo7d9LxsdvnJ8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1780092166474545.9621657087054; Fri, 29 May 2026 15:02:46 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wT5E0-0005bs-Vb; Fri, 29 May 2026 17:58: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 1wT5E0-0005Yg-0o for qemu-devel@nongnu.org; Fri, 29 May 2026 17:58: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 1wT5Dy-0000wE-Ch for qemu-devel@nongnu.org; Fri, 29 May 2026 17:58:39 -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 64TI2OmR1862753 for ; Fri, 29 May 2026 21:58:37 GMT Received: from mail-dy1-f199.google.com (mail-dy1-f199.google.com [74.125.82.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ef3te4pj4-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 29 May 2026 21:58:36 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-304dd917645so2001621eec.1 for ; Fri, 29 May 2026 14:58:36 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-304ed5a9d27sm2428313eec.25.2026.05.29.14.58.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 May 2026 14:58: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= uA/ZdyibhVq3w7u6SVL95n2qojKuqLFxM6O/1uzo4Aw=; b=F9F4WqFculFsoM4C vkLglMH9jYSOLfkKxBX9SRO8Itl3Wg4wbhmxW4U90v14LNDlgdmBVAt2l+OwGVNQ plkeEfVfIZw6jtOCbk8Mkdf31c6PW4vMvNjaV8/QqiGRGr/648q1THCggXXwNkbp MSrPz54PI68ayUt6DQ7M/dask8eKwi6/359qk2DBi6UqBIuT57ql904zn7+tTGO3 4RF4cVpuAtpr5cXdLz/nTYWay/kypq3XpyLKBbUq7yEnloagZs1yPA/GRHfzQstB /rwNDt5MsAEAWZWX8FaOY42Gvu2e8CB0XK6p0VvplFx1/LBYQLBwa0kjf6qqoISE xN7ZUw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1780091916; x=1780696716; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=uA/ZdyibhVq3w7u6SVL95n2qojKuqLFxM6O/1uzo4Aw=; b=Ol3lEoNRjpa4u8hloZ9oSoxSNZTBo0O18+TG6SYibpCgiC2Ud61EE6cnhPF3b7UvSH aWLfdTiT04Y0ABJX4GmOwSqBq8RHZ8nlE9UcmDXMsoIXlQWAmwjIxAq5BFiuo6et4/91 OVhBKhw4n9x7OCgwsV2WR7pwUxMUbdjAc9TE5RV8XNTVPASYwuVbVXERgHUjfJ2ZyTt4 W6l8DC210Qq/Qql6Yp4SZeOHovJxRt+Aznd8yRCQ6HGhhNvq365a9/ElMtVO7pmx0I8H xjyDbhY1epg6BnklYyz+GobW37gSgoQy5WKM5flPQYNhgI/DrxhosLsW3lJ3+nzvgQ4R CXKw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780091916; x=1780696716; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=uA/ZdyibhVq3w7u6SVL95n2qojKuqLFxM6O/1uzo4Aw=; b=HhjSkkovzpo5B6p6KKj+oZSXEz2LSMfTpeFx9IJsesEs1Wgour3PvNq6vG85a7myJ+ bQV6K1L7OWudch0LcSbDRI0f3uVA2NWMUX2DfUoAUo5AS5paF554TuRNHVfi0KAufv9T sU3x+2IvLpvD6/KHISqxdDQuz02MIQQzbNm+8Is6W0KqREkq1jzV53dDX+FdDF0vqjwG xPb+F4sUzbZlEx+rlj55vNJzSyo6cn1iRwtfaGMT9VqE0cTJs8sB0ZNgGxk0e/MsbFWI Zgk6xOF8LohOtfotlhCLHim4dF/KM+cYoObHfuTGpiNbB+E/yq7f+P8dZw32+u5ZQjxR JtHA== X-Gm-Message-State: AOJu0YwSSKtRwRfSOwLU48L057Jg4m+W5HqnjT/ZrpAv6mzcMTw+qfJV NQN08JFIyLFM43q/ybgBTYHYB79miWR5kLuaB9EyGWryvL4cK9vIwopyC/ga1LzokNdCkRdTeKv UF2Ksrgc+zjIx9eOP7ITc9UZNpFIHUnjKgwavuYD7hkhhrfX57TEuGyAQESYp2XPpdw== X-Gm-Gg: Acq92OFtfxoFKPNRuLxbQSu3QZOiLW1hsKSCuhQ8XgsW+O64dUYuFSjO1k/iAv6tNKt 31n3ikl/3Pe4MABTF0XPCbiI0WGeHwMnIdkHuGjfTH6/EolqIe6c6WDhaqW+y0kwlB/XioUNMz0 X+jRjXnYheIQheUsCzCnAhORUbxjNP3bjrW+9UrzehSir5hoTtFlDPRpafoWIC7NjPyJGcrShwZ b/d9/lJC8WYwDKsLwRNplr/VtbgyhQYX5yGAPwmGF+dBVF7ppFaZpwQF1UXX6pHjEZtxKrm9A/7 qqYEnNtkzFHQTE0Pk9t1lkwGq/w7+1Yrx1CSBqLl1AwRaw5N2T/GKg6Ryk+zRVKh9idI8p2O+dQ O4xjc8xD8/0zJOTsHgpa/u94XJBxAvXXdXzPQ0PZysmu+rfX4ltoYCCVKCh2gKoutuni89fTMQ9 F5Ix+/ X-Received: by 2002:a05:7301:1f06:b0:304:8881:b82 with SMTP id 5a478bee46e88-304fa4cf1fdmr823953eec.1.1780091916354; Fri, 29 May 2026 14:58:36 -0700 (PDT) X-Received: by 2002:a05:7301:1f06:b0:304:8881:b82 with SMTP id 5a478bee46e88-304fa4cf1fdmr823938eec.1.1780091915874; Fri, 29 May 2026 14:58:35 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, matheus.bernardino@oss.qualcomm.com, pierrick.bouvier@oss.qualcomm.com, ltaylorsimpson@gmail.com, philmd@linaro.org, Brian Cain Subject: [PATCH v5 19/28] target/hexagon: Implement modify_ssr, resched, pending_interrupt Date: Fri, 29 May 2026 14:57:57 -0700 Message-Id: <20260529215806.608770-20-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260529215806.608770-1-brian.cain@oss.qualcomm.com> References: <20260529215806.608770-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: 1FMNDC5RQGiog-vDakbNQ5cK2BW4WgLv X-Proofpoint-GUID: 1FMNDC5RQGiog-vDakbNQ5cK2BW4WgLv X-Authority-Analysis: v=2.4 cv=daSwG3Xe c=1 sm=1 tr=0 ts=6a1a0c0d cx=c_pps a=cFYjgdjTJScbgFmBucgdfQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_K5XuSEh1TEqbUxoQ0s3:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=w_Ktf-yQGdqK2aTfpWsA:9 a=QEXdDO2ut3YA:10 a=scEy_gLbYbu1JhEsrz4S:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTI5MDIxOSBTYWx0ZWRfX4J7DUanBmf5A ZEINaK2Ps2VcB17uvEqZBYi+tFHRyN4y+CI4AT48p/Tz8WWhO/QIuGyiycrD1m4LBJywPmrFwn9 iE9fEYIry4qVxIdXVOHzxi78V68lj9MxrBY/DYCjnrLWJM8fJRBR2Kw6OWIsJDl9Qe2lOEpZHqR QJ1KOooilmb1oduVMNxWMnXXYbzfM/RAx8l3CKmnlpA+HZdEcIfD39nSCOqV1OZE8Tw8AcLjEpV 8hDyqOAxjJ60xcKRX2RM9JCFLyKQ0SnoJnFtay2nH6L5pZ2J+5ROwSjmjpKlvWZsplJlDDbMfip ho3R4136GvvocxkMAmNc0+g2nfyc9yVo/LOfQK7dsmvGjVnEQRhpf7dqiWEag+Na0cBkTUJFcF3 z2u5sDLka4sViKLjWaOINXniniW1mMtFwFSoZc7I0QuHjb0piAuPnNJdOL23nOSmuqkAWUr5c8h 5sWNzzcFe/vJiHC1F6A== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-05-29_06,2026-05-28_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 bulkscore=0 priorityscore=1501 impostorscore=0 suspectscore=0 clxscore=1015 spamscore=0 phishscore=0 lowpriorityscore=0 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605210000 definitions=main-2605290219 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1780092168837154100 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 82062a2f802..9d9b1d37834 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 May 30 17:44:14 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1780092113; cv=none; d=zohomail.com; s=zohoarc; b=IHvS4EIoi5KtWu7bmVl025TPgd9ge+KAMRh2FBRZMJjyQHdxgyIOlK3iCY3VP1KKz0BM62tIAtZs+8jK00/KL9cYc2sUMbsNGTv17zZIrL5Nacr18RhW1lIvlRAO+X1ag+DfCswisrJG7h/tQrI8bfWoMsjxuzEUDUliTAwTmUE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1780092113; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=DwmtLwNQ586yD7zGJVwVTp7uqi8JKqPltGIMKxadn6Y=; b=NTmiyzsb+rywqaxhYQspgNyArmUG9SxombNylE46QBdGF1rSj3R9SF7OZQZfUNfc92iyB+U+UNX4bx8ncvJBR9dM4n+DYFgyUpX2l/OkVyZau8XvJgizxCMLYc9lQVl0rWylTiPIbfPzetfMZ9Li3r+sW2F/OuTIjxQE1hnacBA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1780092113260280.81318344028944; Fri, 29 May 2026 15:01:53 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wT5ET-0006FV-Qu; Fri, 29 May 2026 17:59: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 1wT5EB-0005vJ-Jm for qemu-devel@nongnu.org; Fri, 29 May 2026 17:58:53 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wT5E9-0000wh-SC for qemu-devel@nongnu.org; Fri, 29 May 2026 17:58:51 -0400 Received: from pps.filterd (m0279866.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64TJZtNw4123960 for ; Fri, 29 May 2026 21:58:38 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 4efh3n8g3p-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 29 May 2026 21:58:38 +0000 (GMT) Received: by mail-dy1-f200.google.com with SMTP id 5a478bee46e88-304ec73b015so971235eec.1 for ; Fri, 29 May 2026 14:58:38 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-304ed5a9d27sm2428313eec.25.2026.05.29.14.58.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 May 2026 14:58: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= DwmtLwNQ586yD7zGJVwVTp7uqi8JKqPltGIMKxadn6Y=; b=EKM0CGHDYMKAFMbd x9hs+tRaldkLcAt8cz4BKozGSWEw7m6M4bJaC1B+rokfrShEcfdYhG7oEAMRJZyn 92Fh7IAOM7p4Ec1IAfmDAWbfwirIE+Sh3x91OOVyS/GAFlTwUyZbmXjNa25AzChh QRF1WOgqcNFllFOF48ZA9wKX3lgwvZuCERfsE+ceF+d6RFhxhtq6/Ty5dGTlfrFJ 4vawvgmkQBhBNNLfNAvSLFQYg6UuvKJLGFP+te03rfoBC6aKabTs5qyXtdB/jq5Z rMD3882Bv5zzPkZu65PLAL4eAQ4Q0cCaKsX/aHaGlmJGkUvAPG3o8U9l+zXG8rJ1 gQ8hVA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1780091918; x=1780696718; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=DwmtLwNQ586yD7zGJVwVTp7uqi8JKqPltGIMKxadn6Y=; b=Wjf5opha0BR9HO+4kW0qMYui4Yx94kHKNo1g17Ae5qqn0QjtS6m0QyURsDmoO1mx6R fDozQpWkfNbuIMt+QN1mJ/+koJB0nG99wY6zqmYEErjOagEAJBt3RY+N8/RvSHORpdnI 0cTZlae1ILYpf2sp6n+4ytKRPDbF2j8st6+H/UDwgT5T/VpX4l+WlEUFdVL++0GuzL7s djR6ISPzfbsdX2IhKlpN7znWBlGSNgbZfmuD3ew6NEwYSgLHRYQIfDA4OlF9PzWsV76q wwmr535UBRejCUuIjzAdS+1bxIjbfbsFzs3S0mIHZTDFDKZzUnxwWZqP/o/h3Q16G6uQ +y7g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780091918; x=1780696718; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=DwmtLwNQ586yD7zGJVwVTp7uqi8JKqPltGIMKxadn6Y=; b=jiW4IWyEOIFimSJPXuleW6BQ7nLgWzvza5vC8eN/zgR7+hkB81JYKqUmOZanOvWEFi n9+KzjgBr2gt69TarnP1HrytRwrVV/SE15ZtOX2bTdEbJj+cOmoPTbDRXJU8mN6cD950 gNCLcgqlt+8VVLF7v7gPBq+17QYHIiJ86I3LIiuz5yKtCP791PXcJF0gn+HMmUK+JGCk rM11KYtqHVCJd/NUBg/mr3zdsBs88L5LDH0qkJygriaPGVC0aCYGV+CJW48ZCGhx+h4t SHIHHaMwgfhGzERXKShZx4RrhH/vh3Gx59DqnIyleqvnDMfYuv5g/ZWLNLY9m3sHmW51 pPRA== X-Gm-Message-State: AOJu0YzYr+HyXdEPqH0G01JtUgUzL1GFYPaDdQPGLAyDkM+8ZcwTcuzy S24ezdE2uecSuqAD/G59e031v5sYtItmB2X6mud/rvUfHBZicBg5+dt2K1eCfz1EBH5tPUfif2N kFgpe8PGl0f0W9PSZNWM+zbU96nV7TGoCGUTlbHOrP2YZhb/rov6CLYDHJq+zdAHIXQ== X-Gm-Gg: Acq92OG9vhju//RhkkTYX1kEbW8Frhmg8LyD+yeM/KsgiEY/ahkOnr8WeoQ45JlYRQP WjwyU/UEfOdMV1oht+DjoLxIfyVIXDsK6M/tXHocGkPEfOpNAo8wrzrxUDu4VfQCzHqExBCrpAk 7x5COnnWYAdmSa4tkBpH4XUYjE1tPfk6eOPypDbala9o9DHNmfxuoLwgBt+tJYMSLlXeT6eSW0O 1xjESiKctUV7S64FBfhqy3Nxam4Rl4Axg4L3dlAususl3AmGUhv1EcTkaL7y2m0VScShzlL8Zq8 7elFAt+//pdA4fgmE1pcAOYN0y76wNde17KxwHu9tUc8kKY47888IVVOVQwUA4HPBweTvYAbdvn Wc/4fF6tRgzcWFlbysVFqv/G1UWZWPh/rV86JWn6JDzeZK7Y6R+YAmOfPbNuuf67Xsn2g0lbmf1 ydYRWf X-Received: by 2002:a05:7300:7fa4:b0:304:c520:4e0c with SMTP id 5a478bee46e88-304fa4a97ecmr876199eec.6.1780091917706; Fri, 29 May 2026 14:58:37 -0700 (PDT) X-Received: by 2002:a05:7300:7fa4:b0:304:c520:4e0c with SMTP id 5a478bee46e88-304fa4a97ecmr876188eec.6.1780091917221; Fri, 29 May 2026 14:58:37 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, matheus.bernardino@oss.qualcomm.com, pierrick.bouvier@oss.qualcomm.com, ltaylorsimpson@gmail.com, philmd@linaro.org, Brian Cain Subject: [PATCH v5 20/28] target/hexagon: Add pkt_ends_tb to translation Date: Fri, 29 May 2026 14:57:58 -0700 Message-Id: <20260529215806.608770-21-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260529215806.608770-1-brian.cain@oss.qualcomm.com> References: <20260529215806.608770-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=RcCgzVtv c=1 sm=1 tr=0 ts=6a1a0c0e cx=c_pps a=PfFC4Oe2JQzmKTvty2cRDw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA: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=PUAfe4L2FItr89aHCx8A:9 a=QEXdDO2ut3YA:10 a=6Ab_bkdmUrQuMsNx7PHu:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTI5MDIxOSBTYWx0ZWRfX4Ub4jaauY4WG 12ED5XWAkrWW+BDwAGFnAR0xO/T9D6YKmad4Nv9e7fOfm0mcUBPjIpr7Snf5ehNyQJfsbEdA1TT zCRK6WjpawLrv/Ez2lZYJKJ7OSVWQPnQDR0FKCLXylL8MduwNsuZIe7dGuWNZiU9t1gOiu71DMV B5+AXleGTD6tNQMInw/DU7UhtmdA/gVQy6zkKqBZB9CymjBy80/3eGjjOIcvum1sLrZ2zdCp4TC m10U6Kn7L4UAxymcNaRVfJtLUgT/nswyQm2HJL3Ahzygz1rURM/nmdmxBfRjBDrDEcsuVZXR4jw UxAjh3yUJuximuwBNKx9dPP8C/KXxIamPr7yzMPH4yxQAjYhrXma7dWxYghC/xqVzmngbo6QpAB jKFtOjojq2PeUt7jGcyEks06SO4hrlkR+dgqvykDiUJPDdDQN5P+1dfY8u5XA2AQ2szoNbw2ZuC Hm6QkgWZbG3QlRdg6Nw== X-Proofpoint-ORIG-GUID: tJcHGemA_4jpQBFiS7Pa1z5QsSfBWK9- X-Proofpoint-GUID: tJcHGemA_4jpQBFiS7Pa1z5QsSfBWK9- X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-05-29_06,2026-05-28_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 malwarescore=0 lowpriorityscore=0 suspectscore=0 phishscore=0 bulkscore=0 adultscore=0 clxscore=1015 impostorscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605210000 definitions=main-2605290219 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1780092116101154100 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/translate.h | 1 - target/hexagon/translate.c | 102 ++++++++++++++++++++++++++++++++++++- 2 files changed, 100 insertions(+), 3 deletions(-) diff --git a/target/hexagon/translate.h b/target/hexagon/translate.h index f79bdedd7b6..fea88cb2db7 100644 --- a/target/hexagon/translate.h +++ b/target/hexagon/translate.h @@ -86,7 +86,6 @@ typedef struct DisasContext { TCGv branch_taken; TCGv dczero_addr; bool pcycle_enabled; - bool pkt_ends_tb; uint32_t num_cycles; } DisasContext; =20 diff --git a/target/hexagon/translate.c b/target/hexagon/translate.c index ce5bbe92d5d..35e90362880 100644 --- a/target/hexagon/translate.c +++ b/target/hexagon/translate.c @@ -270,6 +270,16 @@ static bool check_for_attrib(Packet *pkt, int attrib) return false; } =20 +static bool check_for_opcode(Packet *pkt, uint16_t opcode) +{ + for (int i =3D 0; i < pkt->num_insns; i++) { + if (pkt->insn[i].opcode =3D=3D opcode) { + return true; + } + } + return false; +} + static bool need_slot_cancelled(Packet *pkt) { /* We only need slot_cancelled for conditional store instructions */ @@ -283,6 +293,90 @@ static bool need_slot_cancelled(Packet *pkt) return false; } =20 +#ifndef CONFIG_USER_ONLY +static bool sreg_write_ends_tb(int reg_num) +{ + return reg_num =3D=3D HEX_SREG_SSR || + reg_num =3D=3D HEX_SREG_STID || + reg_num =3D=3D HEX_SREG_IMASK || + reg_num =3D=3D HEX_SREG_IPENDAD || + reg_num =3D=3D HEX_SREG_BESTWAIT || + reg_num =3D=3D HEX_SREG_SCHEDCFG; +} + +static bool has_sreg_write_ends_tb(Packet const *pkt) +{ + for (int i =3D 0; i < pkt->num_insns; i++) { + Insn const *insn =3D &pkt->insn[i]; + uint16_t opcode =3D insn->opcode; + if (opcode =3D=3D Y2_tfrsrcr) { + /* Write to a single sreg */ + int reg_num =3D insn->regno[0]; + if (sreg_write_ends_tb(reg_num)) { + return true; + } + } else if (opcode =3D=3D Y4_tfrspcp) { + /* Write to a sreg pair */ + int reg_num =3D insn->regno[0]; + if (sreg_write_ends_tb(reg_num)) { + return true; + } + if (sreg_write_ends_tb(reg_num + 1)) { + return true; + } + } + } + return false; +} +#endif + +static bool pkt_ends_tb(Packet *pkt) +{ + if (pkt->pkt_has_cof) { + return true; + } +#ifndef CONFIG_USER_ONLY + /* System mode instructions that end TLB */ + if (check_for_opcode(pkt, Y2_swi) || + check_for_opcode(pkt, Y2_cswi) || + check_for_opcode(pkt, Y2_ciad) || + check_for_opcode(pkt, Y4_siad) || + check_for_opcode(pkt, Y2_wait) || + check_for_opcode(pkt, Y2_resume) || + check_for_opcode(pkt, Y2_iassignw) || + check_for_opcode(pkt, Y2_setimask) || + check_for_opcode(pkt, Y4_nmi) || + check_for_opcode(pkt, Y2_setprio) || + check_for_opcode(pkt, Y2_start) || + check_for_opcode(pkt, Y2_stop) || + check_for_opcode(pkt, Y2_k0lock) || + check_for_opcode(pkt, Y2_k0unlock) || + check_for_opcode(pkt, Y2_tlblock) || + check_for_opcode(pkt, Y2_tlbunlock) || + check_for_opcode(pkt, Y2_break) || + check_for_opcode(pkt, Y2_isync) || + check_for_opcode(pkt, Y2_syncht) || + check_for_opcode(pkt, Y2_tlbp) || + check_for_opcode(pkt, Y2_tlbw) || + check_for_opcode(pkt, Y5_ctlbw) || + check_for_opcode(pkt, Y5_tlbasidi)) { + return true; + } + + /* + * Check for sreg writes that would end the TB + */ + if (check_for_attrib(pkt, A_IMPLICIT_WRITES_SSR)) { + return true; + } + if (has_sreg_write_ends_tb(pkt)) { + return true; + } +#endif + return false; +} + + static bool need_next_PC(DisasContext *ctx) { /* Check for conditional control flow or HW loop end */ @@ -439,7 +533,11 @@ static void analyze_packet(DisasContext *ctx) =20 static void gen_start_packet(DisasContext *ctx) { - target_ulong next_PC =3D ctx->base.pc_next + ctx->pkt.encod_pkt_size_i= n_bytes; + Packet *pkt =3D &ctx->pkt; + target_ulong next_PC =3D (check_for_opcode(pkt, Y2_k0lock) || + check_for_opcode(pkt, Y2_tlblock)) ? + ctx->base.pc_next : + ctx->base.pc_next + pkt->encod_pkt_size_in_= bytes; int i; =20 /* Clear out the disassembly context */ @@ -944,7 +1042,7 @@ static void gen_commit_packet(DisasContext *ctx) ctx->pkt.vhist_insn->generate(ctx); } =20 - if (ctx->pkt.pkt_has_cof) { + if (pkt_ends_tb(&ctx->pkt) || ctx->base.is_jmp =3D=3D DISAS_NORETURN) { gen_end_tb(ctx); } } --=20 2.34.1 From nobody Sat May 30 17:44:14 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1780092100; cv=none; d=zohomail.com; s=zohoarc; b=TEzS+zcqLwgtZvjHQ/yvWOLYk1DXFfxwFLu/AC0YfeKXB+XkKMJOs0Tc4L0pN4H0tEr4PyCx1L9QA5FDvKNdDs1MlwKvYTHLezJiXtpq4EjFi2k3vNRt37uA7qB1zlptfNTGQPn/EArR0OaTm46+g1LAXCR3rvO0A741ZWTNHxE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1780092100; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=1FH9Vrebnph0cDt2VnXxaNS69a2zKQrCd85zToEq/sI=; b=Mypohb2q3bPTGd/WPFCEz3cUaT7+JbiRpQrhUbNQjpDv8F+FmLkF9hbpxOJS8TfFgp5dRucUAyh6U4w5azj390IG+AVxagpzqBlqlXTp2t9ZlT/7BCdCwFaq4ePBUzGFB+J8QZg6BIn4WJvbVmKGtdfqrnGFAKowdU9dFtFxMA8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1780092100335355.4207804708542; Fri, 29 May 2026 15:01:40 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wT5EP-00063q-W3; Fri, 29 May 2026 17:59:06 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wT5EC-0005x5-Jq for qemu-devel@nongnu.org; Fri, 29 May 2026 17:58:55 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wT5EA-0000ws-SF for qemu-devel@nongnu.org; Fri, 29 May 2026 17:58: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 64TI2M0K2998061 for ; Fri, 29 May 2026 21:58:40 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 4ef4jj4evg-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 29 May 2026 21:58:39 +0000 (GMT) Received: by mail-dy1-f200.google.com with SMTP id 5a478bee46e88-304df51ff3eso2146503eec.0 for ; Fri, 29 May 2026 14:58:39 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-304ed5a9d27sm2428313eec.25.2026.05.29.14.58.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 May 2026 14:58:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= 1FH9Vrebnph0cDt2VnXxaNS69a2zKQrCd85zToEq/sI=; b=pav49KV9ZtT9bG7l XenKg2B5ujxpvaxjb/ay56Vv8B8snrJn6GZzcn1dSKyEhUS3jzUeO6ggG7v4YONZ IMpL0BdqFImbncV/VgDe4JWvGYo+bnwWQATCTcGU0EAFheEcRxjnrb/HBFTGykM+ /a9DQ5+2khWVL7NptWOk1u3hE5WdIXNZz/MtxdWZwRCNfExS7DHJWkTSYuY0Ooeo +lJdOQ/qR3UevO2Tt+YexkzvuiSmjpI/BjRVLsTSWRXABv/KNhM2vM8Ro7h1HRjX RuJ85lq8btsLA48Y3Zm0DpYtF8Rd6FpQrScVj92pov18qA49FGCqKo+s6YrvZn/i NSooew== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1780091919; x=1780696719; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=1FH9Vrebnph0cDt2VnXxaNS69a2zKQrCd85zToEq/sI=; b=eBR7QUXkEQVQOXWZBmV/CtKAckfF/Xjqafg+9WFPAQbcnoqEj0Q+vZmWKV5VeABSre fhIebmLNJ7nzWCb1lyO2F8Vt0zMyHU9aPgH1zaPNakqXYU6Gct64WREA3zBs6QdLlmQD AtiQN+0f5uTWTFuA87jVyfnEPX3qrO90dY3gicbo61LoXUTzGy2GQgimgrY7blB2DAa/ YRhP7IZ5yZB4PBKXFtTp7rS0kAh21IcGtputxbEIeLuLsmBatqQG/1htb8a2PvhRDpUo esqq4P9x3bEpLVlAtVJ3BXILp96oifFWEVuNG2HbnkaICoCub9ooEj1X7RAKwnh4LeIv yvMQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780091919; x=1780696719; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=1FH9Vrebnph0cDt2VnXxaNS69a2zKQrCd85zToEq/sI=; b=ewm+K/SdPZNZV9cz/rfniOdy5UqZz0rKHpJNmIWfVe3mOXKP3jOSIg+wy18/VmX2AI sqT/99/YG56isYT7ldsmbQMQlJ3w2JnNucDdD+ule4ynudJWKi5YElgCEFDCetl7HOiZ wEgeh8MeI6+pjcA0MxnnIXnfeLXwYspohuAvo3lo5I7E2SlU2qlNqPUt8q1ftQSbq03P 4lEQog8qKzA8QR2MWSsMT2i8yxkLHOnmImoEbIJo/07ChA94Ye1Lh3gVHRX26GaKlpMK C1kEoCHmBvw6pmTcvla/O69KQsr2VmgPt6ZTNFBGep/USPF6u86DgNvMK1r6ynJXZ2Dw 4ZAw== X-Gm-Message-State: AOJu0YzoHwvXEQaV230OE2rCgrHJJTMn1hALIBooru6gR7wVKKRrHQEh uPrFjxv8886/6RiwYbmV/my4ZYPd3HMdTdnMrJmcnAXEzi0f/YGrOtAsSQQtSjKtKc3BPnbnrW3 ORU8bz4hTaqMId/ndQsVzSojJlFb5vqL02ursE4vnU9pHEwVIixclfvjmfTsfevhksA== X-Gm-Gg: Acq92OHaYzamGarbcxb7wXlsVScVtSP9FleB7uQlHMeglWe7E2j64n0XDSYF+DsaPS8 NFqRI3QnjqprZZa4HkUib4ME9SGJ/VOUXomBDpBW7LqjZ7UPw/uCEzLXhAhCA8r9zDpCCNl510O I4NSrcM+MkkHNxd4rbXkDBoRvsxf4m/bM+FOP2KCJb+bP8cgKunQ6+e9c/RjSiMhUGL1bxFOwVW i8yNSnE/AiP7C3VOM3XLVbt4ESgvhgGYsQTSVnGgOW3sEhB9djwwqdXruq8TvYF1biwQvArgO6K tncO/e6a+mSM8o5aSxXrLBHKJeDVv3hDUXcl0rNDzRaUYVfaDcagaeD9Cs2jvR2sHQ1riopiZmN doze0S1IQzNr00zPryW/pjdBjA2G6t/MzvnWjlOi4Nywoz9q8DNlMqhsU8p8LrUvqjjIOvntuDb fdYCbW X-Received: by 2002:a05:7300:e58b:b0:2f2:5c68:5074 with SMTP id 5a478bee46e88-304fa5163f7mr888499eec.13.1780091918833; Fri, 29 May 2026 14:58:38 -0700 (PDT) X-Received: by 2002:a05:7300:e58b:b0:2f2:5c68:5074 with SMTP id 5a478bee46e88-304fa5163f7mr888475eec.13.1780091918307; Fri, 29 May 2026 14:58:38 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, matheus.bernardino@oss.qualcomm.com, pierrick.bouvier@oss.qualcomm.com, ltaylorsimpson@gmail.com, philmd@linaro.org, Brian Cain Subject: [PATCH v5 21/28] target/hexagon: Add next_PC, {s,g}reg writes Date: Fri, 29 May 2026 14:57:59 -0700 Message-Id: <20260529215806.608770-22-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260529215806.608770-1-brian.cain@oss.qualcomm.com> References: <20260529215806.608770-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: AW1haW4tMjYwNTI5MDIxOSBTYWx0ZWRfX9sbXNO99UITJ CG5xNPalOhjT0vq4ZeTg2bsMA6P8BxOv5UoccIpqiTDrdOLLkzSg7SqgTZWrAmBt07GSYIkuZgp redtcHINPaomooXKHERipwAEYQOP0J+QbQ82EsthNzuSidDI/MIxcnIs58zUVKym+k5DPmIzh3a ru8vj3TktyZ7ALsfQh9rPNGnm1V1xmxx6tqSmCzdbO3Jiv/Ad3ZVe0N4WEAwOasg0eLhq2zTDkn gJJO8MIIjPu3X5UMBxjOLlyLu+tYA0ucsmJFjrZb9XH5ZIZsDdhLXjAC3fMkbfqkYfV5tI2+CTi efGGrhk3hFsydvZTLch/mCHNZSG0A6Zbslbb6sVLP/fFJzxWiISTnKuiU36d4WdlMUVrCQuH6/V 1ySfC/hn6NBUyr0r5+bwqNjKqLs669K1SLupoUeG1hYc/wXv8Yq6wvK4uSQTbAgsEaLj5/zSq/4 iKkqSFV7DGBjTIi9nHA== X-Proofpoint-ORIG-GUID: ESLmG8g9BaxqZT7NJV6mX0OZxZt2Jk_s X-Authority-Analysis: v=2.4 cv=Tt7WQjXh c=1 sm=1 tr=0 ts=6a1a0c0f cx=c_pps a=PfFC4Oe2JQzmKTvty2cRDw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_glEPmIy2e8OvE2BGh3C:22 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=fJQQT6FIS2xgNqPK2MMA:9 a=QEXdDO2ut3YA:10 a=6Ab_bkdmUrQuMsNx7PHu:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-GUID: ESLmG8g9BaxqZT7NJV6mX0OZxZt2Jk_s X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-05-29_06,2026-05-28_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 lowpriorityscore=0 clxscore=1015 impostorscore=0 bulkscore=0 adultscore=0 malwarescore=0 phishscore=0 spamscore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605210000 definitions=main-2605290219 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1780092101744154100 From: Brian Cain Signed-off-by: Brian Cain --- target/hexagon/translate.h | 2 +- target/hexagon/translate.c | 77 ++++++++++++++++++++++++++++++++++++-- 2 files changed, 74 insertions(+), 5 deletions(-) diff --git a/target/hexagon/translate.h b/target/hexagon/translate.h index fea88cb2db7..0a7f37d5842 100644 --- a/target/hexagon/translate.h +++ b/target/hexagon/translate.h @@ -46,7 +46,7 @@ typedef struct DisasContext { int greg_log_idx; int sreg_log[SREG_WRITES_MAX]; int sreg_log_idx; - TCGv_i32 t_sreg_new_value[NUM_SREGS]; + TCGv_i32 t_sreg_new_value[HEX_SREG_GLB_START]; TCGv_i32 greg_new_value[NUM_GREGS]; #endif int preg_log[PRED_WRITES_MAX]; diff --git a/target/hexagon/translate.c b/target/hexagon/translate.c index 35e90362880..325c1a9e8fb 100644 --- a/target/hexagon/translate.c +++ b/target/hexagon/translate.c @@ -545,6 +545,10 @@ static void gen_start_packet(DisasContext *ctx) ctx->reg_log_idx =3D 0; bitmap_zero(ctx->regs_written, TOTAL_PER_THREAD_REGS); bitmap_zero(ctx->predicated_regs, TOTAL_PER_THREAD_REGS); +#ifndef CONFIG_USER_ONLY + ctx->greg_log_idx =3D 0; + ctx->sreg_log_idx =3D 0; +#endif ctx->preg_log_idx =3D 0; bitmap_zero(ctx->pregs_written, NUM_PREGS); ctx->future_vregs_idx =3D 0; @@ -577,6 +581,25 @@ static void gen_start_packet(DisasContext *ctx) * gen phase, so clear it again. */ bitmap_zero(ctx->pregs_written, NUM_PREGS); +#ifndef CONFIG_USER_ONLY + for (i =3D 0; i < HEX_SREG_GLB_START; i++) { + ctx->t_sreg_new_value[i] =3D NULL; + } + for (i =3D 0; i < ctx->sreg_log_idx; i++) { + int reg_num =3D ctx->sreg_log[i]; + if (reg_num < HEX_SREG_GLB_START && + (ctx->need_commit || reg_num =3D=3D HEX_SREG_SSR)) { + ctx->t_sreg_new_value[reg_num] =3D tcg_temp_new(); + } + } + for (i =3D 0; i < NUM_GREGS; i++) { + ctx->greg_new_value[i] =3D NULL; + } + for (i =3D 0; i < ctx->greg_log_idx; i++) { + int reg_num =3D ctx->greg_log[i]; + ctx->greg_new_value[reg_num] =3D tcg_temp_new(); + } +#endif =20 /* Initialize the runtime state for packet semantics */ if (need_slot_cancelled(&ctx->pkt)) { @@ -734,6 +757,50 @@ static void gen_reg_writes(DisasContext *ctx) } } =20 +#ifndef CONFIG_USER_ONLY +static void gen_greg_writes(DisasContext *ctx) +{ + int i; + + for (i =3D 0; i < ctx->greg_log_idx; i++) { + int reg_num =3D ctx->greg_log[i]; + + tcg_gen_mov_tl(hex_greg[reg_num], ctx->greg_new_value[reg_num]); + } +} + + +static void gen_sreg_writes(DisasContext *ctx) +{ + int i; + + TCGv_i32 old_reg =3D tcg_temp_new_i32(); + for (i =3D 0; i < ctx->sreg_log_idx; i++) { + int reg_num =3D ctx->sreg_log[i]; + + if (reg_num =3D=3D HEX_SREG_SSR) { + tcg_gen_mov_tl(old_reg, hex_t_sreg[reg_num]); + tcg_gen_mov_tl(hex_t_sreg[reg_num], ctx->t_sreg_new_value[reg_= num]); + gen_helper_modify_ssr(tcg_env, ctx->t_sreg_new_value[reg_num], + old_reg); + } else if ((reg_num =3D=3D HEX_SREG_STID) || + (reg_num =3D=3D HEX_SREG_IMASK) || + (reg_num =3D=3D HEX_SREG_IPENDAD)) { + if (ctx->need_commit && reg_num < HEX_SREG_GLB_START) { + tcg_gen_mov_tl(hex_t_sreg[reg_num], + ctx->t_sreg_new_value[reg_num]); + } + gen_helper_pending_interrupt(tcg_env); + } else if ((reg_num =3D=3D HEX_SREG_BESTWAIT) || + (reg_num =3D=3D HEX_SREG_SCHEDCFG)) { + gen_helper_resched(tcg_env); + } else if (ctx->need_commit && reg_num < HEX_SREG_GLB_START) { + tcg_gen_mov_tl(hex_t_sreg[reg_num], ctx->t_sreg_new_value[reg_= num]); + } + } +} +#endif + static void gen_pred_writes(DisasContext *ctx) { /* Early exit if not needed or the log is empty */ @@ -1030,6 +1097,10 @@ static void gen_commit_packet(DisasContext *ctx) process_store_log(ctx); =20 gen_reg_writes(ctx); +#if !defined(CONFIG_USER_ONLY) + gen_greg_writes(ctx); + gen_sreg_writes(ctx); +#endif gen_pred_writes(ctx); if (ctx->pkt.pkt_has_hvx) { gen_commit_hvx(ctx); @@ -1242,6 +1313,8 @@ void hexagon_translate_init(void) hex_llsc_val_i64 =3D tcg_global_mem_new_i64(tcg_env, offsetof(CPUHexagonState, llsc_val_i64), "llsc_val_i64"); #ifndef CONFIG_USER_ONLY + hex_cause_code =3D tcg_global_mem_new_i32(tcg_env, + offsetof(CPUHexagonState, cause_code), "cause_code"); hex_cycle_count =3D tcg_global_mem_new_i64(tcg_env, offsetof(CPUHexagonState, t_cycle_count), "t_cycle_count"); #endif @@ -1282,8 +1355,4 @@ void hexagon_translate_init(void) offsetof(CPUHexagonState, vstore_pending[i]), vstore_pending_names[i]); } -#ifndef CONFIG_USER_ONLY - hex_cause_code =3D tcg_global_mem_new(tcg_env, - offsetof(CPUHexagonState, cause_code), "cause_code"); -#endif } --=20 2.34.1 From nobody Sat May 30 17:44:14 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1780092126; cv=none; d=zohomail.com; s=zohoarc; b=Y1Y7MDlcIH/QootkP/uonKQN8+ZkNg7f60QaI7SYo/uimV0tEsW5J1Z1aPo7xeJeZbUXgjar8F5bmtaBCAeQ2IrkpnFfTr4U7Y5P353FFgmzwvHYUkXG8HH775hgesgWMUwjDvBDY/ip8SzWJkL8HPP+BLN96o1id8fNdzePFec= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1780092126; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=jaVf7UGKXmu9hxPq43HrJcXFS7n+cdTO02SwzBafwd4=; b=EOVxw0+YUBWOz7t4mgX/Ur6YuPGVwPkummX0ZAZ+fRBy24oTkn+IjAYuoM30fEpQs6V+gNh+NMYd6r3i4OXA6OIw1DpSXisqbmw6SsBiQTO03GyJ1Nr7We5YgPobZYmFGAXSbKdVrM0sNKAtI6NRwGHC+U7s6lP9PSTs2RZtMss= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1780092126278590.4919124181067; Fri, 29 May 2026 15:02:06 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wT5EQ-00067Q-Ju; Fri, 29 May 2026 17:59:06 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wT5ED-0005xC-T6 for qemu-devel@nongnu.org; Fri, 29 May 2026 17:58:55 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wT5EC-0000xK-AX for qemu-devel@nongnu.org; Fri, 29 May 2026 17:58:53 -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 64TI2IBF589662 for ; Fri, 29 May 2026 21:58:41 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 4ef8rckbx9-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 29 May 2026 21:58:40 +0000 (GMT) Received: by mail-dy1-f198.google.com with SMTP id 5a478bee46e88-304ed777a96so466529eec.1 for ; Fri, 29 May 2026 14:58:40 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-304ed5a9d27sm2428313eec.25.2026.05.29.14.58.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 May 2026 14:58:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= jaVf7UGKXmu9hxPq43HrJcXFS7n+cdTO02SwzBafwd4=; b=HviXoLp43xmfR3DB 7uIk2dL+jUn16E4D2QGgRw9zPwBNCtB3wfignifZW64rRijwHsJjTr96QkHAIV8s 8jHEopgfMz8fO9Jd5N8PgnQfN478DuKrwiWe/jtq7YeFBayPWxZ2SS5INX98dU0r eJgsdNshO2sVVdC/GlpuwmWXdVmU9PSLD0H0tJOjMraOUWvavCMn21xctTm3V4X1 LQC/vfrIX2yWJqxwm6dvknqVF4Li7yb4vozJOKT46omyO9qNW33W6GY1yjzbuJiW 8no/gYXZ/aLw+iVTThr/p0rQbOX5UhiiaIGdpvsBpmfUx0LLwnUd+29eQMl/9e+a faGbcA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1780091920; x=1780696720; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=jaVf7UGKXmu9hxPq43HrJcXFS7n+cdTO02SwzBafwd4=; b=aqQUBOw5pFL/8WL/4tIIs5kNV2Z0JBBwUhpJXbX+8rRr1QGgSFgeFvafWsNL32T4dE 38oA9UAbFtptg5Z/+t39HajhRraJ1z2OfOMOijlyEVVUAZvx6vooc2xhgmUC8VfN5TJm 90CEefwtXQriQ6+ErLcm9cHgHsD7WnHbC5gxBCiKvT3dIj+AvUQ6h2KOVCNzZ6RAZ9jn 3IGOo5KvIa3J5MXJ34d0dH+6lzGq/QMyz0xXvPOH9P0SCFpsT4LmkkMg+7LvFH6t0LcX 5dZe27mV34tYF7WJFIjP0XZjXOhEjBGu7ZtihT4AIGP81cQFOvai1v2QfF7A53fMXsjj 8IwQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780091920; x=1780696720; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=jaVf7UGKXmu9hxPq43HrJcXFS7n+cdTO02SwzBafwd4=; b=Qa3GYM/x3ZYQ3JSJhqJiPSkJAXKwGkwaDrVBm0nchX82RUXGTyE0BRb8kxqmPSKJ2E b6SJ7zHXt40WiIFWgFm0c7hYwSPrMwQLW5xjhosLptVqzo8H3Wns3VV+9/ZqVzpUvtrN MJ2V/IWx04zM8l+wxGM0wvzDqxJJj2ivGwO7AIaKxfD0YkzxweZDiMlYwDLm4RFRdUCp OHgPJTc+e85JMGdqPT7Zzq2+15yYJ8n1ymzte9REQLJ3oq3nnMtWHBpTGVS0CHz1QIbP AqVP7ZRILYPR6HpL1WPsnySZCij43PMY6Djk3tlHD22vzSE/1DAYtQwXx8iPh/8lBYib 9/Yw== X-Gm-Message-State: AOJu0YwONevx3kgC2yjjO1jMizsWWaczTT2olXDBke62k1mzQXPn5YMm AYE3ERDJ7gGP9xW7049vom4qLY/JkMDLVP+7m+RGS2c6GTKYgYEhEdbELk7HRAayYK4orJx0hQf vW/HuGyUtC7u0fIrjo6gTKI6JB67ARwpxKi6aNNHJ9hgjjSb0zui+p62ugOZ0RUjtlg== X-Gm-Gg: Acq92OF42VwL9PrCo1IEIc6DEK4j/u0xfsPGgrCOZ8U6VDFEZt3Soun+jI9LgySYjCA TExG1ZUBSBar9ZE/la/MaseReDyu4Wf9Dj8+XkVl2dMDzR81751XqJzD/jURVVTJUNBdGu0dDT8 GfSxuVzjYL+jQV8hiBuIs3dKAg47m7Z6BGB/JXBcthrpHYc7e/oPlGihSnq9s3qQ8YYCWCWSX39 6sCwiLWfaJnmMa+o9XuxZ0g6fvfTcv+YhWqh0DvEoHzWqZ03PBBFH7TaO52S8RqRtaElmQaqQMW Wfkr0n5nJC0C63+gQZRXczIhLfRkx5l9SeP3Zm+TchQ3wLXTSKnNu09kRIUwlqwZCXYJOJLmAln XguAJuy2FaFWl6xnVZJ7/hlFXbIUgzM/Xa+cfLIXnGbdBCYHCiYMzFnnWoQ0k4ssmNBo09tXpkY 6pyR1J X-Received: by 2002:a05:7300:6426:b0:304:c9f1:a0e9 with SMTP id 5a478bee46e88-304eb115e9amr2300923eec.9.1780091920306; Fri, 29 May 2026 14:58:40 -0700 (PDT) X-Received: by 2002:a05:7300:6426:b0:304:c9f1:a0e9 with SMTP id 5a478bee46e88-304eb115e9amr2300904eec.9.1780091919791; Fri, 29 May 2026 14:58:39 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, matheus.bernardino@oss.qualcomm.com, pierrick.bouvier@oss.qualcomm.com, ltaylorsimpson@gmail.com, philmd@linaro.org, Brian Cain Subject: [PATCH v5 22/28] target/hexagon: Add implicit sysreg writes Date: Fri, 29 May 2026 14:58:00 -0700 Message-Id: <20260529215806.608770-23-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260529215806.608770-1-brian.cain@oss.qualcomm.com> References: <20260529215806.608770-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Proofpoint-GUID: xqQYy3PowsTNq2ID9Eviseplye2Vv3Oe X-Proofpoint-ORIG-GUID: xqQYy3PowsTNq2ID9Eviseplye2Vv3Oe X-Authority-Analysis: v=2.4 cv=DuNmPm/+ c=1 sm=1 tr=0 ts=6a1a0c11 cx=c_pps a=wEP8DlPgTf/vqF+yE6f9lg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=eoimf2acIAo5FJnRuUoq:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=ySlkKLH3HnL0fBWr2zQA:9 a=QEXdDO2ut3YA:10 a=bBxd6f-gb0O0v-kibOvt:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTI5MDIxOSBTYWx0ZWRfX/BCZG2b0s0sE 2/yYEMp79h3vHfT2XIpq5OLtI/8onzhZ2K3g99p0HAdGiKqV9jc1tof/0IeXtn3QSgGvgWflPeO lk5qcE0LOz+BzFf8D7zjt1v/AsRjcxMNsPuddkRb+dkT4tnhXzugv7wUrIfBntUKDee4ktiaDsN DyMUcsMUJbBJlZ2MHPqA6Zj1ufTE1R9bXVIS5+9jNltluiEadb1O4qD03BypipDwEjgAHXlgzfJ pfSoJzqmzCUsvQElPnNIvIpJfE7dpGu8PsOmIZOboUy2d98XdphTJEn7n//YwCv+D1G7QcCn7c2 dRrmfgolCLivabE8U1jlQjVXnZUTaaaP0CH8FXUVvyvg3yFaFPxNCAXILDFHgsvA4NAcWewnzUa WGULbnUyLoJmzATVIRa0KULVS8uFdss0QwBzDCt3dlinXAyA43Ppm4YDHTVqFFwlZ8hn8a4wxTA bt3yiztBwMelPnlZDcA== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-05-29_06,2026-05-28_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 adultscore=0 impostorscore=0 clxscore=1015 priorityscore=1501 lowpriorityscore=0 suspectscore=0 malwarescore=0 phishscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605210000 definitions=main-2605290219 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1780092128208154100 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 325c1a9e8fb..dbc76419215 100644 --- a/target/hexagon/translate.c +++ b/target/hexagon/translate.c @@ -424,6 +424,16 @@ static void mark_implicit_usr_write(DisasContext *ctx,= int attrib) } } =20 +#ifndef CONFIG_USER_ONLY +static void mark_implicit_sreg_write(DisasContext *ctx, int attrib, int sn= um) +{ + uint16_t opcode =3D ctx->insn->opcode; + if (GET_ATTRIB(opcode, attrib)) { + ctx_log_sreg_write(ctx, snum); + } +} +#endif + static void mark_implicit_reg_writes(DisasContext *ctx) { mark_implicit_reg_write(ctx, A_IMPLICIT_WRITES_FP, HEX_REG_FP); @@ -436,6 +446,12 @@ static void mark_implicit_reg_writes(DisasContext *ctx) =20 mark_implicit_usr_write(ctx, A_IMPLICIT_WRITES_USR); mark_implicit_usr_write(ctx, A_FPOP); + +#ifndef CONFIG_USER_ONLY + mark_implicit_sreg_write(ctx, A_IMPLICIT_WRITES_SGP0, HEX_SREG_SGP0); + mark_implicit_sreg_write(ctx, A_IMPLICIT_WRITES_SGP1, HEX_SREG_SGP1); + mark_implicit_sreg_write(ctx, A_IMPLICIT_WRITES_SSR, HEX_SREG_SSR); +#endif } =20 static void mark_implicit_pred_write(DisasContext *ctx, int attrib, int pn= um) --=20 2.34.1 From nobody Sat May 30 17:44:14 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1780092132; cv=none; d=zohomail.com; s=zohoarc; b=n/y9R+6rpxoUk/egUTIM9p0zjsJ59ZmoqWQiKAemUmil7YjVh9/P437sp+/nL075fBRVHLxZb1Ka6TWisonZezvTaLj7uhSKgeCzGglqGr5cbXu5CqgRvnfVBdGpXGgx7csC+T+NcmeSQR5knT0qe+pAl4mpHNntZznWduXemcA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1780092132; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=bZXJa7rP2+xRK15e1oQsfns0S5yQa74ONGCk2N9ymEM=; b=GuZZusidQ1RVl2syPsHKsD1gjTi+fEofYuJuqJG/gyCi305nOGfhaMfO5VqbrSidlxAPOrQLHc6rmV0E9GQbCY+qSXyNR+z0WCJPaZ2G4AVd4TrfCKy/lNmupQKpwe0IZnXDzKAnJTdpUGYK8q8xCSHFQYCyyiQJeFPPhFwHhb4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1780092132603269.1035061861286; Fri, 29 May 2026 15:02:12 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wT5ER-00068h-2V; Fri, 29 May 2026 17:59: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 1wT5EH-0005yM-P6 for qemu-devel@nongnu.org; Fri, 29 May 2026 17:58: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 1wT5ED-0000xZ-M0 for qemu-devel@nongnu.org; Fri, 29 May 2026 17:58: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 64TI2NJF518485 for ; Fri, 29 May 2026 21:58:42 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 4efechhm0a-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 29 May 2026 21:58:42 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-304e7fbfaf5so5110708eec.1 for ; Fri, 29 May 2026 14:58:42 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-304ed5a9d27sm2428313eec.25.2026.05.29.14.58.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 May 2026 14:58:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= bZXJa7rP2+xRK15e1oQsfns0S5yQa74ONGCk2N9ymEM=; b=UqYgS14XC8XdPSKF xfPAVHdGL/P6tre9PJ9/JD2JkIAuD1stl4uURD3xLjWJWQCyBZXjqC8U0GCmUsT4 jsm9phQy2uGpz7aiTIYaoNHBOpU/mPbbk3k0T8sOE/18rrvLtBGA1jjyR0Dh9GcL 7R2APk9xvw+XUUPdfftr9ljvO73O80WPecFTYh6qkFYeKuBZifh3fpCRqGqutkA+ uW2Snbi+Pp5t5XxgmROisxNa/CKoc4LM6idIEVBwZaGAGJUODUGZKw7DxDanqiY/ oRU1vAJVTMeSAfoegXg1RNDbgHA+OlegSoXeDtPaKySRWqokTIaqdKlnDK5jUtMA lBgj8w== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1780091922; x=1780696722; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=bZXJa7rP2+xRK15e1oQsfns0S5yQa74ONGCk2N9ymEM=; b=YIBkLzgVUF5qgB3aqUmffGcrwBCU461HWJKUm5pa+uVRitLuT62aN3GwlOPiXuB0y3 Cl7Ock+kP1TMzdIVuIBxtuGueAOxdkqDxV5TLdG7WNAfnM7cb8TY9p1vu1VF+nVtRi17 uYFt1heySe12wJ62DRjUXjIFDr+VXktPog2rnqh3Ath9NoZdfHb1Cl7UnVBbbOYVOxE+ 7bMa13qjJSfg6t+pVd4My0ZojlBk9wqsNuhKMfBkB0lRKdRSoePj9QG6u99Ykle2BPPb 3cU1r4hwsUTwyTN+B7zbJVRIDjQgBwyC4c1RrM9Y1YfnklyW6ciUb/fOE2JeUWVvyKrd e39g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780091922; x=1780696722; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=bZXJa7rP2+xRK15e1oQsfns0S5yQa74ONGCk2N9ymEM=; b=eGvAXGoytUuu6+dW7xMC4PQDScmVUei3Db5w2TQjY0HpviUicZ8q4Bsy0qXA4SanFM qYCaBd2MzNQQyECQpR8yIyZMkLqVXnBq5ZweH8bor7BkxVkgh+4ID4VlHRwZ6AKiKq4G eJVhfjlxL0JdCPlmOXqTKPdHb9sVENQGcFz0646I2PetbqkvnXc2BCEelIwcpcgJPecb WOfbkE5feXwBnzc7bRS+40yBM/Fau+zVcZj/FZRQEY/VpZXXQIiU7ZahEATx6lsy7guC dnx67KWDmCXGaz5mZDrhlab5igqizIYpFSB6kaxNqfndlmYu4x+aeWcIaGbf/r4VuxzI JckA== X-Gm-Message-State: AOJu0YzdhpnYYBkt53tlwLBIKkAjxDuLZPG11a7A+NfN2DVQLhDXktfw gnqPUd5gRlhLgViKoGMX8AhLKK0C4NNAOIJsNwlidPqdKDaLCPPeJSBPfxtyrafCJDG5smt/7Or 0Yv7EbVlM2IBiU1skTHLxWon6fW0IcEbgNDX34oT+s8rxrY3BynnCZ5owB6XWrk0bdg== X-Gm-Gg: Acq92OGIA1C/oMfFRl9ilOlq64lEi8mgbjeRHjfFSUIX7Gf2XFawtzPudZApjpsUrJn 6CmXcyPqngk74iQWiPcrMO+6P/vQ0rdPNSIQA4Dw9j3DqLP7/RewDBdbs7r0iPW5EUc1fX/He7f 8NFqtepdDE5s8hJ8D3vT6WzPTGBe1oU84DCYE+G8gb9svGaucU0O8T5ZZCp+XAVAAjzc3ZSnTOX fvtBhXn0A3BYKPhFqPWLJBLHTUGkR8HegzC2FQ1xXawAw4f9zN7VFcpQ7xCE9dDSegTu4FFtGbh A4pJej44SPFGA8FSddQZbeCsT5RUs4Lul2CISnirKWhY8lzOigNyBG6g2q8hXHkpypS0Cx+gJp2 KRmivWyLFJm3Hr5eGAvpFoamXs2P0/OWwCU464XtHVyCEOg8YYOiZ1tB8CL5j83SxTRG53EF7ea kvcraE X-Received: by 2002:a05:7300:641c:b0:2c5:b23e:48a6 with SMTP id 5a478bee46e88-304fa6197dfmr886522eec.23.1780091921756; Fri, 29 May 2026 14:58:41 -0700 (PDT) X-Received: by 2002:a05:7300:641c:b0:2c5:b23e:48a6 with SMTP id 5a478bee46e88-304fa6197dfmr886509eec.23.1780091921257; Fri, 29 May 2026 14:58:41 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, matheus.bernardino@oss.qualcomm.com, pierrick.bouvier@oss.qualcomm.com, ltaylorsimpson@gmail.com, philmd@linaro.org, Brian Cain Subject: [PATCH v5 23/28] target/hexagon: Define system, guest reg names Date: Fri, 29 May 2026 14:58:01 -0700 Message-Id: <20260529215806.608770-24-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260529215806.608770-1-brian.cain@oss.qualcomm.com> References: <20260529215806.608770-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: 59gfQStqCHt94Xq0vXvjiUrTMrWdOYbL X-Proofpoint-GUID: 59gfQStqCHt94Xq0vXvjiUrTMrWdOYbL X-Authority-Analysis: v=2.4 cv=U6Siy+ru c=1 sm=1 tr=0 ts=6a1a0c12 cx=c_pps a=Uww141gWH0fZj/3QKPojxA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA: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=Y3CEZXcnQwYgoNz55sMA:9 a=QEXdDO2ut3YA:10 a=PxkB5W3o20Ba91AHUih5:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTI5MDIxOSBTYWx0ZWRfX0UpxPkoN3wpJ Z9w3XCjp/xfecKLJIEH7ZJvYcq3gAixBfpj1xLMFg1WoWrsnsDGbji9rq4YaazoH9hMfulLjUbX 19bhHZZP4MV0UdBiN/I1q2YNaSx4qGxf6WIEaPCgJ5XqDJ758XWjXjCzbrLQNtdX9KgJPmgGrNR A+pXBF/KPTdEGHqIr+CVnbFUiUCduILYSjafyJzlnZVzpErD4UFAUprrJMqmAWDRZiGIm0GwHRX sP/kh0t9ve/SRkiPSJyFSuetKR0ZXTwndOlDnIJDvbAdtYNo3+53h+Mr5MfMC3hQ1lhF35LcJYy Q6KEJDA9YhMibD1Le+KavjOtXXp7mcg3+YIL5Orckq4NGO0T4wQjCE3HrC8QIJklkVJQizMiKW2 7zogWnC/0zWvchv0C19EGe6TELwuO52F+923vAyFCbjJfjSnFPZljS+gdl6k/W3l8K9fUzo5cLn 1TbJ7smqWQX1gaFJCUw== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-05-29_06,2026-05-28_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 priorityscore=1501 lowpriorityscore=0 bulkscore=0 spamscore=0 clxscore=1015 phishscore=0 impostorscore=0 adultscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605210000 definitions=main-2605290219 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1780092133291158500 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 4bffda03f8c..478a89c235a 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -85,6 +85,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 May 30 17:44:14 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1780092087; cv=none; d=zohomail.com; s=zohoarc; b=RQXF9PIRdV/j/0kHYM7se2z36agD1JbErlKEHc/wtsxFgroGlMk2ZEb79RXs8YJWpaDLV3Ft+mC5oq/yQ/24XmG30orAu34XeHBB0Tfiu1tUPYlQb90DonwKrM/j4OkpAVyb3vcg3svgApmDgVn7yUIabGpwiTi0vAE4IIGjDJg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1780092087; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=F4vDEgESRICB4T1ThxOPUKEwQuZ5JKFKArsdUcgzmWU=; b=b4d3L3diUQlIPGWfaTKs+hDkSYkcfDIr9AfY1zkcGPG37PnqqyXOTtk2O7J5ZZ35OUJB0RBMC+Pd1wkIZvKZpOR3LnPwqM0arPSccyR3ow2UvWhVI42xQQa99JVMqG7P4j1HeDU/n33osl3Hm61VSQh6extNpk3YK5uumEtroLk= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1780092087840261.5101608408494; Fri, 29 May 2026 15:01:27 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wT5EU-0006I7-EY; Fri, 29 May 2026 17:59: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 1wT5EJ-0005yR-AR for qemu-devel@nongnu.org; Fri, 29 May 2026 17:58:59 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wT5EF-0000y9-AS for qemu-devel@nongnu.org; Fri, 29 May 2026 17:58:59 -0400 Received: from pps.filterd (m0279865.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64TI2LVv1912298 for ; Fri, 29 May 2026 21:58:44 GMT Received: from mail-dy1-f199.google.com (mail-dy1-f199.google.com [74.125.82.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4efbu52gt7-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 29 May 2026 21:58:43 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-304ed777a96so466570eec.1 for ; Fri, 29 May 2026 14:58:43 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-304ed5a9d27sm2428313eec.25.2026.05.29.14.58.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 May 2026 14:58:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= F4vDEgESRICB4T1ThxOPUKEwQuZ5JKFKArsdUcgzmWU=; b=IPVQEuTAmJtzV7qJ jC/7gLDvzLMe2O8L7aCzzIG5xcr5BNE8VjieSj2PbQvdGscTvdkKcBz5G9WbUy4s QptVzEZLpK2+rTTYbGLZ8pGALcN3g5N1r1HhIOipluYfCq+fYauhr0kzAlpTmhy3 K1RxELuxX3RH2sOGtD7uDUQ7LDa5/w0ajuBdrj+Zo2nUDhceKv33vh9cAOklGjRQ 9/Q5MnKOAXsq40Bqm+p9fj2BrPWJ4uBmIrsSDxvdYSjQFVJQIH50dXldLKKAeeTX zgF2lTJzWAGt6uYn/EpphtzK5Igsp66IV4Bj8eHW7rWQPD6GSzE9oLGExDPvJLkp zneoyQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1780091923; x=1780696723; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=F4vDEgESRICB4T1ThxOPUKEwQuZ5JKFKArsdUcgzmWU=; b=TFcw70Am9lm1bi7WmZA+Xp0LIt1O9KFDxMHrmsutp+QTrNiwGnAAH5vdZfsit9228e 5gdmcvg4Gxt2ndCgwS/X2hS1olfdpm1M6fk73Y3gFUGluzTklPBWzAqsjFmwRNkcb5G3 bAHKy9sZZgKUyqousClsMKCoO6b1krsYUdbBBRbcG8GcuV8s3v4NldHgPoCSntey4TrU FPdqYvRl8A19wdXH3Yx27fzkrv9nrr9ZEzoR4SClke9+6Zq5PiHgsVYHEDpsd/JRt+QG +UnloBKogMGIhXfJvPVg0TI4oYkVWzfI1YKBUiXlK1jSPsH9O6vrJoFjp4hWIlKZ3BWZ bTSg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780091923; x=1780696723; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=F4vDEgESRICB4T1ThxOPUKEwQuZ5JKFKArsdUcgzmWU=; b=L/LipwVS0GV89urVLPrPySDPYShClbQOp8cwQgrJJtV2IsmNcxw6wSvo+U0BKjQYBN JfHm6kGpJ9WNbjAdX/XZjUgbNEQ3lQRoC2w/CafBPk8NSV+NvTNDD5KZe9MbsAhMBKvG 0DYLfo+pZo3RWAaX8EsdzZ2V4N4yeEmPjfTRmgkD5UbWaDPdfDL33Iclze4IXIvz/7hx miQJjzXK6Gt/y4RjevELXd8bmk8XczHb5pIAa92e2rjWE/7TkpABt78eyD+zCIkFpHvY ka81Om42eIfwcrfyo0DIWo5dZaEI2oxL07hCaVaXUdobnJFlrGJmz8eyBk/OPlO9bNaT FTSg== X-Gm-Message-State: AOJu0YwnpyQuNcJ9r1HdTy3ZY/QcXnu0KHJChA4Gb9nExi4ITTAhQZhv fU+MBk3ONIHWO0aMYpN2+abUs4O1So+nf1+TsqzsNUyDBr35RBAr/AEh8RVGac/NdF3q3EZ/8jK +h2AEGqe2f6LT8OSbxYD8IlslANjVX1F1QxBp2sjapW2dcgY7ahaGwescXdflXvElVw== X-Gm-Gg: Acq92OHKAdEfZup97WsGoCASLmVa5hDYHQi8Z8PEPjiGP5AKvBo2FkWY7/8+LQF02VA /BVTDlqSVcYP0lxIMBH4wpnLC0dtRsMnjfJs5fWi6O+3OVMNBEHTAuNoA9HZDKYFCpE3c85vlbn 3B7CY/ZtUoD8b0x6uCvp5ChKti75mpBTDgCoi5ktauNAD4XcShZqn12qz/1mS0bNAyDuwdfXLdA nw3MBcP5TQ+KV+nryYbH0aHCm2+hXt2gxg5mkk9QekG0mhh2svw6vDY1bNtca2o/4hqXtAzSIQW /Z7lUlXEqj/r4U6tech2kf7f8dPcj4aAleX4i8E46jQaALiudML3YmpqMajyRzrENpY+vlFEF4S +LHug1hxvTzsZpfw8MNKmWKAu5BCPDlUPkDc51pLedk2ZDWmCTBr1IOpHRfPF9BGhAtMGzNXqFJ 3WeTVE X-Received: by 2002:a05:7300:6ca0:b0:2ee:7b2e:8a3e with SMTP id 5a478bee46e88-304eb09d7b4mr2245226eec.1.1780091922963; Fri, 29 May 2026 14:58:42 -0700 (PDT) X-Received: by 2002:a05:7300:6ca0:b0:2ee:7b2e:8a3e with SMTP id 5a478bee46e88-304eb09d7b4mr2245214eec.1.1780091922376; Fri, 29 May 2026 14:58:42 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, matheus.bernardino@oss.qualcomm.com, pierrick.bouvier@oss.qualcomm.com, ltaylorsimpson@gmail.com, philmd@linaro.org, Brian Cain Subject: [PATCH v5 24/28] target/hexagon: Add k0 {un,}lock Date: Fri, 29 May 2026 14:58:02 -0700 Message-Id: <20260529215806.608770-25-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260529215806.608770-1-brian.cain@oss.qualcomm.com> References: <20260529215806.608770-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=SMRykuvH c=1 sm=1 tr=0 ts=6a1a0c13 cx=c_pps a=cFYjgdjTJScbgFmBucgdfQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=Um2Pa8k9VHT-vaBCBUpS:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=ZtvnA-OJD4c8FAOZTSoA:9 a=QEXdDO2ut3YA:10 a=scEy_gLbYbu1JhEsrz4S:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-GUID: ok1IPEtdPJs3TJgQBx1RfYOQGYwp1OCs X-Proofpoint-ORIG-GUID: ok1IPEtdPJs3TJgQBx1RfYOQGYwp1OCs X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTI5MDIxOSBTYWx0ZWRfX101MCLn9Qjfo Uo3IcL1CpxyrG7xzb7c6sVfmm5gmW15a0F98pEGEJ1apP8WrxiCvZUN+xC0TB0cWnMWalheeooi H6YG9lOiKPHiZV3PHSTt8uLCNrrbeIBSVq+dNvGqPNvYd71vFnyGFKIz5LmNBP8NdLqXufv/CaQ xu0jYMJbw95Dwb/fEyva3Un6dUbfI2z24RqMFTNQAA+bMgPJ5/jgKjs6h+0jSb+zL0sPMG5oU8D pXmjo4CMasDD4SCH+FKnCSb8F64fId46FDaPB8JKiyaF903G5lsoiXmXvmGQXeUeKG2AZDwk2bZ tm3YZW9N1Cu8CcD0S1EK3A5kuoKdfQ3UTqEu9ULQyVXR/EDCYePjGNPW1mX4WBtJPYquI0GtWd8 Fh027Uz3/7bW9pz3MbAIemACiCpJs6ji9jjI1yh2NbO1v2KrAusyCX/2HdGeOZoPlhsT+H6wixo MSSR+RCa+eKvBN7SaHw== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-05-29_06,2026-05-28_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 lowpriorityscore=0 malwarescore=0 adultscore=0 clxscore=1015 phishscore=0 impostorscore=0 priorityscore=1501 suspectscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605210000 definitions=main-2605290219 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1780092092207154100 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/sys_macros.h | 3 + target/hexagon/hex_mmu.c | 4 +- target/hexagon/op_helper.c | 119 ++++++++++++++++++++++++++++++++++++ 3 files changed, 124 insertions(+), 2 deletions(-) diff --git a/target/hexagon/sys_macros.h b/target/hexagon/sys_macros.h index 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/hex_mmu.c b/target/hexagon/hex_mmu.c index c921e82b377..d035affeb2b 100644 --- a/target/hexagon/hex_mmu.c +++ b/target/hexagon/hex_mmu.c @@ -204,8 +204,8 @@ void hex_tlb_unlock(CPUHexagonState *env) (env->tlb_lock_state !=3D HEX_LOCK_OWNER)) { qemu_log_mask(LOG_GUEST_ERROR, "thread %" PRIu32 " attempted to tlbunlock without h= aving the " - "lock, tlb_lock state =3D %d\n", - env->threadId, env->tlb_lock_state); + "lock, tlb_lock state =3D %u\n", + env->threadId, (unsigned)env->tlb_lock_state); g_assert(env->tlb_lock_state !=3D HEX_LOCK_WAITING); return; } diff --git a/target/hexagon/op_helper.c b/target/hexagon/op_helper.c index 9d9b1d37834..2988e53d458 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 %u," + " syscfg:k0 =3D %" PRIu32 "\n", + env->threadId, (unsigned)env->k0_lock_state, + (uint32_t)GET_SYSCFG_FIELD(SYSCFG_K0LOCK, syscfg)); + g_assert(env->k0_lock_state !=3D HEX_LOCK_WAITING); + return; + } + + env->k0_lock_count--; + env->k0_lock_state =3D HEX_LOCK_UNLOCKED; + SET_SYSCFG_FIELD(env, SYSCFG_K0LOCK, 0); + + /* Look for a thread to unlock */ + CPU_FOREACH(cs) { + CPUHexagonState *thread =3D cpu_env(cs); + + /* + * The hardware implements round-robin fairness, so we look for th= reads + * starting at env->threadId + 1 and incrementing modulo the numbe= r of + * threads. + * + * To implement this, we check if thread is a earlier in the modulo + * sequence than unlock_thread. + * if unlock thread is higher than this thread + * thread must be between this thread and unlock_thread + * else + * thread higher than this thread is ahead of unlock_thread + * thread must be lower then unlock thread + */ + if (thread->k0_lock_state =3D=3D HEX_LOCK_WAITING) { + if (!unlock_thread) { + unlock_thread =3D thread; + } else if (unlock_thread->threadId > this_threadId) { + if (this_threadId < thread->threadId && + thread->threadId < unlock_thread->threadId) { + unlock_thread =3D thread; + } + } else { + if (thread->threadId > this_threadId) { + unlock_thread =3D thread; + } + if (thread->threadId < unlock_thread->threadId) { + unlock_thread =3D thread; + } + } + } + } + if (unlock_thread) { + cs =3D env_cpu(unlock_thread); + unlock_thread->k0_lock_state =3D HEX_LOCK_QUEUED; + SET_SYSCFG_FIELD(unlock_thread, SYSCFG_K0LOCK, 1); + cpu_interrupt(cs, CPU_INTERRUPT_K0_UNLOCK); + } + +} #endif =20 =20 --=20 2.34.1 From nobody Sat May 30 17:44:14 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1780092114; cv=none; d=zohomail.com; s=zohoarc; b=ZIvmk0JpaA/wuMsgbYt3GcBv4ZYzkL9S5mYA07EIfOf4EdF3d+0P7e1bKhS9eJkv8iZUSkLZqDeC6ot7G4UANMvpVg5W4hLkb0nqXkAqJ/3Q3tCmP7yYkcAhpBFcIPZ0F+EKWr3QS/k3AB/B22mDCWIiaeL7OIE2nNZitSfIhC8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1780092114; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=dhVswS2DZAUJvhZS1jkUEyRUjq/jx8V7zSSA5+TNpPQ=; b=GsaeepnemtUPfHCZEmPd4mZDgj35vA89GF5uLsBV+c9HrtrMJkjWl92EzqutosX5TLv8tqc6qdIa55EC9yYYMQBhWYtzo38rUJPz1bN6w4lIYdgiDGuR4sDOxJfXFtI56gPGdDG8ZtK7viec8d2Z9z5P0HKapTK9gDZY9IB0V+g= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1780092114936196.3165592334002; Fri, 29 May 2026 15:01:54 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wT5ER-000692-6z; Fri, 29 May 2026 17:59: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 1wT5EJ-0005yV-KJ for qemu-devel@nongnu.org; Fri, 29 May 2026 17:58:59 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wT5EH-0000yN-02 for qemu-devel@nongnu.org; Fri, 29 May 2026 17:58:59 -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 64TJZpFB4123908 for ; Fri, 29 May 2026 21:58:45 GMT Received: from mail-dy1-f200.google.com (mail-dy1-f200.google.com [74.125.82.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4efh3n8g47-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 29 May 2026 21:58:45 +0000 (GMT) Received: by mail-dy1-f200.google.com with SMTP id 5a478bee46e88-304b8d0ee63so5136832eec.0 for ; Fri, 29 May 2026 14:58:45 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-304ed5a9d27sm2428313eec.25.2026.05.29.14.58.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 May 2026 14:58:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= dhVswS2DZAUJvhZS1jkUEyRUjq/jx8V7zSSA5+TNpPQ=; b=HzUZTN3XY5hjXv2r yVKzHNFVXNJ90G1ec/zu6PXT2cRKMlBuJiDx9jJqowRL3RUvUXK49YcvCqRQNnTQ UGzpPEeRgxCspJm4zktq0Or9lShTUKhhNdWXBLzrEK309EnCtlbEcDDvQ7xciixf 7G9xZzMeG5Sr9/TWssN9THTh0g1F+8y6R2v6EeBzqrV7IsTtGzgNFxBqQzEPelRr oGXalMbudF/0unYAN1zO2kxMie+BSM2I4DdkjqRhmgFjBGsyBNK3NGNSWM8dJ/Tj dNlt0l50v9zGF5Bz82mDhb3sSWhaZSTphWi6tPn95WGFhjE6pQm6pQ2PxHGGRbLm LopeDw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1780091925; x=1780696725; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=dhVswS2DZAUJvhZS1jkUEyRUjq/jx8V7zSSA5+TNpPQ=; b=cgnKJ8rneW7ffsPzL4t5PhDnvBSNCLriYlpSFHKPzQq0Cg5J8pwZ1m00W+fQ+fV/rW hasRJHW+yZ4bSG8do08DQnFk9gbgm+c35r6U8qu+wY1Y43DfajHihayBR41F4IGI2fg6 XaG8U50iZjreufZS5sLrdIj7/QzwcyMnwtmJ07VxTZ7UxI3hJ5mHnSUOrzcxH160i/BF CWmO/NE4YIHmo4YalSqFE2tbh7LZ1td2sQ59qTD9fBkMXA494NAtQIITJqTc/3ZRexJz n/SDM0a5JiW31XeOLJoKs0lYhUBslOgcvciVR9hL6Uf58E6dQxItQ7shrQ9MQTMwXCqn /i9w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780091925; x=1780696725; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=dhVswS2DZAUJvhZS1jkUEyRUjq/jx8V7zSSA5+TNpPQ=; b=UKIAdIRLrA7BuGejQ6r3urCdHvpJ7Vq9EcXrmGAb3T8ACeVp+Tyj/2TPwpVdHAtx91 iFxDp/BSa86Tk/IICPsl7K5zQ25OPQhrF2d4Lbq3ArMazYcxW0vkkQx78o8fls6k8t34 J+s7Lj/sUSyMTBr/hkXZg19dabHe4LPWnrHw+c6npxC/XiLjP6ZQ2C5qJtBDBqcu0K9R RSKCwI5/suVPn3jGm5q7isLXM07NZV0vEMqMDz/2Z/M//L+ibGrn/jVRya6TxjmMjI27 qqG0KuYXuCLb2qSTt0o7OmtVFSaJoiUdBEtwPlMpz6XnrD+7jc903B/8qvC77ocHea4s NPNQ== X-Gm-Message-State: AOJu0YxbbFojARYAI/EDhcJw4u3uun7PhP2NMH1/90vPg6vX57RkC2kJ oqiGA+zEq2QJHBmUxNmlLgtbAOddNxNv1h9d3sI2KbSLl6OSVlFtZGnVKh8bFEFZjYu6b/s1chY p8y0nZkvGtM6uF5KqOtX07S1fRnr1WHMVlrOotc/vL5yS3w7h6udX22SSFYwomdmi/Q== X-Gm-Gg: Acq92OHWWBlwxt1ABEncoDObZHmj5u7MHNtG5KxnDZXFKn2tOwyElN6bvCL3oVjtFln Dtelq84k4w6DKf9HFAmrV3cz3uIJbISbeYq9C6D2YWO/MimVRmQ/fAFdQP+DIQIiSGGEX0JSWjs V+eyVDYXO1vbGNB0ffxNDeQVoFXNPHLAusRiXqOVAJcNGg6k68rrItbVWkdSMp6SKLfA+jTru4I b5zCILp3XDWaAkjIj2WyBYJQuwFhrG+qx8Vg4QBJyk9FodF47g/yeGJWKZxFih8AvC+wJLNLPW7 E8gy6py/fQc8KybrdYqjbC9bbpx1yE9pivGYmDqL1wbtWcJTiUv0nYCJ/B//4UmqwpYnff/pU24 p+OGpI+X9Ktlc59aeK8y06My7dhFPZBvOkWY90QLv98Vcd1Poz+c+Wrh8px5wA1MvhQu45MU8DR nETly3 X-Received: by 2002:a05:7300:a44c:b0:2da:a813:a5fd with SMTP id 5a478bee46e88-304fa5a7ac4mr826003eec.22.1780091924830; Fri, 29 May 2026 14:58:44 -0700 (PDT) X-Received: by 2002:a05:7300:a44c:b0:2da:a813:a5fd with SMTP id 5a478bee46e88-304fa5a7ac4mr825978eec.22.1780091924029; Fri, 29 May 2026 14:58:44 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, matheus.bernardino@oss.qualcomm.com, pierrick.bouvier@oss.qualcomm.com, ltaylorsimpson@gmail.com, philmd@linaro.org, Brian Cain Subject: [PATCH v5 25/28] target/hexagon: Add PC to raise_exception, use fTRAP() helper Date: Fri, 29 May 2026 14:58:03 -0700 Message-Id: <20260529215806.608770-26-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260529215806.608770-1-brian.cain@oss.qualcomm.com> References: <20260529215806.608770-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=RcCgzVtv c=1 sm=1 tr=0 ts=6a1a0c15 cx=c_pps a=PfFC4Oe2JQzmKTvty2cRDw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA: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=6Ab_bkdmUrQuMsNx7PHu:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTI5MDIxOSBTYWx0ZWRfX2yK51q94+nXK DhkAKTkQdOsPblbsCzlwApd0rB03myXvbQrELQykKqcoIxhViyqLDe0rS7OY1GAEdgCau7tedZP WBLg62XkbevrLoozmzSzLTpTWp127jLhxuCPSEZaVP8rj9gBTY5IUq3zcGV+iGVJfZntD1NPhoo 7EDwgMwi9l0lCVQvlqscyqMfKY5udDHExZVyi4xNDJ7W8JspuC+lGRuer7jb+AQOC+2hnrxQK42 btBL8g3xsCmNIVMg85vTXhukcCBCffzazfnOUcp0+H5gS1LYiDuOc5tuYCncA0Mq1z7SV6RuU9v BF28DOySxVbsWlGOzoUIwuLBv4pDsmAT7S9bJULOBX8cPFx0tkf3J1ofYLKL0TW+KUn6ZeO0egI cLA1QRjXfscSxWGWCxEw00u69E59vnxVvHTdISYUxFGTlaH+Oq7Aq2WvBjeD9O0cjlxKMwTG5q0 f2a9G8mL8THU9BEZNbg== X-Proofpoint-ORIG-GUID: Edv6yTCRmA354CGCHsOQ5pq9XO1JOnk5 X-Proofpoint-GUID: Edv6yTCRmA354CGCHsOQ5pq9XO1JOnk5 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-05-29_06,2026-05-28_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 malwarescore=0 lowpriorityscore=0 suspectscore=0 phishscore=0 bulkscore=0 adultscore=0 clxscore=1015 impostorscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605210000 definitions=main-2605290219 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1780092118021154100 From: Brian Cain Add PC to raise_exception helper Replace the fGEN_TCG_J2_trap0 macro override with the fTRAP()-generated system helper instead. Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/gen_tcg.h | 7 ------- target/hexagon/helper.h | 2 +- target/hexagon/op_helper.c | 10 ++++------ target/hexagon/translate.c | 21 ++++++++++++++++----- 4 files changed, 21 insertions(+), 19 deletions(-) diff --git a/target/hexagon/gen_tcg.h b/target/hexagon/gen_tcg.h index 4a58ead877b..a28af0c245b 100644 --- a/target/hexagon/gen_tcg.h +++ b/target/hexagon/gen_tcg.h @@ -1349,13 +1349,6 @@ #define fGEN_TCG_S2_storew_rl_st_vi(SHORTCODE) SHORTCODE #define fGEN_TCG_S4_stored_rl_st_vi(SHORTCODE) SHORTCODE =20 -#define fGEN_TCG_J2_trap0(SHORTCODE) \ - do { \ - uiV =3D uiV; \ - tcg_gen_movi_tl(hex_gpr[HEX_REG_PC], ctx->pkt.pc); \ - TCGv excp =3D tcg_constant_tl(HEX_EVENT_TRAP0); \ - gen_helper_raise_exception(tcg_env, excp); \ - } while (0) #endif =20 #define fGEN_TCG_A2_nop(SHORTCODE) do { } while (0) diff --git a/target/hexagon/helper.h b/target/hexagon/helper.h index 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 2988e53d458..4eb9f8092b7 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 dbc76419215..c37770bd92e 100644 --- a/target/hexagon/translate.c +++ b/target/hexagon/translate.c @@ -126,12 +126,19 @@ intptr_t ctx_tmp_vreg_off(DisasContext *ctx, int regn= um, return offset; } =20 -static void gen_exception_raw(int excp) +static void gen_exception(int excp, uint32_t PC) { - gen_helper_raise_exception(tcg_env, tcg_constant_i32(excp)); + gen_helper_raise_exception(tcg_env, tcg_constant_i32(excp), + tcg_constant_i32(PC)); } =20 #ifndef CONFIG_USER_ONLY +static inline void gen_precise_exception(int excp, uint32_t PC) +{ + tcg_gen_movi_i32(hex_cause_code, excp); + gen_exception(HEX_EVENT_PRECISE, PC); +} + static void gen_pcycle_counters(DisasContext *ctx) { if (ctx->pcycle_enabled) { @@ -140,6 +147,7 @@ static void gen_pcycle_counters(DisasContext *ctx) } #endif =20 + static void gen_exec_counters(DisasContext *ctx) { tcg_gen_addi_tl(hex_gpr[HEX_REG_QEMU_PKT_CNT], @@ -211,8 +219,11 @@ static void gen_end_tb(DisasContext *ctx) void hex_gen_exception_end_tb(DisasContext *ctx, int excp) { gen_exec_counters(ctx); - tcg_gen_movi_tl(hex_gpr[HEX_REG_PC], ctx->next_PC); - gen_exception_raw(excp); +#ifdef CONFIG_USER_ONLY + gen_exception(excp, ctx->pkt.pc); +#else + gen_precise_exception(excp, ctx->pkt.pc); +#endif ctx->base.is_jmp =3D DISAS_NORETURN; } =20 @@ -226,7 +237,7 @@ static void gen_exception_decode_fail(DisasContext *ctx= , int nwords, int excp) =20 gen_exec_counters(ctx); tcg_gen_movi_tl(hex_gpr[HEX_REG_PC], fail_pc); - gen_exception_raw(excp); + gen_exception(excp, fail_pc); ctx->base.is_jmp =3D DISAS_NORETURN; ctx->base.pc_next =3D fail_pc; } --=20 2.34.1 From nobody Sat May 30 17:44:14 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1780091997; cv=none; d=zohomail.com; s=zohoarc; b=XNOxR3wMp5fB4PBpwyAHQboImgKa3a/iYcznW2fHzkVacflEOG50oH+rP+isMA3SFpXwlykfU+vGOnW8H05zThyUtE+rDSFDR3byb65uNlcakf/PS0kJOhARTg8IOkivYAv4sbnvguGXD6z8yRdPseUSRvV8iPI8dhHQnwcyTA4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1780091997; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=eP6hz/AmRKjYoNqmBmo0YYeVSElPia5t2McZa+K2uYk=; b=d7oiI/r8mddEuPHxaPfVTTo6YxhPrSxCA/Ya/mqx0HT0lqMZU9PmAkgRosOcth+7zTaeBkuKSgkcpiOlhbS9lMywJhUwywY3GJYiXKKibFNbc7oL0J+lL9S+4qAwyLSdBeZaGQkXZGpilq7LC/1v1vx8H7aF/inGjXdh9drFJBs= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1780091997696603.8915244290711; Fri, 29 May 2026 14:59:57 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wT5ES-0006Bg-CT; Fri, 29 May 2026 17:59:08 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wT5EK-0005yv-GW for qemu-devel@nongnu.org; Fri, 29 May 2026 17:59:01 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wT5EH-0000yi-KR for qemu-devel@nongnu.org; Fri, 29 May 2026 17:59:00 -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 64TI2FOS518305 for ; Fri, 29 May 2026 21:58:46 GMT Received: from mail-dl1-f70.google.com (mail-dl1-f70.google.com [74.125.82.70]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4efechhm0u-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 29 May 2026 21:58:46 +0000 (GMT) Received: by mail-dl1-f70.google.com with SMTP id a92af1059eb24-135916eefa0so5175689c88.1 for ; Fri, 29 May 2026 14:58:46 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-304ed5a9d27sm2428313eec.25.2026.05.29.14.58.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 May 2026 14:58:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= eP6hz/AmRKjYoNqmBmo0YYeVSElPia5t2McZa+K2uYk=; b=GYNwfRz1BosDasDY bpjhIqkYuGqnUX2tg7B62dn8U0+PDLyUhQDbEfFQNlys6by3OjK0NWjYBli+ASzA O+KH2R9OCfQNDT2QQ8WYzJvWdzK8qk5NEew/L/l4C0QEl8YglgFfXR6KXdRkuB62 Ya7CsC3VuY8Yl5bPZ8GGOu7KYllynSktynXWC+ZP4iqujKM/6MU/qFiDm2ciRRTw okj2ag4YiAA5o74PtXTBcR3gI6RirmNtTBZNhRI49w9WHOvbwCgO3371SwLqrvkd JGil8G2l+DjXrKXzg+6Q6hztdc2paYxsvthMq6tR12hSjKbVzCD5VOtV2X28KQJF ETmDGg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1780091926; x=1780696726; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=eP6hz/AmRKjYoNqmBmo0YYeVSElPia5t2McZa+K2uYk=; b=IBTgw5fSYqPj/qV/Hhm7ibiXzY7s8eW4ePoW8OcdyAIuKH8XQkuwnmbeOf0Yq6O46y 88lnjgCs/O2NdeFc51BCyoe/RiEywq9wptQX/DOndOd/PeEEYZCe9tC+8pVyNw46mRxD /P/GS9mzi6/W5UGhMltwWUDomZzigwTFeHXDjo1dZWuMcn4gqYHEdER1EbewLfeeW3Vz ZcY4EwKzx/ji/Yi/61PklxZ2WTQVqyGPc4gC7bVqR5BW5eSRTRjMc3o4qyhdz97eotbJ PGSx0TQz5qZGhAPSanoPsXfRFRHNjLbdO/NzM9kATa1mdFlvtvlewHDB/LaRFgX5fvyj qspw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780091926; x=1780696726; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=eP6hz/AmRKjYoNqmBmo0YYeVSElPia5t2McZa+K2uYk=; b=Mkob8KXwoeXHABNjSyrfGX08nQFMLU40fs7mnKgUNkPDFKnYRCaLy5DsyOko2dJRj2 sMdDqJYHvgmUzQey9MWhy1NA5AQFLP9d8Rwf4MgJYE+WpyumP/K8AghKMtSbA/G6owNt pR22PtERnicBgLhDH3GUcEzRYzyv7xOVrxEQ/O/oggTe3oF8fBjK+GBMU8jbT5Oke7qr SeIPsy4/x0GYSzXOyfzTdmrhn6SSPhWOjiqBO7o/Sw7R4ucVQLTbOxTRNJY8T3lkbVm5 tH6vGzXYrBet/cGsso2xNvrJfHmGTFVnwZSTgUlOZWs/NHGwsghHlHU8XMqezjVQpTCa DDTA== X-Gm-Message-State: AOJu0Yx2an8daZoNGSwOn32PkMFpxpOr84XlXcWcUFvSXnxZg7/seDwo 3A7yQKBEbObHNcyxwArhYmA6Ro2Rk9VOFrSj60mz8VJbQfbSbHraHP4ate2sUWk0ZfDQbCb/e2B 4NMX7m6eaW/G8T+1IXRXKNTdhefnp3A1AIM9Hqp/x6jf8QFWNnrCCHBSgDyEPSJav4A== X-Gm-Gg: Acq92OEP+BKntHjhlClCFA0ASrgTMklDebBCsCqbB4TvtF69dfLUnTjTi/xP+pB5H78 FT1UeMi3eMN6SAdgNVVUu6zcwJmm1thAn9wwMhLwChaVoUyyodFYZ9QVKELTnW7+1eAYsW+ncyy ZTDs73ycCC99Fx6lK3uYDcwUguDLIIs88TpmA3epAa1IJn9XwsGq79WpgxEnpnxHOeCWtu0tj0Q sRNXf6zfVke8eiiEjx3CfajjPhHDd7D2z3/xUCZAGy7wCYDOTJuoI3cRZLSRm0ayVh5iLLbva6v YCGjkeskTk3AJrVmsCh/mx0Kt0DUoPdlsX4hGvT3+HF9Amj1b1zFUxNyisYk0d1l7JWX8+AtAbo PIX4uyYtMug4oilbrR2J8IkqJRs8DThP54RL+2f6QHsXmkaqaM3DWyT4BF2TUexoDDQcisYB1SO h8nYAH X-Received: by 2002:a05:7300:e58b:b0:304:d32e:65f9 with SMTP id 5a478bee46e88-304fa5295f3mr788667eec.6.1780091925639; Fri, 29 May 2026 14:58:45 -0700 (PDT) X-Received: by 2002:a05:7300:e58b:b0:304:d32e:65f9 with SMTP id 5a478bee46e88-304fa5295f3mr788644eec.6.1780091925094; Fri, 29 May 2026 14:58:45 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, matheus.bernardino@oss.qualcomm.com, pierrick.bouvier@oss.qualcomm.com, ltaylorsimpson@gmail.com, philmd@linaro.org, Brian Cain Subject: [PATCH v5 26/28] target/hexagon: Add TCG overrides for transfer insts Date: Fri, 29 May 2026 14:58:04 -0700 Message-Id: <20260529215806.608770-27-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260529215806.608770-1-brian.cain@oss.qualcomm.com> References: <20260529215806.608770-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: a7I4ll6FeWM3Bw3rsBC48KjqOgq7z8X8 X-Proofpoint-GUID: a7I4ll6FeWM3Bw3rsBC48KjqOgq7z8X8 X-Authority-Analysis: v=2.4 cv=U6Siy+ru c=1 sm=1 tr=0 ts=6a1a0c16 cx=c_pps a=SvEPeNj+VMjHSW//kvnxuw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA: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=Kq8ClHjjuc5pcCNDwlU0:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTI5MDIxOSBTYWx0ZWRfX/U4+gvGWtr3z OFwF+2g0/qd7zbND5SMbKeO05R7emmzlo9RYoiNatsU5Z9wSfOyT0aWC7skmGpBAVNPbEVsRHpx pft7hxoj4OKPBHBICX8RZSEI/t3e2xtfNFF0zLBIBZrgnUhIVZNRP62I6P38TEPUC3d2pVVk3gm 2excYH53awuWag9C8FTPuhcA9EsKfZHChphlb+CNpMfdt9Jli14DsK7tVZaCxb6BoGUeXwT5N28 JFbw4Glr1SBErVs9lrtbII+HO2emJVybnOKy8y4WhjcBGvlYafazDnlgNYFyDvy3mEjAPPIcuJI 6iPQjb2a3WOUqKaQj5R6SdmMXrCLlLG+B91xpiN8rxnlETcjkod8OOEb/CsLWz6iQeaNPFZyXr0 +uZ6LoCGdoKhtxgbdGi5eHMCoIH2pbCai3QLJhYiz7kU2xpHX5sd5NLh+nySgCaLU3A72ZRUynd loJEDyMp63cAj3T8WPg== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-05-29_06,2026-05-28_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 priorityscore=1501 lowpriorityscore=0 bulkscore=0 spamscore=0 clxscore=1015 phishscore=0 impostorscore=0 adultscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605210000 definitions=main-2605290219 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1780091999998154100 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 98cf6216780..93cd4e724b8 100644 --- a/target/hexagon/gen_tcg_sys.h +++ b/target/hexagon/gen_tcg_sys.h @@ -95,6 +95,31 @@ gen_helper_stop(tcg_env); \ } while (0) =20 +#define fGEN_TCG_Y2_tfrscrr(SHORTCODE) \ + tcg_gen_mov_tl(RdV, SsV) + +#define fGEN_TCG_Y2_tfrsrcr(SHORTCODE) \ + tcg_gen_mov_tl(SdV, RsV) + +#define fGEN_TCG_Y4_tfrscpp(SHORTCODE) \ + tcg_gen_mov_i64(RddV, SssV) + +#define fGEN_TCG_Y4_tfrspcp(SHORTCODE) \ + tcg_gen_mov_i64(SddV, RssV) + +#define fGEN_TCG_G4_tfrgcrr(SHORTCODE) \ + tcg_gen_mov_tl(RdV, GsV) + +#define fGEN_TCG_G4_tfrgrcr(SHORTCODE) \ + tcg_gen_mov_tl(GdV, RsV) + +#define fGEN_TCG_G4_tfrgcpp(SHORTCODE) \ + tcg_gen_mov_i64(RddV, GssV) + +#define fGEN_TCG_G4_tfrgpcp(SHORTCODE) \ + tcg_gen_mov_i64(GddV, RssV) + + /* * rte (return from exception) * Clear the EX bit in SSR --=20 2.34.1 From nobody Sat May 30 17:44:14 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1780092098; cv=none; d=zohomail.com; s=zohoarc; b=IQ5TOOrKDHvDhwwrlqWmxVs5aoBxklYga5bKCsh5DSr+HUs4jbUojuHWzJbevlqoTAKqtQkjTSRiChPQnPsCzMndy+ZBOKUdOzNP61/a3bTzwUuSpN+NGWucEsOcI8cbtJvvfowXFDB8lMOBAhedpuSpraBaWIX48gbtrJ1G1w4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1780092098; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=W9aRU99FRJkCFdVjE14GeGuaLGKvifAUAOZ13h7xav8=; b=M36a6zbeokOOxrwaa1GiVTXP/4uaqk0MHrDI/nczdHQ7HJ7REckPLtFXL9G2uEnGW6KSdNPjX/FCa3SqyXg2dkj3/sSRqs0XrbtpM4rbiX0/8wILtTmg2uXOC7rBgQJwk9UkRefAj3IrQQIRxE/IEjJAbIi0FNbnZtZ4C1E7FGk= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1780092098691591.8717877482599; Fri, 29 May 2026 15:01:38 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wT5ER-0006Aq-RY; Fri, 29 May 2026 17:59: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 1wT5EK-0005yx-Pp for qemu-devel@nongnu.org; Fri, 29 May 2026 17:59: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 1wT5EI-0000yn-Jz for qemu-devel@nongnu.org; Fri, 29 May 2026 17:59:00 -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 64TI2PsS1862829 for ; Fri, 29 May 2026 21:58:47 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 4ef3te4pk5-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 29 May 2026 21:58:47 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-304f23c55b2so1037393eec.0 for ; Fri, 29 May 2026 14:58:47 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-304ed5a9d27sm2428313eec.25.2026.05.29.14.58.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 May 2026 14:58:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= W9aRU99FRJkCFdVjE14GeGuaLGKvifAUAOZ13h7xav8=; b=bAJnASWjFYFlPJRD aSeeVH33hKhJ0RZz5bLxAOJs5wHF9o5KixuQGHZCrJxSXjttwMjkqvmdwcKjnDhJ 6cdPglwFayiGzc36hz9iwq1YHwX3cKvdKGpjopH1WCqxUKdZusqcXfYBIgfxX4IK FJUtnR0UZ8cVNiJLMsyo8w5vzwAtRPRartOORk3QOGxKppIPbpu7E/pHS+GHBd9L oLbhXId9BVmw9qF/BsWpOjw6u7WK2d/6QFuOkoIUbWsgmf8klHTi3xzf51Lu522U Kmn7re019rJw5eR1R1X0szzZsAdee+PzdKW8tXNSV06NcK1bU8Wv1D/zuByVSLnc NoEDcg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1780091927; x=1780696727; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=W9aRU99FRJkCFdVjE14GeGuaLGKvifAUAOZ13h7xav8=; b=GB8DolHO5GGUdoLpm2SenzXEUqKcGC1aTk5tWp03beVZJDGrCR/505Z3ZBoNJecebP V/YOIx64hJB7KoJW4eOyC415l3hSq5CZXB/2mBc8YCm7mUHiF3hspxg3K6SjyNx90SJc d0DC5nj/KmpRZEX3zLUO0xH3yjnwqfeSP0ZtoFoGhzgjFTNn0+Ulz3YpWiNV7zwCz/4W iN07FOaACNhNZFy5pQVBSbdz7UEgETxvV9ksSY9ibTSBmKrSxW+aJmBSpgZqLA4TJFCW IMPZh/Bf0F0omGQ1qo8mlddd/3u3iwTX3EPNzzZPNBODSRBRFgq6e6yypzHU4qrdA4pz vXXg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780091927; x=1780696727; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=W9aRU99FRJkCFdVjE14GeGuaLGKvifAUAOZ13h7xav8=; b=cNA3cLGqWFpDTFLH8KvZTGxLrj01nlaJBO3GCstbHHbAeABUOhFgAcecNXsMEDIiOj q6WmWGDPTCTzIGGEY22uh/St1oKlWFFvM1tXfZSJseNL/UdBJc0njoAJvQIoMnZjIkIN Wl63v01OKD/wuOgo/I3rWHOZ2GwSVdvZxPnwTh9xNDPlZkUMggb2K1Ce6Uu6LCTOLHn7 i6DH+KPUVAe/apw3LaaYfBKWv0ignqsWd98F0iKFPu0B1Xn3rCZgBpl+2QAq2EibhQ1I +El2FVi/lwO1xy32FfMUIdU3XWyzLmJQT7vodI/6DGHRDat2Y47/mom08VPAD2GXNW6a e9Pw== X-Gm-Message-State: AOJu0YwFaCMBY3Yu4mnCObbxVwFEnFtdC3ZKYpOmCKnrF+WRA8555aBK xEuCO8bkvXKWmhVlJsOYRXHNmh9sowqSkSIXCZ7OuK4SRy4vtoqn6diQva/WZh37yc7WFLMkw6z uV/HsFzyjFkDVTOKLs1y7t1y7KghDll6O6YgvV8XhKjfBUCOj69OYsubpSnqN/v8ISA== X-Gm-Gg: Acq92OGe34MEH3dmILRUDfG1fYfsduPqvFfvJta+G/uGP9kbd14/IOvezMApsNiRCCO ZftnjP3dk7vPAl41LTWH2gT+LwIBSKx5YY1sacXpLpQdD3A46mrVMCWmeZZGz4GZR+uA7/5zxxW eVenMmav5ZmHm8Ln0q2b4piCR+l//PFnZ6eUzLMQ2Qf2Pn1bT9Ha1mD0LJXXxpLKKWEX4KTM8Li OCjo/6XmXMN+4gbZhYXgpzPwwqqEQScv1ph53P+JBKQZqnx47qHYbSrveOcKOQgtTD9brrphi7a YylHS32mLnbEdEFWpapUTWao6M1uWNkp/MXgBmUcOlS/YPnfkS7hJl4SXit1qvexxGFpBSy811l eVDDPD7uvH4aRNyxyizTjF1fkX5z7PEaUP8RGFG4iF0X0PXtITlvY8ZMir4xb1FfjlFGceMeAYO mXNXih X-Received: by 2002:a05:7301:100a:b0:304:dbcc:5809 with SMTP id 5a478bee46e88-304fa6e71b3mr817879eec.31.1780091926526; Fri, 29 May 2026 14:58:46 -0700 (PDT) X-Received: by 2002:a05:7301:100a:b0:304:dbcc:5809 with SMTP id 5a478bee46e88-304fa6e71b3mr817866eec.31.1780091925962; Fri, 29 May 2026 14:58:45 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, matheus.bernardino@oss.qualcomm.com, pierrick.bouvier@oss.qualcomm.com, ltaylorsimpson@gmail.com, philmd@linaro.org, Brian Cain Subject: [PATCH v5 27/28] target/hexagon: Add support for loadw_phys Date: Fri, 29 May 2026 14:58:05 -0700 Message-Id: <20260529215806.608770-28-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260529215806.608770-1-brian.cain@oss.qualcomm.com> References: <20260529215806.608770-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: d_CA1_xbGNesrHFnPVKF2MAlX_189QGp X-Proofpoint-GUID: d_CA1_xbGNesrHFnPVKF2MAlX_189QGp X-Authority-Analysis: v=2.4 cv=daSwG3Xe c=1 sm=1 tr=0 ts=6a1a0c17 cx=c_pps a=Uww141gWH0fZj/3QKPojxA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_K5XuSEh1TEqbUxoQ0s3:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=M_0_kNSAHlZdZebFLzYA:9 a=QEXdDO2ut3YA:10 a=PxkB5W3o20Ba91AHUih5:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTI5MDIxOSBTYWx0ZWRfX53m78omd11jY h7wsxgZ+BvjnWRovSGUAjm0hXm3n1ZrhoU48aoovQBJ2TQs6DTP04U9bjT4+3OXXVUYsm30ZecW sJMSBFjw7FMl/BCvUkNOLhLIYk0oSpWjzwTj2p7mK5K+8/VKEhIoLmC/pNT4ETw1U+jW8XvmwOj S0jk8/+VFELCqxJtcbdSyqgGLBnOVFYlrH2rl2gbUED21a8URNu8cRp3aNiOH9Iz3Uk5KtiddaQ qfunvhF8XyzJxPxLuKqka5Mrng6r0evK1lZguPAeyIFFbUaTgZcs266GHZUEUyCCMGjlFxVOvyf I+aEJGnQ99TkXSrY6kcd84EvpgnLwyvUQgGyelfKEbi8dIewq9UyREWM2NyzuYiE+/d3+xctEUW ebdRcstGBIGitdCHP/tNGgrnRb0ZL8DdII3abS81J5RDJje3Z/jKqQ5wY+/lonKfUF5IE+8s54I 35PY6HtXtoK7JQD2lpQ== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-05-29_06,2026-05-28_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 bulkscore=0 priorityscore=1501 impostorscore=0 suspectscore=0 clxscore=1015 spamscore=0 phishscore=0 lowpriorityscore=0 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605210000 definitions=main-2605290219 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1780092099073158500 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/hex_common.py | 3 +++ target/hexagon/imported/encode_pp.def | 1 + target/hexagon/imported/ldst.idef | 3 +++ 3 files changed, 7 insertions(+) diff --git a/target/hexagon/hex_common.py b/target/hexagon/hex_common.py index acaaa3c944a..d91a653c3d4 100755 --- a/target/hexagon/hex_common.py +++ b/target/hexagon/hex_common.py @@ -264,6 +264,9 @@ def need_slot(tag): and "A_CVI_GATHER" not in attribdict[tag] and ("A_STORE" in attribdict[tag] or "A_LOAD" in attribdict[tag]) + and tag !=3D "L4_loadw_phys" + and tag !=3D "L6_memcpy" + and tag !=3D "Y6_dmlink" ): return 1 else: diff --git a/target/hexagon/imported/encode_pp.def b/target/hexagon/importe= d/encode_pp.def index 04e911f59c8..1c64495d519 100644 --- a/target/hexagon/imported/encode_pp.def +++ b/target/hexagon/imported/encode_pp.def @@ -384,6 +384,7 @@ DEF_ENC32(L4_return_fnew_pnt, ICLASS_LD" 011 0 000 ssss= s PP1010vv ---ddddd") =20 /** Load Acquire Store Release Encoding **/ =20 +DEF_ENC32(L4_loadw_phys, ICLASS_LD" 001 0 000 sssss PP1ttttt -00ddddd= ") DEF_ENC32(L2_loadw_locked, ICLASS_LD" 001 0 000 sssss PP000--- 000ddddd= ") DEF_ENC32(L4_loadd_locked, ICLASS_LD" 001 0 000 sssss PP010--- 000ddddd= ") =20 diff --git a/target/hexagon/imported/ldst.idef b/target/hexagon/imported/ld= st.idef index 53198176a99..4e1e5d5326d 100644 --- a/target/hexagon/imported/ldst.idef +++ b/target/hexagon/imported/ldst.idef @@ -203,6 +203,9 @@ Q6INSN(S2_storew_locked,"memw_locked(Rs32,Pd4)=3DRt32",= ATTRIBS(A_REGWRSIZE_4B,A_M Q6INSN(L4_loadd_locked,"Rdd32=3Dmemd_locked(Rs32)", ATTRIBS(A_REGWRSIZE_8B= ,A_MEMSIZE_8B,A_LOAD,A_RESTRICT_SLOT0ONLY,A_RESTRICT_PACKET_AXOK,A_NOTE_AXO= K), "Load double with lock", { fEA_REG(RsV); fLOAD_LOCKED(1,8,u,EA,RddV) }) =20 +Q6INSN(L4_loadw_phys,"Rd32=3Dmemw_phys(Rs32,Rt32)", ATTRIBS(A_REGWRSIZE_4B= ,A_PRIV,A_RESTRICT_SLOT0ONLY,A_NOTE_PRIV,A_MEMSIZE_4B,A_LOAD,A_NOTE_NOPACKE= T,A_RESTRICT_NOPACKET), "Load word from physical address", +{ fLOAD_PHYS(1,4,u,RsV,RtV,RdV); }) + Q6INSN(S4_stored_locked,"memd_locked(Rs32,Pd4)=3DRtt32", ATTRIBS(A_REGWRSI= ZE_8B,A_MEMSIZE_8B,A_STORE,A_RESTRICT_SLOT0ONLY,A_RESTRICT_PACKET_AXOK,A_NO= TE_AXOK,A_RESTRICT_LATEPRED,A_NOTE_LATEPRED), "Store word with lock", { fEA_REG(RsV); fSTORE_LOCKED(1,8,EA,RttV,PdV) }) =20 --=20 2.34.1 From nobody Sat May 30 17:44:14 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1780092132; cv=none; d=zohomail.com; s=zohoarc; b=H3Q1oZkLIiemngkdFWDWtJxLcnKj7KvG+Kos59ioSQoE2OHAzEYgE2CGegNIvMuh1iFlrb3BzIxQK3N6kITiSDa0T9RAQr5zj8WCIycfGGYURd9Q0MlIOi+gGR+c7D/A/0yNugeP4Ni5ZwpvITNZddpFbcbvWFOnNOj/yO3S8/I= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1780092132; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=fUaYuHH5toEs9t7RmXfDzu5i0jf4bxYonzDo6f07Vg8=; b=OyNWocnNT9Mb6ZL1QDp0EqmoOB9MEBQkmK79YNBIkOqT6TXM5du7yW16Zu+zKhIYHphIJtowWl43tNXPlSEVKyzJ3dbOSM7dncAkoE+PaebE/BRLl91nDpeE8Jg6p6+xHk63EeHXvYKJQUD2H1Iqi7Yivo4kdHQp8LtJ4RrVFlI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1780092132851976.2796533575307; Fri, 29 May 2026 15:02:12 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wT5EU-0006K4-Kl; Fri, 29 May 2026 17:59: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 1wT5EN-000617-UP for qemu-devel@nongnu.org; Fri, 29 May 2026 17:59:05 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wT5EL-0000z2-03 for qemu-devel@nongnu.org; Fri, 29 May 2026 17:59:03 -0400 Received: from pps.filterd (m0279869.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64TI2KjM2998018 for ; Fri, 29 May 2026 21:58:50 GMT Received: from mail-dy1-f197.google.com (mail-dy1-f197.google.com [74.125.82.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ef4jj4ewa-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 29 May 2026 21:58:49 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-304b8d0ee63so5136859eec.0 for ; Fri, 29 May 2026 14:58:49 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-304ed5a9d27sm2428313eec.25.2026.05.29.14.58.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 May 2026 14:58:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= fUaYuHH5toEs9t7RmXfDzu5i0jf4bxYonzDo6f07Vg8=; b=aWhbzEecMlORpBfU J3YvGEa7rbvvCYyJ8lUGjvJxshtMy94q6W3fCk8G+blYSXF+Zn4otX0ldYaKoTML 4jNpgsXPLUN7lhPEffNyaQMsed3VzCbl7fIrZLwatRC3bcO6045MVevr/0qKX82w 9u8ganId7XYrkOFgKhEezLFl+43uErp5bTv2hdPK/flwWpx1DFkMAaViWpv1GQ3z 44OOFT5RCMNBnlh+0nYUbk7wTScpnUqahEigWOaT8Sc/rYE5X1VSJniYibrKExFU LGSKlnfL1iIg0VMna9VeBk3c4hVeS34GtBBdJZ1HzoTzRSgWO+dnee7OeR/bxVlj b3sT2A== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1780091929; x=1780696729; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=fUaYuHH5toEs9t7RmXfDzu5i0jf4bxYonzDo6f07Vg8=; b=P3su0QPWKtb1dIjkA2j8xIToA47lw0m06LjxQcgF0aycjxg1s5cughWHCNq4oTVm2E d2qxWwFd7YLsNaEbd0WgIj0NBvcnmFu+3pLZIxc9P8bdaxkZTv12grh5r7mm6ciAFMB/ 62fd1EWwOkLgzjsQfIECnAZSUEGDVUpdvyAjXKUxMqFyw8ZEzTD2b1hljYbzS2CjOuFr 4YOUm40mz386/JbsG+82mV95hLmfqgh274NHk80SBfWORdQhE1GPPOLVZOxEEjn89yBJ 9cJ8t/lyPeT6YQJy5GP5pN+anIiHiSJKD1BylCE1nsgRZEtrwOXOqJleh/y4KktWsQ1G 8lIA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780091929; x=1780696729; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=fUaYuHH5toEs9t7RmXfDzu5i0jf4bxYonzDo6f07Vg8=; b=TkXsgpQ4ny0OOA1kQV73Dq31ucoSekFmCwNtLag46NGW+m2dWb6QDIB7WUtlFfVazE gQ+jXpSeYeurAxAGsvShg8FcdgBD7oMs0hx6FLpZ8uaHlp5irr2DpM5CO0XBt0hGmTY0 VTxsr3Cwvx26G55pdiI6943hzZDouci7Pe2RZ9KTYHEEDr2DMbD4t9yW+Eby9RzYXQHP I6d+yl9Ql8j/yaTObR8at3YDl1zZWmpvhMcks5yL8hm3gxiyeZBnaA0UG7thgAKY3bP/ Z+Mxl+fBUY+1KmidhUfx7EOA8irPZC70ek28kV7FgL4fRBwStRgV1FOpY0uIvNL58iS8 1q4g== X-Gm-Message-State: AOJu0Yw/+mlIn+ZCDN73BAvdSntdeCOsDnbEqugAH9vAgENGWHxiJti6 7RiJHpS3GduwvY46Hyix2C8G19LX63Y7Ua+4rQDTGX3RQmTn3SniyQelJ0uj8lBHwOlxMAgtjXl ikPcdhSOZhRcyouSZ96y2TvY+1mIBhu4vk8g9XhAmqNCoNAhET//yR7YyOzzU7i4kAw== X-Gm-Gg: Acq92OGILzYXWuTDSKYThwRNYPGaZygDGJShGJopoQwC0kccPAZ9RDxVreXtVYhHdJx 9LTZKWSl7omypUZBx4D2N9XG4+wEBfJwPcY9CTq4suEEgc5lmKW2BmE7t23++Wg5wluWzGRS3dy /WK5NJesuew1bM5foCWWY1c9rbwmusDSdQbWHJuRjarXf7HdmUjToGXqWpEryJ83PKfUxFdbLud Q4xy7uxZ+Yo3S6bKXqoFWah9pn1TOMp05P8MYAKQ5qnIB8CzcACzik+4tOYXhpljF9QNNBpBcCv XyLX6uwfzRZoUeVSSM/tdnap32q3n794IvJq9bcVUxYSLj2r81UQ8L5LZUIKIaTZMV3h91DR6/8 Z4UshLP6Iy5d4vhrunzwNaZuxjSaF/xnSdNb42HnklUxsErKbtPy29XbkxDttEf/ZgXH4AMAzUI Aq0k4g X-Received: by 2002:a05:7300:2313:b0:2ea:c085:44b1 with SMTP id 5a478bee46e88-304fa5a7a4fmr912633eec.19.1780091928969; Fri, 29 May 2026 14:58:48 -0700 (PDT) X-Received: by 2002:a05:7300:2313:b0:2ea:c085:44b1 with SMTP id 5a478bee46e88-304fa5a7a4fmr912616eec.19.1780091928466; Fri, 29 May 2026 14:58:48 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, matheus.bernardino@oss.qualcomm.com, pierrick.bouvier@oss.qualcomm.com, ltaylorsimpson@gmail.com, philmd@linaro.org, Matheus Tavares Bernardino Subject: [PATCH v5 28/28] target/hexagon: Add guest reg reading functionality Date: Fri, 29 May 2026 14:58:06 -0700 Message-Id: <20260529215806.608770-29-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260529215806.608770-1-brian.cain@oss.qualcomm.com> References: <20260529215806.608770-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: AW1haW4tMjYwNTI5MDIxOSBTYWx0ZWRfX17Apuzq27QD6 WTHaNb03FD9EHTb1DRbU5HCITbY6FyNk/Ob5kB2cU6PEvnUBD1kg+Qz9My3r2s3QR9+Usja6j0I 78brm2/mHtCAX1ydYDoVXPFmeBiFZvMu7ztkUqs0oPp9QebXbOYChyIWzOISOR38t96H0ArvjJ9 2odnyNTq4DWx0t71yO5WER/r3+B09XcfpeMr4lX0JvJpjv1PQdzrX/wXhdZOaahNEMoislhk/HE T46vY5H3Zplba0qE9hbSIg0wM6jNDnIwg9Yx6OgfW83goqVdf2qo6XfTQN8aeMyHcUk3OSx5pQq dOuAQ5BvfIp3u5jfHrOtLpgOhvoXYyJhRSazje2fqytaJulAlNeoIZwoDYqZF6F9+OuWgZFpusa zWlzJQ1QZiiYmbA/gb1xSxnoLA71KRWPwhocu1wq+c+PygMijUEcyxa4rScVf81rg+pzYFv7/5A BY2cJuBz1RXye8gn3hQ== X-Proofpoint-ORIG-GUID: pvyZzdz4sluAbst2KewoaLj0vOdtTxQD X-Authority-Analysis: v=2.4 cv=Tt7WQjXh c=1 sm=1 tr=0 ts=6a1a0c19 cx=c_pps a=Uww141gWH0fZj/3QKPojxA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_glEPmIy2e8OvE2BGh3C:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=IJQQmebJWjVxhimlKuwA:9 a=QEXdDO2ut3YA:10 a=PxkB5W3o20Ba91AHUih5:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-GUID: pvyZzdz4sluAbst2KewoaLj0vOdtTxQD X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-05-29_06,2026-05-28_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 lowpriorityscore=0 clxscore=1015 impostorscore=0 bulkscore=0 adultscore=0 malwarescore=0 phishscore=0 spamscore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605210000 definitions=main-2605290219 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1780092134289154100 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 555955b5926..b188ccc3c6d 100644 --- a/target/hexagon/cpu.h +++ b/target/hexagon/cpu.h @@ -222,6 +222,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 478a89c235a..895afa2c1ff 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -769,6 +769,25 @@ static void hexagon_cpu_class_init(ObjectClass *c, con= st void *data) #endif } =20 +#ifndef CONFIG_USER_ONLY +uint32_t hexagon_greg_read(CPUHexagonState *env, uint32_t reg) +{ + if (reg <=3D HEX_GREG_G3) { + return env->greg[reg]; + } + switch (reg) { + case HEX_GREG_GPCYCLELO: + return hexagon_get_sys_pcycle_count_low(env); + case HEX_GREG_GPCYCLEHI: + return hexagon_get_sys_pcycle_count_high(env); + default: + qemu_log_mask(LOG_UNIMP, "reading greg %" PRId32 + " not yet supported.\n", reg); + return 0; + } +} +#endif + static void hexagon_cpu_class_base_init(ObjectClass *c, const void *data) { HexagonCPUClass *mcc =3D HEXAGON_CPU_CLASS(c); diff --git a/target/hexagon/op_helper.c b/target/hexagon/op_helper.c index 4eb9f8092b7..dcedaa0b2b4 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