From nobody Wed Apr 8 01:18:41 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1773202144; cv=none; d=zohomail.com; s=zohoarc; b=XHROJE1V0/dLQCjk0epWF8uCJ8i0lpSLtIVt5/a/O03N+Kb7hUrT+29vN/w1G2f8w3WYWRQF2hZlL92or0nXX/69jp9Kc6b6L5gseIuIWAb5ZYDQR6ZgpyKTciBNuNtbxB07Mg2xGS14o8bURqZ+62L/oq2RZkoB/liJpzDZuLQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773202144; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=l+1ljzEzP5x/CpA6C2C79uaz/rBvlTsDxidicaD749M=; b=Vs+e2tO+L1vCRmDce8Wew5Ihe9SSxXr4MESFibECgW4QIpKE0/CkeZegXoY7d0TV5vR2N8jr23HjqlJ7+On+sqL/CLtub40vVi+KB4rruUG1ZoeATpGr/xxI3ySgWs+gL8EnPmwMTJmg31Xlq4UHg4XoJ9ggtRSBVTR7v/K0FiE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1773202144746857.5470745482186; Tue, 10 Mar 2026 21:09:04 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w0Arv-0000lg-MH; Wed, 11 Mar 2026 00:08:23 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w0Arn-0000kd-1O for qemu-devel@nongnu.org; Wed, 11 Mar 2026 00:08:15 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w0Arj-0008SA-5v for qemu-devel@nongnu.org; Wed, 11 Mar 2026 00:08:14 -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 62B3Ewic248694 for ; Wed, 11 Mar 2026 04:08:08 GMT Received: from mail-ot1-f70.google.com (mail-ot1-f70.google.com [209.85.210.70]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ctqv11svd-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 11 Mar 2026 04:08:08 +0000 (GMT) Received: by mail-ot1-f70.google.com with SMTP id 46e09a7af769-7d74533e53dso24546825a34.1 for ; Tue, 10 Mar 2026 21:08:08 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-4177e5ea30asm998656fac.10.2026.03.10.21.08.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Mar 2026 21:08:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= l+1ljzEzP5x/CpA6C2C79uaz/rBvlTsDxidicaD749M=; b=jztGzT/VNfMCLiWU 3lgCQRvg9dgwRR5qtm0W7SY2jtiouqSX1idPr/EMNS9Rn04UjuFL4Y2Xnj/aMqGc gyN4xrsQhoPC1ck0ddsdL4nGFrfzquVH6VxTRftE3EubeuCHn1uY2L4TUg1W8zDD KweQck8L6sLc2D0/mJupUoceb0HqcevU+e2BHreNs5Xqd0vjEqtFNh+YOrn9l9LV +iBkJFk+3FNhiPTNagBfg2ml9yiVGfXfY3IipZIci0wFtWbK3urZHiokCRNhCHr1 X+i3jNYOkT6SjGT9itGlPXmMjECu/5ylIyi3PMXsvFD5/8BRsoRj3QWhFmPPeEIv sBqOBA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773202087; x=1773806887; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=l+1ljzEzP5x/CpA6C2C79uaz/rBvlTsDxidicaD749M=; b=JsaldbgNU6GnHY7u2rHbv7gzGydo3leOijVjUzpRU123LOD/wB2lUNmHtqCzOJZTPN +0liQGSLduvMUnq5F3b1v3W2LBtgpUGXPyciYAbGjGssxeSYiFyrCZNRcyhkoRgMwHoR w1inPBlUm+HFU9XKf5mOfp6I658/NSeRomgev2I61HfYU4kLcPJFZV+IanIi6HRErvbq lS6ZLGSr/iPoqZJgDmB91x113BpgtRc4ddQi0TjHR/XQGHve2luG/hjpigeQpbO5EOEe GEnQksLEXm0OWso/NJb1oyRgjLSXc12XnB/3mxZ1hRoAQ41APfw+8MCFKKMvjm1zlfF6 Jkmg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773202087; x=1773806887; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=l+1ljzEzP5x/CpA6C2C79uaz/rBvlTsDxidicaD749M=; b=i59nwfomW+ot4QqJJeo+AL1zoegnKF74x7LBWoohbkcTSyDmQlYkRQ3Qj1Guk9rrqk JaucfYnMhXTf0QlgCNkreSjac8BYaYbtV4zYeq55eS9n+QBfa3qzsxeGsIwlP0Fs6SHT H2nkjNRjBbZTA7NLDjXOgnuvxrU+rP2hnBmNAr8p5w3W+lYLwBp3+DFeOtZb1AV1Ij+y Hc7CwVWlpZTy3Pgh4VRm23czpEG0vSDCeMYHeIKaye+SCrtpWZ0MxgKTmyQnjRrV6NAv l0ZDXRjxgLOiei23uLNF5HPiHfRGpF2ms+rsBrhgZ6hLp9ExT5cv2JikuUMuP0qkQ8v2 J/Vg== X-Gm-Message-State: AOJu0Ywe+AYef94cMHhRd+zsR95cEWNG3kfHXbMhEDwMkEknCuldgh2n i5IyTRbDxik9qs92oGR6Jyarnt91rJihCNk2tllgWGllxDwUcgIFXpZ4Tkn7aWAGOHp/xgO0Waq fhK/4iwnF+g3nq5c18YMhkqhKmpZJXM80B1aje8cd9K6PLJVmsC4VR8GWQz/zPaWPzQ== X-Gm-Gg: ATEYQzw6BignYO1PvdiKthQGu5Dyx1C5QlOlBmby7xKi58OHy3YoYCC7lQubgllPH7w EAuNrRIk0vs1egYyztgD0I2o3r6lfguBmnPO5u/9/B6AEvDTbNaUWjk9IwuMl24tBNATRLbbJUL 8OhQrvRYk46U3vqUou92t7bfFMzufO1GAFN783bBkl/wi/zKsyu3UryT+p4jP+kUmF6t5JY1Vqc XiKDf7bgETosqFHKDrtLxPqllwRT64S1iW6BCEZ9+tJ1cIrat890dUmBrSsL/HgW4rW3XMlTHoY BNc/RFRv1HaInYjqFQGCQGdCPFB5x5MyMMgpx1WPIgi1ifrmc9NKdtR+AIYs/wXjyAjAI51XtxF qKwfdyv/rVq2gThYoE8f4E4gwCoDuZrqsw7Y13A+p//yYsvwZ2XiMp+SaRfternhiNqQDCw== X-Received: by 2002:a05:6830:6af6:b0:7d7:4d95:23bd with SMTP id 46e09a7af769-7d76a92be82mr1080541a34.34.1773202087405; Tue, 10 Mar 2026 21:08:07 -0700 (PDT) X-Received: by 2002:a05:6830:6af6:b0:7d7:4d95:23bd with SMTP id 46e09a7af769-7d76a92be82mr1080524a34.34.1773202087063; Tue, 10 Mar 2026 21:08:07 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, philmd@linaro.org, ltaylorsimpson@gmail.com, matheus.bernardino@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, Brian Cain Subject: [PATCH v3 01/32] target/hexagon: Implement {c,}swi helpers Date: Tue, 10 Mar 2026 21:07:27 -0700 Message-Id: <20260311040758.1068731-2-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260311040758.1068731-1-brian.cain@oss.qualcomm.com> References: <20260311040758.1068731-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: AW1haW4tMjYwMzExMDAzMiBTYWx0ZWRfX3q5W5rNO1djf cd1hoVeEvJAIFhjeg+PkaDG2Q4N4jpbUhR3UpI+QblXU1f2S3dq1Cf3EAPRoxfL+axL+lmYcAjq GIl62FNjvVnshevuSDmDrU9k7wWFBoJOpe2nHdlhljvVNlnXnXADWmRvjD7Dmjh0RFgqJIndP0Q /IltmBKSeoPbJOu8+V3RqbNHQhRnwlZVTmOo2LvudlVN1LRAMtTLjYIxoNsw78ZUyhU0cjYRdOE 18nYO1syXukKXV1Y3EIh/lJZUONEiIBZodMFW2p0lgyvqi4bQA2GlddatTj2h7GAMaRYnXIsrvk l9+k8SFuHZPD+3S2qhkQBGLzdnNQBqJy05VJoTFzbKEI/MrGFV89zjMRGRwfvgi3tt9Fta7IWKk sRv+LF1cEN9f51z2aN9rqPAB/p2Y1GnQ+oopEg/lcvDiqGPYXP0IPODRSUPXik0hGfKN+GRrmXc qM2Na6216gnyQ1gMmKA== X-Proofpoint-GUID: sVayK8HFJTkHwU2A0nSMzzLim9bd4lcz X-Authority-Analysis: v=2.4 cv=S5vUAYsP c=1 sm=1 tr=0 ts=69b0eaa8 cx=c_pps a=7uPEO8VhqeOX8vTJ3z8K6Q==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA: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=KN34Fzpn9o_w8YhA2GgA:9 a=QEXdDO2ut3YA:10 a=EXS-LbY8YePsIyqnH6vw:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: sVayK8HFJTkHwU2A0nSMzzLim9bd4lcz X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-10_05,2026-03-09_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 impostorscore=0 lowpriorityscore=0 clxscore=1015 suspectscore=0 malwarescore=0 adultscore=0 bulkscore=0 spamscore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603110032 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.819, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.903, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1773202167623158500 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 3517f3768fd..712638defcf 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 Wed Apr 8 01:18:41 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1773202176; cv=none; d=zohomail.com; s=zohoarc; b=Oxl9Dqkc/oPNKNw7l9YShCRoAJYiiK2fhLCmkmVPUr6mLtrstSJ+yuwxlEZak70Rm5HlRAEVba4f0nZRnxhtDpDnkqjPFx2Q2BxQUTxBrryTxnLBLFHIyLf+bpVv7KqCuNRiTQXEOPKbxray1IFsMOPffP55eMPYYSEmupQ4xJ8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773202176; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=Njn6MJ8QWqE3CW/SVKM0GnudCsF6t33VN9glUGFm1pM=; b=Zxs98hl1+RnVzIjr0irTOWklas4i3i4VskN6mVGjqxBdQyBj4HvzYP0Uti1HEitsCCkXdhr+zKXMt4LF56e412Hk4UB618Bjc9yxolYekRjZ4+o2utF7ClsuWEvW6YpPZFmhb8Ti/3+w7CV6s30BXUxhXR/f8n1nhCkO2AXBwbw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1773202176160479.99400574179447; Tue, 10 Mar 2026 21:09:36 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w0Arv-0000lh-Nu; Wed, 11 Mar 2026 00:08:23 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w0Arn-0000ke-1W for qemu-devel@nongnu.org; Wed, 11 Mar 2026 00:08:15 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w0Arj-0008SL-FU for qemu-devel@nongnu.org; Wed, 11 Mar 2026 00:08:13 -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 62B3KZKb303861 for ; Wed, 11 Mar 2026 04:08:10 GMT Received: from mail-oa1-f70.google.com (mail-oa1-f70.google.com [209.85.160.70]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4cthjf3jjd-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 11 Mar 2026 04:08:09 +0000 (GMT) Received: by mail-oa1-f70.google.com with SMTP id 586e51a60fabf-417371eeb0bso10010346fac.2 for ; Tue, 10 Mar 2026 21:08:09 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-4177e5ea30asm998656fac.10.2026.03.10.21.08.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Mar 2026 21:08:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= Njn6MJ8QWqE3CW/SVKM0GnudCsF6t33VN9glUGFm1pM=; b=GLznXvrv7XvhEfsH Zk7Qlnj1jhEOAfbe9SvWKmpGxBlpujiFP4XLJuvGjrwelp8Km6uOPxxCBlacKHTY pLCgL7QrYVDz5XvSzCaYyeeSzmd6D5SP/M1fIHXx1m5oAVmvgb/kv8TgHaxr69eJ of+k3Xrt/Ekrc9jsYR9rb3MSAkPAloa+fECMyiCDICg6Le34jJKAflBr39VAZNAV fZtgOYH4OOjIRF5Uu6SqXudyuyZWSQCJeHcGDFRNnQI9SiLFHvUWnheIEgyeD3gY 9J6wEot96eV5xS1jFCEgvtEOT/BvkXa0ZyDbkQUVgMOne739Vg4/cZK7lfsyuY3y /cltBw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773202089; x=1773806889; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=Njn6MJ8QWqE3CW/SVKM0GnudCsF6t33VN9glUGFm1pM=; b=P++SJ5ANqtbvtVN9CFrbiz50VhM59NhSNxCW+dJudMzlyLtoWcYbXD/kBiOnPFDKdv GXk7D4lbQnOYSek2QuBTf7cJy8u4ADZNhyJ/GW7DMEZAtiwlXHnOeW8koFRz4tO0VMI7 y7StQnfiAHZYZqqQ/G2sxRwb/USm7hl3F7c7vNdmk7+FuzTI7AvLX/iLa9T2ubj45sXH ti4ZO4qY+5sDfVvrEnUucJcz3xb3L3MRB93jIXVtEhGW0o0/qERvuHt1KtdAoITtJIbK Z4UiuU9gBs5iTRnuCQMNqJTcP/lmMqOs6buk0VF9yPEKdwKDtqGfapr+7pB5QGBjDScJ QY9Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773202089; x=1773806889; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=Njn6MJ8QWqE3CW/SVKM0GnudCsF6t33VN9glUGFm1pM=; b=eiOul6Sa7L1UgBvDjP1qkgKv0iGmvIk7hCQD42ZfND92FmIq9afC9mgbEw6YoVKxlj hJPS9s3xchYbZcwXDZyVWMuQHRbC9RkgRLkUr02tkGtttO4VITfe/WevPKANDcARaHS/ TD75OTATsgcY23080AuEZ7ZzgJx/Gfa+5y/KUbQbSJfwX+LpIQ/+NlDubNJDr4xDVCpY qRYBMbHNxMDad04JKNoMxHK77whqao2KEIzFNbZOptVObu8fdqNkaTEoMAW3+G37nYrZ 8Kz3ThSmJ4VRRnpDYDwOK7JoxUCrRe5YnQ9plcQTuEN4lNcixe1roBLECFxfJKspVU51 +2Qw== X-Gm-Message-State: AOJu0YxCACOoJvzSa8Kai/ZL3SiLuMtLyDLQJsuSfZTaSMi/10vUaJW8 Je8/uydWEDvUoCeTkYS/4Pp1PB8fMVqX7tr7MQLRVP4y4ap5683/d1JCkk3A0tRuRs/vD1WFxT1 1sCjcnn6lgpKZnVJ7f1Ezw9JoLsXSlfnFr7poch87JTjZJolC1fugETEiuBeiEp0efA== X-Gm-Gg: ATEYQzy9YhjC6O8+FFO8qMm8BCwBziTwddTCH5gJyGQSEPK2ZNmWkfZCEhbdzvBfUgZ zznSboBQUWaah96QBZ3TLLlFCKLfgxpXTFIv5AurytW3JUEMMg5uCJzRJoCG2v9jQtQec+XeVdG Uefiz0So9I3uul+Z6xCEG+0gcwr0U5E6NMKskpD1IRslTylvH48YeBzW7KGbAcF3oCdnAYjjQ74 E0vi5DYICRQqewpEJq/AH3MJV4Kj8pSz5FQMy3JaLqjHlYOEXU+8F687kWTKnw842hfQ4aidOOM uBMK5LGUOdIke5ejGzZf04cbHjj9w70oChul1qDi/oR90qgSwivwkLqNZty05b8+tOUUPj/Kq1o XMK9cTeUZDXDeanlW7CYL0oQhprVA2NYRyLwgm93k4LmpBFylfe1OQ+KkGrv5cJ/Y7HjyRQ== X-Received: by 2002:a05:6870:524:b0:417:369f:4dee with SMTP id 586e51a60fabf-4177ca529b0mr918352fac.31.1773202088846; Tue, 10 Mar 2026 21:08:08 -0700 (PDT) X-Received: by 2002:a05:6870:524:b0:417:369f:4dee with SMTP id 586e51a60fabf-4177ca529b0mr918341fac.31.1773202088468; Tue, 10 Mar 2026 21:08:08 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, philmd@linaro.org, ltaylorsimpson@gmail.com, matheus.bernardino@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, Brian Cain Subject: [PATCH v3 02/32] target/hexagon: Implement iassign{r,w} helpers Date: Tue, 10 Mar 2026 21:07:28 -0700 Message-Id: <20260311040758.1068731-3-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260311040758.1068731-1-brian.cain@oss.qualcomm.com> References: <20260311040758.1068731-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: -YrllAoCJ5cLXTPQjyTMt9TWBGqTs6fN X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzExMDAzMiBTYWx0ZWRfX0USQMohAe+LJ 2XOeXFQ2BccocCwDJ9t0KYiRl5WPCnBHyq+SKI8zBsd0FIza+IF0+OpHd5CPPM5kITR2yBcFA2M 3GbS/LjJ5Qh0URNavnOE18uJdcHcYhB013Rnv8pLJjMefBIr82NWoG4TM4lINPU5C6Y6HusXfbB NrSofYkZaGQ3cjsXWApJDNwjXcN7gt/RtsvYK+nAGonEBlYyowcoL4aBJz6fPHmw3JGLQF1pcCA mvwzITTsA4Xr7ppG9BzYMYikwvyXftwAOR42opDJn7k2C316rSxUhje0oiq7QGbVc4G7IHxkIzF FR8zKLhSQ14/VtJQ3bv3aS2V0h2DgeM5L8SAjrwSZ74RWfGl7bbovApsBKpI4uteQqMtJ5NU+H/ ELwe2PA12u5fNJNHQ1OfriYzOBFiQ/TbTu+JVu1bGHg2ZFBYVh9bm0rWtSnauynleKp3z++UuF5 qGRdR5bBEp+KFw4oltg== X-Authority-Analysis: v=2.4 cv=A71h/qWG c=1 sm=1 tr=0 ts=69b0eaa9 cx=c_pps a=nSjmGuzVYOmhOUYzIAhsAg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=Um2Pa8k9VHT-vaBCBUpS:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=VnV9S1Uu6eltRR5mmX4A:9 a=QEXdDO2ut3YA:10 a=1zu1i0D7hVQfj8NKfPKu:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: -YrllAoCJ5cLXTPQjyTMt9TWBGqTs6fN X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-10_05,2026-03-09_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 phishscore=0 clxscore=1015 suspectscore=0 bulkscore=0 adultscore=0 spamscore=0 lowpriorityscore=0 priorityscore=1501 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603110032 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.819, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.903, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1773202178108154100 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 | 54 ++++++++++++++++++++++++++++++++++++-- 1 file changed, 52 insertions(+), 2 deletions(-) diff --git a/target/hexagon/op_helper.c b/target/hexagon/op_helper.c index 712638defcf..6ae07cc68e5 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -1416,12 +1416,62 @@ 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; + + BQL_LOCK_GUARD(); + HexagonCPU *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; + + BQL_LOCK_GUARD(); + HexagonCPU *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 Wed Apr 8 01:18:41 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1773202402; cv=none; d=zohomail.com; s=zohoarc; b=UeS0B9YDrEoVcXLyEQVe/2GGTg9n2Lo3Os09VtumHvfsBIIWqMj63qT+6KCQfsw9b1Nwy1iz7xYZrKePqjd3WWqPErNB3TkSVKeK/JVkN6YiGsRm3tsueht1i1LKmH5hyyU2eLvc/McHVQCAU6pKWlpK9EeQJ2T82YO6uGSZLBE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773202402; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=l8ZrU9TquldPbMvr7uofhsxE6jKqHQSW6JkF+q5ajK4=; b=TIzegj897X699lbScMZ9M0HRn34Uzmt1Qmk2c7T2yvUjMUGLGcpZUtD8KSgTtmVDDQv8imfut8ffwC4j6xd6JfW984My8Z0R5qrnDTiuWCI63aZCO7/fb5ZLO0qtGAVWH3qIXHtp78fwaT7k25Fa/JeCJKQ4Uou2yt9MCWJK0mo= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1773202402166217.17496529940945; Tue, 10 Mar 2026 21:13:22 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w0AsA-0000nq-Ce; Wed, 11 Mar 2026 00:08:40 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w0Aro-0000l3-PW for qemu-devel@nongnu.org; Wed, 11 Mar 2026 00:08:18 -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 1w0Arl-0008SW-M0 for qemu-devel@nongnu.org; Wed, 11 Mar 2026 00:08:16 -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 62AIWJX93417135 for ; Wed, 11 Mar 2026 04:08:11 GMT Received: from mail-oa1-f69.google.com (mail-oa1-f69.google.com [209.85.160.69]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ctja2ba66-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 11 Mar 2026 04:08:11 +0000 (GMT) Received: by mail-oa1-f69.google.com with SMTP id 586e51a60fabf-41702ea8343so19796714fac.0 for ; Tue, 10 Mar 2026 21:08:11 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-4177e5ea30asm998656fac.10.2026.03.10.21.08.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Mar 2026 21:08:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= l8ZrU9TquldPbMvr7uofhsxE6jKqHQSW6JkF+q5ajK4=; b=cBa3VRqgcCtri9uV hibWw2XgKkCjXwJ/Ub2ZvX+Nx6T3jwhMjg+LMarhV7jYWcTsOdGd4D+0sPC3hmQT 1WRGTXP6b5ZLdIQ3BZbrT2Vyy7RxoL9c+GgoaJArTrd2Zu2tXxEqEH0qmiOgoGhj NOy36kCoG73/3BqnIDXyk7S3MpfCDU5j2F9uQvcu3PF69q/8aATsM+5WP2SJnKVW Ty++KxXzU2POZisUDwv99IxtZTe/e9TFMxjbmkCOAjZH4oWzPizvuMzJjUhQCG57 YVwwBkIpBMzmKNRrRE7SNI2ZGaY3FzYx0/EVk/tmj6HPGsjSynjKb34eyzK0II3i fDKuVw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773202090; x=1773806890; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=l8ZrU9TquldPbMvr7uofhsxE6jKqHQSW6JkF+q5ajK4=; b=CATFaLN8hBd939qm6BGSyIboA/cfNK9m7RkLN2uevQhz+wLfZKb5Hui2/qJL/Mi8rc ECzis93OATU8CZTGVums390mMqYRLiAR+bQvUhl77f0Y8puwb0lrDOZIbr9KOMEN3ZTk ZHzohzQ+GkXz/rUDUnKoZ5igu4PVi2JPaN6SsfDqSMHjehea+9C7PcphBbs3NtjRkO4o OJdjEkjQNk3V3yKYZkS2fIL88x+8vj8UpqyLvjrJLsXV2uOKLFKGqm+siT+Z+wdJPFkz Dcqr+mVq01BP7DUEKX4Br2Uqq6AkyJ4w5qvA3EMZcUMl2NK33+VUq40zlPkB5lxPGc/N iyyQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773202090; x=1773806890; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=l8ZrU9TquldPbMvr7uofhsxE6jKqHQSW6JkF+q5ajK4=; b=H4qEquDd7ywEP3EF888TiKSDiHWP4iXUyROcnvLT1REiz8pPudrnjz/LyB3mMzLp9D /ZuQ09LWH/R3zkdCf8DVQa7GzuWIUN+HwWCv95UDiaaj5bqr6lGICKGGxiLLnWAcyR06 UE9aWZGy7ima2IBsdmG6BQHrgkGSd7SzCBZpWp+oHOvLIZeLsfZ55N/2OW2smoBhPSWD GfQSLjXNyLUU2wp3i2xf/2xulQCrLikLqOuGiC0hu9f6T6kp4WND48fMMy4aE/KHg958 NWsrlgDMkjh4SeYooKaWEz87uL0DLDpIj0QXT6LAQ/e2hvETV7HOGQesejq1r8ISRdNi TnRw== X-Gm-Message-State: AOJu0YwnJW+2VoOsxJ4mjwpATIwS8B9jq4Kpms0q96YE9fuSVMt/8i/2 LjP/f6r0dlBvZr+1+le+VmsVVBuwM/3u0TA1fkh2594rYyNjIJJFZKcP2dBoVMP2d2tmSzyub3A WzrMB7SAdkZJ7bZBXGeDeNLh2ooLkppgokw9yGxGJjpHVv07SvBE753o8trqsE/kh0g== X-Gm-Gg: ATEYQzx2qZEt4PVyVeshqYnk7m2CMXyCCZLCRLPl8oCp3RYZn8JKF2S6A/FdncW5VaM ur8LKPSpoVNSo3l4itax43k3ef83yUjR9TJZEUm7sWVr3TWyx6C1anNu36duzM3Jwno5P0t/Vx1 1bIxkgAGuwvUX8/D5q2aN54ntMeW2iK16zFTV7avp9Njt8+fymzJxrerk2oTzjaOAwoyF22mTP0 OKqV75coqxjPkZfAflfG/BtcC+ZC9jzTpJ8fMZQBGV5Q30ck6o9l1Imu3sqcCaG/VZLcPm/oU6u 7in/fyUnorfObjfKQsCnpOBeNxuJ7804hD5Iq9LN2THraqs2yxES0IYHwo1ZzrOF40/L63NF7Rw RLUr8jtQpU1nDGAO+fM8KyECKXn0GzI26DP/Dc8gKpb9XSQXmg38DZo6b5yBn53Wpd8Tcpg== X-Received: by 2002:a05:6870:558a:b0:417:7d3:fdcf with SMTP id 586e51a60fabf-4177c9ba9ecmr945576fac.46.1773202090386; Tue, 10 Mar 2026 21:08:10 -0700 (PDT) X-Received: by 2002:a05:6870:558a:b0:417:7d3:fdcf with SMTP id 586e51a60fabf-4177c9ba9ecmr945562fac.46.1773202089885; Tue, 10 Mar 2026 21:08:09 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, philmd@linaro.org, ltaylorsimpson@gmail.com, matheus.bernardino@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, Brian Cain Subject: [PATCH v3 03/32] target/hexagon: Implement start/stop helpers, soft reset Date: Tue, 10 Mar 2026 21:07:29 -0700 Message-Id: <20260311040758.1068731-4-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260311040758.1068731-1-brian.cain@oss.qualcomm.com> References: <20260311040758.1068731-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=c9WmgB9l c=1 sm=1 tr=0 ts=69b0eaab cx=c_pps a=zPxD6eHSjdtQ/OcAcrOFGw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=rJkE3RaqiGZ5pbrm-msn:22 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=zJwIsVx2tkaQg5NJk00A:9 a=QEXdDO2ut3YA:10 a=y8BKWJGFn5sdPF1Y92-H:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: uWJaQXaALEvyg3QOOECxAvhR6WEC4-5v X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzExMDAzMiBTYWx0ZWRfX4Z1nGVAzFXYv RHo6rGtXs5pRZZ3Uhyo3Lcemw0wFyhwlH7G+3RRXT/PqTQZ9yodOfKJm50K5v9fQ3tjiTLNM91r Hw7kFrUEH3UPZA3YAQXlmQ/YAR39IFRtrA07oquwTw+pZ/Em6W54V62oyRdAeDfBQMecT0xYWGJ R4K5acazTbXMva8cSyeo8iOk8nk0xJhHoYiXcOMerozjl9w/zQWYjx4Mba2phdktyqO57j/4Bwp yRSk4h5PRNip+cyp+YV8ygqCT8Rfyu59zG0E27QV+sLtWhXDd23fgblQ4oQol8nafhqYHj+o2DH dqtmhP7CfMIJY/aP6NBQ0639rPZ/T6L3gugld/bMxHosIQYWxTLCPcKV7NQ2essBsYPd6pCeI0N xBYj7xHCcSLVOR7MqZGjAXt/HOr8i/uScDXgoTOiERsSEKkR6amiTe39VwiIjTXsSD5yxvUzneh voIbLVUJv+BzKa9qHZw== X-Proofpoint-GUID: uWJaQXaALEvyg3QOOECxAvhR6WEC4-5v X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-10_05,2026-03-09_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 malwarescore=0 lowpriorityscore=0 suspectscore=0 spamscore=0 clxscore=1015 impostorscore=0 phishscore=0 bulkscore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603110032 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.819, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.903, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1773202403371154100 From: Brian Cain Signed-off-by: Brian Cain --- target/hexagon/cpu.h | 7 +++ target/hexagon/cpu_helper.h | 3 ++ target/hexagon/cpu.c | 26 +++++++++- target/hexagon/cpu_helper.c | 100 ++++++++++++++++++++++++++++++++++++ target/hexagon/op_helper.c | 4 +- 5 files changed, 136 insertions(+), 4 deletions(-) diff --git a/target/hexagon/cpu.h b/target/hexagon/cpu.h index 0017be9dff7..1a3c9014455 100644 --- a/target/hexagon/cpu.h +++ b/target/hexagon/cpu.h @@ -207,6 +207,13 @@ G_NORETURN void hexagon_raise_exception_err(CPUHexagon= State *env, uint32_t exception, uintptr_t pc); =20 +#ifndef CONFIG_USER_ONLY +uint32_t hexagon_greg_read(CPUHexagonState *env, uint32_t reg); +uint32_t hexagon_sreg_read(CPUHexagonState *env, uint32_t reg); +void hexagon_gdb_sreg_write(CPUHexagonState *env, uint32_t reg, uint32_t v= al); +void hexagon_cpu_soft_reset(CPUHexagonState *env); +#endif + typedef HexagonCPU ArchCPU; =20 void hexagon_translate_init(void); diff --git a/target/hexagon/cpu_helper.h b/target/hexagon/cpu_helper.h index d15385daf83..72f83d62a54 100644 --- a/target/hexagon/cpu_helper.h +++ b/target/hexagon/cpu_helper.h @@ -17,5 +17,8 @@ void hexagon_set_sys_pcycle_count_high(CPUHexagonState *e= nv, uint32_t); void hexagon_modify_ssr(CPUHexagonState *env, uint32_t new, uint32_t old); 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); =20 #endif diff --git a/target/hexagon/cpu.c b/target/hexagon/cpu.c index 938492897fd..20c4b82a970 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -33,6 +33,7 @@ #ifndef CONFIG_USER_ONLY #include "sys_macros.h" #include "accel/tcg/cpu-ldst.h" +#include "qemu/main-loop.h" #endif =20 static void hexagon_v66_cpu_init(Object *obj) { } @@ -316,6 +317,26 @@ static void hexagon_restore_state_to_opc(CPUState *cs, } =20 =20 +#ifndef CONFIG_USER_ONLY +void hexagon_cpu_soft_reset(CPUHexagonState *env) +{ + BQL_LOCK_GUARD(); + env->t_sreg[HEX_SREG_SSR] =3D 0; + hexagon_ssr_set_cause(env, HEX_CAUSE_RESET); + + HexagonCPU *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); @@ -343,9 +364,10 @@ static void hexagon_cpu_reset_hold(Object *obj, ResetT= ype type) HexagonCPU *cpu =3D HEXAGON_CPU(cs); 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/cpu_helper.c b/target/hexagon/cpu_helper.c index 6fbf5fc8e2f..c251790e5a5 100644 --- a/target/hexagon/cpu_helper.c +++ b/target/hexagon/cpu_helper.c @@ -10,6 +10,7 @@ #include "system/cpus.h" #include "hw/core/boards.h" #include "hw/hexagon/hexagon.h" +#include "system/runstate.h" #include "exec/cpu-interrupt.h" #include "exec/target_page.h" #include "accel/tcg/cpu-ldst.h" @@ -79,7 +80,106 @@ void clear_wait_mode(CPUHexagonState *env) } } =20 +void hexagon_ssr_set_cause(CPUHexagonState *env, uint32_t cause) +{ + g_assert(bql_locked()); + + const uint32_t old =3D env->t_sreg[HEX_SREG_SSR]; + SET_SYSTEM_FIELD(env, HEX_SREG_SSR, SSR_EX, 1); + SET_SYSTEM_FIELD(env, HEX_SREG_SSR, SSR_CAUSE, cause); + const uint32_t new =3D env->t_sreg[HEX_SREG_SSR]; + + hexagon_modify_ssr(env, new, old); +} + + int get_exe_mode(CPUHexagonState *env) { g_assert_not_reached(); } + +static void set_enable_mask(CPUHexagonState *env) +{ + g_assert(bql_locked()); + + HexagonCPU *cpu =3D env_archcpu(env); + const uint32_t modectl =3D cpu->globalregs ? + hexagon_globalreg_read(cpu->globalregs, HEX_SREG_MODECTL, + env->threadId) : 0; + uint32_t thread_enabled_mask =3D GET_FIELD(MODECTL_E, modectl); + thread_enabled_mask |=3D 0x1 << env->threadId; + SET_SYSTEM_FIELD(env, HEX_SREG_MODECTL, MODECTL_E, thread_enabled_mask= ); +} + +static uint32_t clear_enable_mask(CPUHexagonState *env) +{ + g_assert(bql_locked()); + + HexagonCPU *cpu =3D env_archcpu(env); + const uint32_t modectl =3D cpu->globalregs ? + hexagon_globalreg_read(cpu->globalregs, HEX_SREG_MODECTL, + env->threadId) : 0; + uint32_t thread_enabled_mask =3D GET_FIELD(MODECTL_E, modectl); + thread_enabled_mask &=3D ~(0x1 << env->threadId); + SET_SYSTEM_FIELD(env, HEX_SREG_MODECTL, MODECTL_E, thread_enabled_mask= ); + return thread_enabled_mask; +} +static void do_start_thread(CPUState *cs, run_on_cpu_data tbd) +{ + BQL_LOCK_GUARD(); + + CPUHexagonState *env =3D cpu_env(cs); + + hexagon_cpu_soft_reset(env); + + set_enable_mask(env); + + cs->halted =3D 0; + cs->exception_index =3D HEX_EVENT_NONE; + cpu_resume(cs); +} + +void hexagon_start_threads(CPUHexagonState *current_env, uint32_t mask) +{ + CPUState *cs; + CPU_FOREACH(cs) { + CPUHexagonState *env =3D cpu_env(cs); + if (!(mask & (0x1 << env->threadId))) { + continue; + } + + if (current_env->threadId !=3D env->threadId) { + async_safe_run_on_cpu(cs, do_start_thread, RUN_ON_CPU_NULL); + } + } +} + +/* + * When we have all threads stopped, the return + * value to the shell is register 2 from thread 0. + */ +static uint32_t get_thread0_r2(void) +{ + CPUState *cs; + CPU_FOREACH(cs) { + CPUHexagonState *thread =3D cpu_env(cs); + if (thread->threadId =3D=3D 0) { + return thread->gpr[2]; + } + } + g_assert_not_reached(); +} + +void hexagon_stop_thread(CPUHexagonState *env) +{ + BQL_LOCK_GUARD(); + + uint32_t thread_enabled_mask =3D clear_enable_mask(env); + CPUState *cs =3D env_cpu(env); + cpu_interrupt(cs, CPU_INTERRUPT_HALT); + if (!thread_enabled_mask) { + /* All threads are stopped, request shutdown */ + qemu_system_shutdown_request_with_code( + SHUTDOWN_CAUSE_GUEST_SHUTDOWN, get_thread0_r2()); + } +} diff --git a/target/hexagon/op_helper.c b/target/hexagon/op_helper.c index 6ae07cc68e5..82605f1d4aa 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -1476,12 +1476,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 Wed Apr 8 01:18:41 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1773202177; cv=none; d=zohomail.com; s=zohoarc; b=e6iSPqyFd9i4lObAQ3ZX/jmO0YHEWekHFPiUxBj8hWA0DHKHvbAPLelN3Z9SivSG5qZujDsyi9USvHhsb0UScIuSyYx6lqtSVtJR3kxEt5Ja56mYlVf01Bmb2pOrmOQK7kuptfxQjVDlCu793okkgShIN+HCsK0zDb1/A4x2Hzw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773202177; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=3wMMATC9kZ28VJVgN1yDUOqgmYsX8TydmzBQouHOOJA=; b=QIfWuk8YZLJS8dzu4bD6ZYprNRSg0s4M174KRf60/8Bs3RrSraTip66qrDPY+trS0pxB5aTsqzGg5c/qKeqIssdtN27x1kfkYZXkJrNYDBECi4rMVdhIZ33upusMuvWpxmtgcsPzw0XXhXqu7iDPz53OgCYTP0RA8vXTLPcwLNk= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1773202177053266.21172577108644; Tue, 10 Mar 2026 21:09:37 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w0As0-0000mN-8c; Wed, 11 Mar 2026 00:08:28 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w0Aro-0000kx-7V for qemu-devel@nongnu.org; Wed, 11 Mar 2026 00:08:18 -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 1w0Arm-0008Se-PX for qemu-devel@nongnu.org; Wed, 11 Mar 2026 00:08:15 -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 62B1YlJD508290 for ; Wed, 11 Mar 2026 04:08:12 GMT Received: from mail-oa1-f72.google.com (mail-oa1-f72.google.com [209.85.160.72]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ctppaj4xk-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 11 Mar 2026 04:08:12 +0000 (GMT) Received: by mail-oa1-f72.google.com with SMTP id 586e51a60fabf-415e1ea16b4so88396177fac.1 for ; Tue, 10 Mar 2026 21:08: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 586e51a60fabf-4177e5ea30asm998656fac.10.2026.03.10.21.08.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Mar 2026 21:08: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= 3wMMATC9kZ28VJVgN1yDUOqgmYsX8TydmzBQouHOOJA=; b=c0BE6aa3475QPcxi Yp2/lV5NoU8+U90r8YjGdNJMKm+FkiwHTZmgM2nzQ706EcHfG4Y86FQ2InAryx4n 7umxZUzj3fHzWDUs9auyv/hmeIMZOHXQs+nkSv6UjjfQw2WROS0PzWW3z57HrnyR h2C+rlf4rGcCstUW162hII1JvgOhu2RCUCT4OPl9UnrIpI+4H65TP19l7yrzEiUq sp82jmfUUFvEjwHiCNO2FFkYAlmTjmDtyUKMHXtgr3hWFprAUe5ihCqMPtt8PFzC pCLK3s1qSontM7fuG5HIYsNyjFV3/GNqiFjL4lXDVcdiO2BmcUBeLl/tT8Ij65Z8 nTBlEg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773202092; x=1773806892; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=3wMMATC9kZ28VJVgN1yDUOqgmYsX8TydmzBQouHOOJA=; b=dNIeuwJdstU+T5ogsQ1QGY8Rx5+sPv+D0BCIyBJsh//Mi5d6Q/mYGxivgbI6mCBCe7 4+Y4Zl4t6LC+oWBkU84H6RO8wjgKXffEPO6tC0e5ItY7H1bhgGJXKhN9WFv/kyLlv3Bi f48PmuAN82P/aQ/mYuprHkczy7HphzBXFFyaXnmPMlkpXcDW0wr2xVhHyYBu/vA4ygNf 5bICeSsHbCJdGiPXd2uJ8SLU6aHwdXYyalFlnu7aWRIHxz8eGkeAGBqeLS2jm3CXhTtW RdKoouHtJPQkIIyQOoGjwTfx7lhZ+rLfgwlIQzSpcZ1r+8m5GEdaRWL8EkMhsA/wkMlz tiug== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773202092; x=1773806892; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=3wMMATC9kZ28VJVgN1yDUOqgmYsX8TydmzBQouHOOJA=; b=QnuI7RIxs561IUf2/xX8HmuEccaMYyOO3HIoq2OB0vBDHD1Ehx4f9EVfAjaknO/T5K a3lxFeXjgzP1kPBI6p5bt+hSEqT4t/eNHUX0pbrevFF7HC4dW5xNuPZB6kkojdO5XOjB HnOdRLJgELiGq2ygLzxQuNmvUIey5VoHo6TLjt9tK4NME1QoaNjhu1Y/wxHfJai31I2d Fbp2ENFE/ayVX8zT+I797x+e/u8fW7Ub9M4EPDxy0HdK8SQWNmsSjGz4RGpt09pYBAad 0C/OotdyM5ksSvri51iX5jkq2v5G5e7Rb+RGpy8vC9nhagqOSM7lEOFCGqrklMups/mM mnVQ== X-Gm-Message-State: AOJu0Yxy8f6ZZTVPIgAQPydr8vfteNYYKHSsWdBgm6b9Xfq8VjsSbXMl nBhTJ6Q7TG4KGq4i+1e/WrTXj/7n1n7qyYbIABt4Rgqoo5kQFvLnFZmg+StLE6EQ8RwH0Vc4k0J epuBvoMD6VEZVm9u0jsrcUxah14JfMbiGsV181tkH13K/e3SyCUjuC7GeLMTPb2e8TQ== X-Gm-Gg: ATEYQzxKzjZ4awv9a38RjjBs4FKjOwKnjIWTZkPA1WKaEP7e9NYnHmi1HAo5b4glTvS 7r36hs0OYQtquuKgXNPcMvawwmCVgSlwQr9og+aXAZ9w7kg0KGxS1EW0G1w97+HW5PptBA6M+5Q zdo/TVQ9T1D8VZ3zsbN+HJDdJA/+2Yz2OIMMGt7IC35DAIU9AhEFbfj9g1V6YtWh2E8sC1LmqrX msXzwBQIAA7jixTqQdixUd1Ba4Hcar7emLFtxBsv7HjYT9bfhWb3NF8vgvh1UfwW8sfE9Fky/TM rsmRPWNNbgl9cNqyn3nTDaO3K7wpGRC+Q9pTkZJT+a0tWCNDUzFooCHy7yAIyIxCIubvWhuB76o 35uv/wt2mDq2ncNunRq6QJJHiwGtaZp+T2QodGoJGjawcbhZR6HrpTOxwzB/7c2iEpiVCYw== X-Received: by 2002:a05:6870:ed93:b0:404:1358:494d with SMTP id 586e51a60fabf-4177cb39bb6mr830310fac.38.1773202091926; Tue, 10 Mar 2026 21:08:11 -0700 (PDT) X-Received: by 2002:a05:6870:ed93:b0:404:1358:494d with SMTP id 586e51a60fabf-4177cb39bb6mr830296fac.38.1773202091472; Tue, 10 Mar 2026 21:08:11 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, philmd@linaro.org, ltaylorsimpson@gmail.com, matheus.bernardino@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, Brian Cain Subject: [PATCH v3 04/32] target/hexagon: Implement modify SSR Date: Tue, 10 Mar 2026 21:07:30 -0700 Message-Id: <20260311040758.1068731-5-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260311040758.1068731-1-brian.cain@oss.qualcomm.com> References: <20260311040758.1068731-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: y8YyCLRb4C6loqOdPaN2o5vuoLbiZKE7 X-Authority-Analysis: v=2.4 cv=D7BK6/Rj c=1 sm=1 tr=0 ts=69b0eaac cx=c_pps a=Z3eh007fzM5o9awBa1HkYQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yx91gb_oNiZeI1HMLzn7:22 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=pGsuWRCw0nJDj9UV2E4A:9 a=QEXdDO2ut3YA:10 a=eBU8X_Hb5SQ8N-bgNfv4:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzExMDAzMiBTYWx0ZWRfX8+JT6DdADX5K tR0/HxBvZYui8Ld7VVU5lRuiYVt7q/sJk2rl0foiyc5w/QgbFkIAmZdjc3eAiHrVeBnIek1j+mb fbbOlridDlEypniotucXdMcJveAih7MAQC5PmIeL2EOPIB0dWQjWBvuR8lFCsD9n8h0G6QinUbY GQVN7I662vCftAU//8aDL7lF4O4LelOEdqssOHACey6CazwJjeZ+/pXYbges3udnAY5H7q6OOOl dU428VNINm35Nh5DXB/Ki+dXBWQ+2Hroj1VkY4oKk62fYyNhocaoCgEFaJWZkCbC/a66VHbG52n aNdZwy/P37gxDXNTWP4UkJHaElFiw5Qvyn8vs/ozDBU5exSE7vj1Zre3zS7IVT1rfF1GhQAfkSR YT9/0CUfJVL6kQULxHLqeLZFssr9zS+WYxBnwTVNwTy445+u6zBSc1UxQwYxEZzEujGdpfyuj8C WH+vTFMUy9sur0agLtg== X-Proofpoint-ORIG-GUID: y8YyCLRb4C6loqOdPaN2o5vuoLbiZKE7 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-10_05,2026-03-09_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 phishscore=0 impostorscore=0 spamscore=0 bulkscore=0 malwarescore=0 priorityscore=1501 clxscore=1015 adultscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603110032 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.819, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.903, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1773202177263158500 From: Brian Cain The per-vCPU System Status Register controls many modal behaviors of the system architecture. When the SSR is updated, we trigger the necessary effects for interrupts, privilege/MMU, and HVX context mapping. Signed-off-by: Brian Cain Reviewed-by: Taylor Simpson --- target/hexagon/cpu_helper.c | 33 ++++++++++++++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) diff --git a/target/hexagon/cpu_helper.c b/target/hexagon/cpu_helper.c index c251790e5a5..c7375de39f4 100644 --- a/target/hexagon/cpu_helper.c +++ b/target/hexagon/cpu_helper.c @@ -10,6 +10,9 @@ #include "system/cpus.h" #include "hw/core/boards.h" #include "hw/hexagon/hexagon.h" +#include "hw/hexagon/hexagon_globalreg.h" +#include "hex_interrupts.h" +#include "hex_mmu.h" #include "system/runstate.h" #include "exec/cpu-interrupt.h" #include "exec/target_page.h" @@ -62,7 +65,35 @@ void hexagon_set_sys_pcycle_count(CPUHexagonState *env, = uint64_t cycles) =20 void hexagon_modify_ssr(CPUHexagonState *env, uint32_t new, uint32_t old) { - g_assert_not_reached(); + g_assert(bql_locked()); + + bool old_EX =3D GET_SSR_FIELD(SSR_EX, old); + bool old_UM =3D GET_SSR_FIELD(SSR_UM, old); + bool old_GM =3D GET_SSR_FIELD(SSR_GM, old); + bool old_IE =3D GET_SSR_FIELD(SSR_IE, old); + bool new_EX =3D GET_SSR_FIELD(SSR_EX, new); + bool new_UM =3D GET_SSR_FIELD(SSR_UM, new); + bool new_GM =3D GET_SSR_FIELD(SSR_GM, new); + bool new_IE =3D GET_SSR_FIELD(SSR_IE, new); + + if ((old_EX !=3D new_EX) || + (old_UM !=3D new_UM) || + (old_GM !=3D new_GM)) { + hex_mmu_mode_change(env); + } + + uint8_t old_asid =3D GET_SSR_FIELD(SSR_ASID, old); + uint8_t new_asid =3D GET_SSR_FIELD(SSR_ASID, new); + if (new_asid !=3D old_asid) { + CPUState *cs =3D env_cpu(env); + tlb_flush(cs); + } + + /* See if the interrupts have been enabled or we have exited EX mode */ + if ((new_IE && !old_IE) || + (!new_EX && old_EX)) { + hex_interrupt_update(env); + } } =20 void clear_wait_mode(CPUHexagonState *env) --=20 2.34.1 From nobody Wed Apr 8 01:18:41 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1773202147; cv=none; d=zohomail.com; s=zohoarc; b=IA46cmjYvi/gOcMIYAh/xesCtXXkFUlhTOSl1gaUoeDEO+fW5KEJIEkNwk2HGg7RTaZonPsEJYp4IacoeGX1dA/4nyo+ZEHwxg8H1luaOtflnIp2gacQc6ZI/7if/iT3G/1J0HZElkSKvov3+2xdOtJLXBI4spHjTAK2vdulA24= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773202147; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=Ozqc8QSFtCqpLZSCBy6L5p77CWpiJaCCf27Mm9sBZMI=; b=Ms9gZi3LqpO713PAzL5RU9ZDa/V3OYaQhPLvxhX7eUi+OR2YSRorcSclEMyzXYMZXKjz1Tw22zjFlWCjIr8QwjFk5ZvaEAqqImv0w3gFOjN9CqfFv6D7LFOdNZ6bUsd1yJZWs59bIG8zjmmVmXlkniVbnai+zOuqqURUAP1nJTk= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1773202147714289.1547690522102; Tue, 10 Mar 2026 21:09:07 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w0AsL-0000tz-RQ; Wed, 11 Mar 2026 00:08:49 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w0Arp-0000l5-Ao for qemu-devel@nongnu.org; Wed, 11 Mar 2026 00:08:18 -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 1w0Arn-0008Sp-1P for qemu-devel@nongnu.org; Wed, 11 Mar 2026 00:08:17 -0400 Received: from pps.filterd (m0279873.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 62B3wfRx3419279 for ; Wed, 11 Mar 2026 04:08:14 GMT Received: from mail-oa1-f72.google.com (mail-oa1-f72.google.com [209.85.160.72]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ctja2ba69-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 11 Mar 2026 04:08:14 +0000 (GMT) Received: by mail-oa1-f72.google.com with SMTP id 586e51a60fabf-4171fdb5a67so25273507fac.0 for ; Tue, 10 Mar 2026 21:08: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 586e51a60fabf-4177e5ea30asm998656fac.10.2026.03.10.21.08.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Mar 2026 21:08: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= Ozqc8QSFtCqpLZSCBy6L5p77CWpiJaCCf27Mm9sBZMI=; b=LqMZ1ErkopfXkFj/ //vva9TeY/HC847WKukha09p6Qt2fU+Dvx9k9eKkrgyH8efuaEvryER5+xvXh7ye xmpHvoGSo1k6PAKKDpX7V9Al5PIS/+xlQ7uS8kGY7CIYmIPyRg3q3SdNyyY+hHMB eZ119PNvZ4suEeq2ddNoy2XLgYLBbTLHNiVvmbq6/b0PLb3ThEnjqC6cCK+600h5 z0rs5GohkMPySq1JtlnbPMvJLyPOvdwZC7sr7otX6K+fHEUSmnSPm8v/4GaeXNY5 CYFeesfiQ/gyUqj2mObq/cNoN1UwI3rK6LRDX1OWtkuv70s9hzggK4fvuxocoreG 8LM47Q== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773202093; x=1773806893; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=Ozqc8QSFtCqpLZSCBy6L5p77CWpiJaCCf27Mm9sBZMI=; b=B960wuWMOqU8ZFzkivht1aJwXP9N+xUMhF+OHdHQz4QI00CBlFAtPYttCXRj490379 MlTtYSh6c6VlpDp816cW3cRPn2zVwbCl0aXEiIZi9OqcQ+woovZrgfiOHcgu0nGwZy7H +gNTHjRmJJ3kOcusHLbDSt0z+glCQyLA8WMtTVUO9xdjqaQMk4uZORx78PLvIjj97T3p uZ9nOgWu1gPF3t5tex9XYOZrAbSwIkOlpGE08gs76fRgtO0WVXxDc8EQFAZyJCkAF70b QTwh9ESmF3Afkrazd8ictaMce0Ma2HQanbwosDH0OS+kqdiKvlmR4xiKe1ct1JsBbcN8 eYvA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773202093; x=1773806893; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=Ozqc8QSFtCqpLZSCBy6L5p77CWpiJaCCf27Mm9sBZMI=; b=UIxF8kMJT2RuXQ6FAfPLGds3FU/v0CfW/lT0PPeCMd1MjS4G9Ec/o0hUcy50w7GLzv VdGKTcdf8T93fBx5z8s39zTE33EjyulCV7oi2uQuAXAqxv1RscjMUZLs7HeLxyTcjuOP JpbeplM7Vpd93aeY3SH7k+yRaKQbVGjqo/gYHkgIL+zLyNiAzZSgDUfyjN8XxJGIIT1V qJLukCDF+IDzbcFPaSLkBFpYnwINzDhhWA8WeKluX+h73iloE0LS5NegxWTpoKq3zPfw B4GsnnY4NEbfRxPU7p9q73MCWpz3IK/mgfpmWdCDb0oljc/tanROaW2j2udQTgjtIJg8 PvXw== X-Gm-Message-State: AOJu0YwdYTG5rDNAk5ndOVQQYG3hrOtqtSIU/1ikVmt9V1k1Tm0gcuLs fkSatRsU8cXWgfemkuhc2s0U9lnLaKtSF3cv10BMczgeKsFXuN5JcuqE9yRGuLB+pk3jLORK/gT a/5HyQtw7YLvCHB5P4oV6nPK6umXwDTsss3Seebn3UY8OtiwPri4lMIEsFZzX/htdnA== X-Gm-Gg: ATEYQzzR2HezHXW+7Lj7ojxeQZx3mmO5eg6/1SZHxvC3Wrtwt+VchkNW2gB1qd9ujJR W6G6llOTxqBLJgYTy+l1dQCuicZA7+Sy8hxrB7nv9liIybyLyrgDQMK9teGPQvB8cXAnCdjmODu SinubF79+gZWOCAe+O439tIH48aE6JXJ8JVF02dlN6uuYJdaH+24FvVw0a0wuIm37A9xTZ64ABm jxnnORg2qH/L6Um4HM0DZ1LfS+5GsJfFpGgyJxbrdlHpe+YfVbKPPToxYN8vT5ywDfkmae62Yyv sm+T+egjr16jc8Asi9Q8xweCib/jmNZj35tESOhrqHfR0Ke/aw1EDBT41PiGJyM8GezS5GI+yZs d3JIhbzdqrhUvB+mox2ZC/2Aw6vS8Y7ZrBMPRKgy2tw44YMEfG4nidodM7zmzcCY1SIDywA== X-Received: by 2002:a05:6871:205:b0:3c1:68a1:6b10 with SMTP id 586e51a60fabf-4177c6f4d69mr909141fac.6.1773202093442; Tue, 10 Mar 2026 21:08:13 -0700 (PDT) X-Received: by 2002:a05:6871:205:b0:3c1:68a1:6b10 with SMTP id 586e51a60fabf-4177c6f4d69mr909124fac.6.1773202093032; Tue, 10 Mar 2026 21:08:13 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, philmd@linaro.org, ltaylorsimpson@gmail.com, matheus.bernardino@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, Brian Cain Subject: [PATCH v3 05/32] target/hexagon: Implement {g,s}etimask helpers Date: Tue, 10 Mar 2026 21:07:31 -0700 Message-Id: <20260311040758.1068731-6-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260311040758.1068731-1-brian.cain@oss.qualcomm.com> References: <20260311040758.1068731-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=c9WmgB9l c=1 sm=1 tr=0 ts=69b0eaae cx=c_pps a=Z3eh007fzM5o9awBa1HkYQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=rJkE3RaqiGZ5pbrm-msn:22 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=he7afFXPmx5H4pWyvLYA:9 a=QEXdDO2ut3YA:10 a=eBU8X_Hb5SQ8N-bgNfv4:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: 2yY3krT2Qpcqih5ofcWTRixt-19pCNHV X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzExMDAzMiBTYWx0ZWRfX8FV4YK/tg+Ok pjottNRzmLAWKwJ55O0aIi3De0aUx6b1zvmU3kznuUs0c3gsWOcT8NA5xKjUSEIqtJaIi48Xv69 KaWLnojDeSg5p4+NsJRvd7T90OZUVsuKPm7Q3tMhQKyjf/X3vz2MwvzaECulvfDEZUzg/KZOB5k mNfp2bb4enBbqOZlfnliRY4oBTGe0H4ssFh5X1Tww2hS2uOpq9ZJRuON3cjYMk0RIQ1Gq9G4YAb Z+qBwQ0RVt2TeiyStSwfYckmgvb4Naer5jpHkUPZyKKrOQw+clv6v8OfxXvUhsWBsJfTQhiO7qe 0YGLOR4iGG40OAfC40HflTbZvMJiUfurhQETG5rbyJkM7UlqvevIL2166C0+ZlPYHBSPM+0LT+I 4qCiZBfjPAAbQhKZSJ84anp7mUn3L1pk5P5hW8EmNFl6QEiOcEzg98Dsb9dPzFjky0Q424doLqc sYuey6KT0dg4tFGfWaw== X-Proofpoint-GUID: 2yY3krT2Qpcqih5ofcWTRixt-19pCNHV X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-10_05,2026-03-09_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 malwarescore=0 lowpriorityscore=0 suspectscore=0 spamscore=0 clxscore=1015 impostorscore=0 phishscore=0 bulkscore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603110032 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.819, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.903, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1773202149810154100 From: Brian Cain Signed-off-by: Brian Cain Reviewed-by: Taylor Simpson --- target/hexagon/op_helper.c | 35 +++++++++++++++++++++++++++++++++-- 1 file changed, 33 insertions(+), 2 deletions(-) diff --git a/target/hexagon/op_helper.c b/target/hexagon/op_helper.c index 82605f1d4aa..161c7eaf31f 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -1496,12 +1496,43 @@ 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%x\n", __func__, env->threadId, + (unsigned)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%x\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%x\n", + env->next_PC); } =20 void HELPER(sreg_write_masked)(CPUHexagonState *env, uint32_t reg, uint32_= t val) --=20 2.34.1 From nobody Wed Apr 8 01:18:41 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1773202177; cv=none; d=zohomail.com; s=zohoarc; b=AWDzk5+3LZMake1ophtBFRYrA5lqLk9wgOln7cWm/+iItYvmBzrnb/BwNB8V+2h5UjlQupcNXz1mHJGTZletDAsnye2BIjRdhXC0HiR1llUkatc21YZA3da70i3rLOAfIIhJGMdCojaNmOvFsAFgKojGa1/FTaUZ2dZRlLAw0dw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773202177; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=T9JTYXW+AYZiCgx4x8J2yUvCzjHE/kbJu94Psbyy1pA=; b=jBRnga+/3cUpTdeW7rgCASvZAFwjL3gZCG861oKPzcQjkB/d1OS8sgiamzOcLNEcCAIjBFP/mJHtiJBWMxQBq8FC6olC6EGLkbDz6Dqz3vWLhDW8NKDjrCTj9KEZNklxebV1xN8r71bLLwOeIudxCngmB8/WHfikzUjozQuSJQc= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1773202177720289.2070796151115; Tue, 10 Mar 2026 21:09:37 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w0As0-0000n4-IT; Wed, 11 Mar 2026 00:08:30 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w0Arr-0000l8-1h for qemu-devel@nongnu.org; Wed, 11 Mar 2026 00:08:20 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w0Arp-0008TH-90 for qemu-devel@nongnu.org; Wed, 11 Mar 2026 00:08:18 -0400 Received: from pps.filterd (m0279862.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 62AKoJEO1863538 for ; Wed, 11 Mar 2026 04:08:16 GMT Received: from mail-oa1-f71.google.com (mail-oa1-f71.google.com [209.85.160.71]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ctmw82q1u-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 11 Mar 2026 04:08:15 +0000 (GMT) Received: by mail-oa1-f71.google.com with SMTP id 586e51a60fabf-417120d5378so27421849fac.1 for ; Tue, 10 Mar 2026 21:08:15 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-4177e5ea30asm998656fac.10.2026.03.10.21.08.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Mar 2026 21:08:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= T9JTYXW+AYZiCgx4x8J2yUvCzjHE/kbJu94Psbyy1pA=; b=HRm8g1vpdGPoecVn XRv7fikh4erMvqX6rQzYcywYfkL/YzoTjTMosg1cET2tXMKkygkyi4yUgieRFPkh 84kNOuBOqlErCJLxI1eKBTmMwlyOifnqh2C8NT0T4ldxQUEakjOKdL69XFlI4Q1K Qu62sIHIbSyE+Uv1Q9ljCkrHvCEUJSAq+TtAsFg47fHLmZ5ri1PgSGrGkA17GuVL UERLQbN9+w3CNqHLC0H7pmD1savkwDvB03Q7N6D02ANyRvWMD4qYM813vVFuBH8e CTJiflVcHmcP7eW/yyDBCvfYd1Yatnf/eKu/nRYrEUDnYiAWMiQR+nANyYZuF1Pf cGc/2A== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773202095; x=1773806895; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=T9JTYXW+AYZiCgx4x8J2yUvCzjHE/kbJu94Psbyy1pA=; b=IWvf4+uVCLOAPi1yyEhXHzwJgXEMmmYlZYEK9LY5M4f8Qap7JaReNeJumJQZl9gl5X LbE0V/d04JwO+48tToYLKO/VZSXn2wycCN8KOKNYCVIsJwrB5/qp5DtipDa5ID8TapEc oNVGSlySFQwkqUYyVZDU/lY5jHockZfsSd//gi2nihjFN/lz7/Ls/FYKeXGZxXBu+Ap9 ps/mGiq+3Sdskx9y26s6lxzyHTPQRTC1Rb1w54LPrVPyynunTfpuZHL5aKVFJZhLA9RM spvY2WONzVjlNJw1ANzQlcZqaXkzMImFuhwGu4mTcPFiAKEBNZax1Q7ge1yOqFtSTt4k OJkg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773202095; x=1773806895; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=T9JTYXW+AYZiCgx4x8J2yUvCzjHE/kbJu94Psbyy1pA=; b=MCJsBjORFGaNARYR0so8HV0fQwxz887VnVd2QnmSiU146iG6xg3OoSkh62p6V+6Gbm tVbdbl74uaUPbKxXoF+mUXgLN04rI49rA/NJUo85535Iop5WrN/5Y+vLQcoO401oXp/L PmGOcEkOeyUmgM8XZnWUyg31xU6SMRh87q4cw/vX7Qg0/FoU56I6HWlw24FS82Zu0hvY 1Q3LpXkAF5iqtmh73GiC2Kk4OWEKK18s1rSj0zMOg0iXCj1CIOi8yVfcTw9OVO+JTVv0 mUXOCMjYbVYztUQxLwyfcjD5aqA19LIcZ8fYrhR5Wr5xeGrMgyg1TyGxCa4Ije+AF08b 31bQ== X-Gm-Message-State: AOJu0YxBvS6D6ge5gwFNXYpBqmHSmxzLGDZTIANY9x06HJ1cgO2JoxTH 91kJyyVqQqTlS94zYSUI6VALGWX+hWDm2OI6nnFM+AhVcasOs2iIE98yKr3a/NFjh8sJ6qKOot7 tyvq76n4OiCB21+wcibUKEzAaXM6QHPXEmmbc9A/UAYq9tRibzf23325DtTagOXh6dQ== X-Gm-Gg: ATEYQzwT0/agPnDTU+N5CzCXbc5EJi/FL/Yjek+uCFGDwWleFPnwLpJ9fI6A7QTm6B4 iK2I+xwtmPs6tjgsvOfns8GvbX95W58cQ6Lb0poXG7fetNlu41yG9k3oWmdo0a6y+nxKlOqSTIS R5zW4fFhlGzE/oVR+6R64Fi+t1cbZtqFRYtzJA1IUYjxHvCgII6anEODHBqOSzhKrkrWbgWJoMR q2k9gTcdnzbdt1GQIr0gaFHP4lmqMmTWP0X8frtTfx7H33nvA0vGqM4sa52bFtHf9aZ7/Tf3Hud k3c9JYwNzJkfdPN0dMkElt5IhLMVKZA23g1ABAvcBDlbSw5sUCgG4mT7ZImG5viD3Ewfyn6QsHG 9pioKRjT5X0m6i9kKn6k/jwfHZ0rDIPy8nVO/U7n/HJV7sa785oIMJkcCqdC6thTSfjl/+g== X-Received: by 2002:a05:6870:ebc7:b0:417:6c45:b92e with SMTP id 586e51a60fabf-4177c6895fbmr794417fac.19.1773202094937; Tue, 10 Mar 2026 21:08:14 -0700 (PDT) X-Received: by 2002:a05:6870:ebc7:b0:417:6c45:b92e with SMTP id 586e51a60fabf-4177c6895fbmr794406fac.19.1773202094532; Tue, 10 Mar 2026 21:08:14 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, philmd@linaro.org, ltaylorsimpson@gmail.com, matheus.bernardino@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, Brian Cain Subject: [PATCH v3 06/32] target/hexagon: Implement wait helper Date: Tue, 10 Mar 2026 21:07:32 -0700 Message-Id: <20260311040758.1068731-7-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260311040758.1068731-1-brian.cain@oss.qualcomm.com> References: <20260311040758.1068731-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: yxq-Hu9UMo3X-dpABzoW0FKrMLLDWpJa X-Proofpoint-GUID: yxq-Hu9UMo3X-dpABzoW0FKrMLLDWpJa X-Authority-Analysis: v=2.4 cv=PJECOPqC c=1 sm=1 tr=0 ts=69b0eaaf cx=c_pps a=CWtnpBpaoqyeOyNyJ5EW7Q==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_K5XuSEh1TEqbUxoQ0s3:22 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=UWtQ3YZIe0Xef7kIUYIA:9 a=QEXdDO2ut3YA:10 a=vh23qwtRXIYOdz9xvnmn:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzExMDAzMiBTYWx0ZWRfX9Air2kO1HT+X QKY4iGVv/PMmGmClZnh6uAEoSFzY4tzuQB4LN9ocZCif2EmgYa96IOw35mrvO6uiMkFcXjoGk3P Hb0ZSJVq/epZkNoVWU4MX99N1HL5d5ACxNu6Qda3/dXFM7aLd9eJhkIcGGbSTlYCqoFj8SNRAZo KhhfHhB2WEFfPGZhYZsajAPi9W6iHhadXaOtldvZAlTy1t4Dpsab7P598K0+2G6hg5WssB+lMKJ 0w3JmHJe/j1qH2WLCiNuesYky67/YrrPO05EGxs03PSZm38yDxMCOUjyedg1xKAP/afcFEPVJGh N845sLpDSfQVFMWL5xt1AwVpeZJRriEuJPMr7bg19as3/p6tbSj6PUBvEv4F7cV735tIgbT5tkC MUwp6NP+0c2Wein0xM8l0uqlQWI7kGedgfwGVjizMO45qyc9U/BPewBI6MZYwRnHmFzQ6fYt3wj Y+0qT7BlzDVn2hIfgog== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-10_05,2026-03-09_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 impostorscore=0 malwarescore=0 spamscore=0 phishscore=0 lowpriorityscore=0 clxscore=1015 priorityscore=1501 adultscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603110032 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.819, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.903, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1773202180111154100 From: Brian Cain Signed-off-by: Brian Cain Reviewed-by: Taylor Simpson --- target/hexagon/op_helper.c | 51 ++++++++++++++++++++++++++++++++++++-- 1 file changed, 49 insertions(+), 2 deletions(-) diff --git a/target/hexagon/op_helper.c b/target/hexagon/op_helper.c index 161c7eaf31f..6dfc1269809 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -1484,9 +1484,56 @@ 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(); + g_assert(bql_locked()); + + HexagonCPU *cpu =3D env_archcpu(env); + const uint32_t modectl =3D cpu->globalregs ? + hexagon_globalreg_read(cpu->globalregs, HEX_SREG_MODECTL, + env->threadId) : 0; + uint32_t 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) +{ + 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); + + CPUState *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 %d 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 Wed Apr 8 01:18:41 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1773202229; cv=none; d=zohomail.com; s=zohoarc; b=TKXTSINZ5Gd5WKXjM3N5QfDorpMWqOqAnNytHj0TxLdMIBAtzaqErhDVJmrvfJDhxEpL1YwkurrtLoEFKDoRBwYzKu2ju3E8vU41scSspnJikyahVm5kQuJds6lU4lPnuIeL8EmQWvtKkVLJN5GhMOOXndSIQiIL80zNDWQGM/0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773202229; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=jKyRYhNa5c12K9+79BWJvOIpWMhQ09qP9DMLIfKwEqo=; b=JzfBpGJo3AUzGt2dRr2kiGqAKoldtk7gGGUCL3xO8C/HaB1c4LC/3TpMNfQZcWr6yRVB3xUI7Y/GfjuNHaucN3t9URIJ9GGs4hD9WqeGSlM50X3h50UEgKxCMTstcuqG1JEgyyjf2ljrdGLKLOvKbXWZGKdWIuZ0edM3EaIoOoQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1773202229680704.7107440788874; Tue, 10 Mar 2026 21:10:29 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w0Arw-0000lv-Nk; Wed, 11 Mar 2026 00:08:24 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w0Arr-0000l9-UZ for qemu-devel@nongnu.org; Wed, 11 Mar 2026 00:08:20 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w0Arq-0008TU-BW for qemu-devel@nongnu.org; Wed, 11 Mar 2026 00:08:19 -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 62B3VBGK614019 for ; Wed, 11 Mar 2026 04:08:17 GMT Received: from mail-oi1-f199.google.com (mail-oi1-f199.google.com [209.85.167.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4cu0jf03a2-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 11 Mar 2026 04:08:16 +0000 (GMT) Received: by mail-oi1-f199.google.com with SMTP id 5614622812f47-45a8cdc7e01so113324023b6e.1 for ; Tue, 10 Mar 2026 21:08:16 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-4177e5ea30asm998656fac.10.2026.03.10.21.08.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Mar 2026 21:08:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= jKyRYhNa5c12K9+79BWJvOIpWMhQ09qP9DMLIfKwEqo=; b=L+LrE+L01zfpBVTZ g8nlHQ9/GSxzNp7/lw2bKDa0q52AoJ0W2dbZldtHW8sIv0JX1mPqzlB88mIk431f 0U6FE9ikyReSohUOpVnVEuGSxkpD9NLRZy53iinOelL3Y2foQIGAM+nn53q3P+Vx O1r2ee+Jps4b/AWJcwDsBltvoP5qvdJnN3DPpiIhmOl3W+h9ThpmjhklleWdQCNc 3p80S4B7MYsIcmWx4UVUVySMM2Zbs9h5hFAolYeHoRDsxgW5CVh3cIf4kfzMzXT8 Dd/vsNX5Ahdg7NERHSIINY4eS7x/tFeFfmoJxcGHKx8bMz54A7I/UT6q5SvGqqNn 6mbFvA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773202096; x=1773806896; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=jKyRYhNa5c12K9+79BWJvOIpWMhQ09qP9DMLIfKwEqo=; b=jUC0N/TzOYPLOyS6/J5nggsggyvzN4cqcIWa4skPoG5NPI+Sf0531C4QEW4RJKk+ZU 1W+3HfGEMAuQsVj7n9hFdoK0a8h3p2Cnn7AbSCvKMjH2eARLqC3T2NcK0mere7735NQl RCP35lWhNGr6+3ig+92GDt7NjWOYnbtJwOf0yTjYp8Ongr6VyRayCAEh/J0IzP8UndGv ekewm4kqR/9WFIohE4XMG4/RSsPY2Rn1Lvp71IPc8ll1c+KQgeBTo4lz9bqpBpqFgGjU nE7tMclXv8NEXIlZcuXXK4kLiYZSsaj43cqYCo8imqxAP5R9WA8nl3KgafnoxRJ2Ak5x /ogg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773202096; x=1773806896; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=jKyRYhNa5c12K9+79BWJvOIpWMhQ09qP9DMLIfKwEqo=; b=u9qQVD0/9mZp/P3Lzoegtg2jBXoFMdMWkCJZphrgQU+fMlVepEm71i4qrX/qJZnyAK hU1Ff8K98mWnsBDDANKFCpwqz5NUdtcBpFqCgV6C6BUFCUIv37prs1UyNU2AuTe7Hvf9 Y3Yl9Gf2T9RQs39GglJqZJo8s75dEI8uiET8gfMD8nRRrpH0nQGDWmAMO4q4OUXRUfZ0 vleqF9TS+D/WHrJ7HWdD53HDwsK2jPndlHnXqNJb0phjKBt981EeJQqEmQdQ0RXP70hc bm154BNhS26+M0udt0+kFWb8C4KQzs4AgVN7Q2Q00DnD76URw6yHCBTaZ2O8zkOwYchm qq1A== X-Gm-Message-State: AOJu0Yx9L8I3kSNPCJHJID9eSF2a10JD3ISOFLfLaDJ4w3AAg/WDFHdV xLpokLTPXgV//THhj39LYtnnueVUdZ+xafN+8XdCg0ojXZVEjMgPZsSXiQIfSZ8XDWRL/hYXzQt mxIjL6uUFwDxaLEaK/0FcMGlP4yevur9AJKevDeNYw/dExY2jtVkIwW6FkrXgoGjhzg== X-Gm-Gg: ATEYQzy+GvdUewDm79Yj2oVIiD+FjW/aHTSBA+dmzm8XzEvmho5aAxgtFH9swqzAkCK hGX4AFxTQSfE7JqCh2rPXUX2FFTLsWTaJRLaMMspowEjzpKnnHiAKvfcSw/p/IcQ8EUyVG+YxZO n2QVnLvAlxe9zIyLF2j5oY5J67D+EVrIXx0wJ8HMaAfu6gP8P8E35MWctuUDonB//1f6ciyI5eP v3VGb8i4xREQVXkAS7CxeSzHu6ZsIlKR79+ulKrYD2ft8ba6d5sIjqOeU1id13KxeiOTIOmKm1C rO8ZVmVLCVbYAHvivbUevnCOVegKIUrihASvYXcODTKoEKKIQqY/GPNPBVIVU7EwSVL//FaERwn WLtVNyMCYqOhASss5veTFRsIpi26bgf/xYYpskE4hsBnXehTbtyNRvojFgmt0Z48/l+z4TQ== X-Received: by 2002:a05:6808:bca:b0:450:42c9:4cd0 with SMTP id 5614622812f47-4673359a6a4mr827960b6e.49.1773202096128; Tue, 10 Mar 2026 21:08:16 -0700 (PDT) X-Received: by 2002:a05:6808:bca:b0:450:42c9:4cd0 with SMTP id 5614622812f47-4673359a6a4mr827948b6e.49.1773202095722; Tue, 10 Mar 2026 21:08:15 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, philmd@linaro.org, ltaylorsimpson@gmail.com, matheus.bernardino@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, Brian Cain Subject: [PATCH v3 07/32] target/hexagon: Implement get_exe_mode() Date: Tue, 10 Mar 2026 21:07:33 -0700 Message-Id: <20260311040758.1068731-8-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260311040758.1068731-1-brian.cain@oss.qualcomm.com> References: <20260311040758.1068731-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: DS_DYsNqNLYJBie-r4tYSO0FTbVXSz6O X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzExMDAzMiBTYWx0ZWRfX7OgMBqjqLTt/ wRQboZexAQ53NoNRXyt0r1z9o7NymEQZw5K/C9uRS6aD8PZbKp10781uWFezwTgSqer1rsZbkKv cSVw7CnMUEAl6i5GobRNZolSsiELaU/J/o30K2AL1+BB3DC37tMv4MTmRUuFsP9jN+OrrBbVlgj 9/dCLaYRvA1U/3HJQXwlrsAgOAJkFFZuyP+5TmI4KEr8NyC8cCoQm7Xf9OW8SnVEPIerLNGl4jd UKK3tvnkNlJXpfvFKA2PV/qJhbYf7k7KPHPG82ESRpiIWcYn5m9ClA5n0GmDDT00tzfdL1RGTTf NPvVD65JNyuyHFxmqJC1PBcMDDCWgcdME/F6jzOpntPrnqGvD9WdNyjgfdqF4nTYzu4kWE1PHW5 GLOA17WnOoGziXCS1nwdkOswTPlEkrf3FqbCLVFjKhBJcCNubldHLeelOoRk884Qt0qSSlXI6Dw 8kO/1bGb/v08DB6Jz0A== X-Authority-Analysis: v=2.4 cv=FMMWBuos c=1 sm=1 tr=0 ts=69b0eab0 cx=c_pps a=yymyAM/LQ7lj/HqAiIiKTw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA: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=xNtBLlBv4CHGg5Otw5oA:9 a=QEXdDO2ut3YA:10 a=efpaJB4zofY2dbm2aIRb:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: DS_DYsNqNLYJBie-r4tYSO0FTbVXSz6O X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-10_05,2026-03-09_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 lowpriorityscore=0 malwarescore=0 priorityscore=1501 bulkscore=0 adultscore=0 clxscore=1015 impostorscore=0 suspectscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603110032 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.819, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.903, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1773202231029154100 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/reg_fields_def.h.inc | 11 +++++++++++ target/hexagon/cpu_helper.c | 28 ++++++++++++++++++++++++++++ 2 files changed, 39 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) diff --git a/target/hexagon/cpu_helper.c b/target/hexagon/cpu_helper.c index c7375de39f4..4860e4a6ab0 100644 --- a/target/hexagon/cpu_helper.c +++ b/target/hexagon/cpu_helper.c @@ -126,6 +126,34 @@ void hexagon_ssr_set_cause(CPUHexagonState *env, uint3= 2_t cause) =20 int get_exe_mode(CPUHexagonState *env) { + g_assert(bql_locked()); + + HexagonCPU *cpu =3D env_archcpu(env); + uint32_t modectl =3D cpu->globalregs ? + hexagon_globalreg_read(cpu->globalregs, HEX_SREG_MODECTL, + env->threadId) : 0; + uint32_t thread_enabled_mask =3D GET_FIELD(MODECTL_E, modectl); + bool E_bit =3D thread_enabled_mask & (0x1 << env->threadId); + uint32_t thread_wait_mask =3D GET_FIELD(MODECTL_W, modectl); + bool W_bit =3D thread_wait_mask & (0x1 << env->threadId); + uint32_t isdbst =3D cpu->globalregs ? + hexagon_globalreg_read(cpu->globalregs, HEX_SREG_ISDBST, + env->threadId) : 0; + uint32_t debugmode =3D GET_FIELD(ISDBST_DEBUGMODE, isdbst); + bool D_bit =3D debugmode & (0x1 << env->threadId); + + if (!D_bit && !W_bit && !E_bit) { + return HEX_EXE_MODE_OFF; + } + if (!D_bit && !W_bit && E_bit) { + return HEX_EXE_MODE_RUN; + } + if (!D_bit && W_bit && E_bit) { + return HEX_EXE_MODE_WAIT; + } + if (D_bit && !W_bit && E_bit) { + return HEX_EXE_MODE_DEBUG; + } g_assert_not_reached(); } =20 --=20 2.34.1 From nobody Wed Apr 8 01:18:41 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1773202168; cv=none; d=zohomail.com; s=zohoarc; b=TgMdVMFp4fGi1+WNv7GBAAEeNiy7ovyfqk9jjSLpVebpmgKlu8IQFtHB2u8JWIBFA8MHJ8pbwyMDDUy9x0Qllnsxwz07DTjEnUNXplh7l6fGeOzM8baCI6yRLGdJYLZySw4qoGolrOq+vd6QqzoPIbpOcLPmLtfrlO41wHnfLL0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773202168; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=k6jf0c3h/ki2mGNwvU1XNZvZ228so2V/InCFKc9XW7k=; b=DLmeEBg+vpEfX+vwDXeKyQ/Q8/6uE7k1Db9Bi6VAdRncQhTjvCcU0r/6S9gO2vGXN1Hj7bn4950rdBGWlEnKyJRNqRBmBUkXIrMXw7Z/TQeZuBZKZGpvUFS1JyHJEHjuP+erzAYwCzHbTGW65xPI9aJKhhAf/7YTfbd9TFzWib0= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1773202168107610.449326793011; Tue, 10 Mar 2026 21:09:28 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w0AsC-0000pV-FY; Wed, 11 Mar 2026 00:08:40 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w0Arw-0000lx-Qc for qemu-devel@nongnu.org; Wed, 11 Mar 2026 00:08:24 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w0Arr-0008Tb-WE for qemu-devel@nongnu.org; Wed, 11 Mar 2026 00:08:21 -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 62AJQouB3892945 for ; Wed, 11 Mar 2026 04:08:18 GMT Received: from mail-oa1-f72.google.com (mail-oa1-f72.google.com [209.85.160.72]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ctkmyu1ev-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 11 Mar 2026 04:08:18 +0000 (GMT) Received: by mail-oa1-f72.google.com with SMTP id 586e51a60fabf-415583a6862so5954599fac.1 for ; Tue, 10 Mar 2026 21:08: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 586e51a60fabf-4177e5ea30asm998656fac.10.2026.03.10.21.08.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Mar 2026 21:08: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= k6jf0c3h/ki2mGNwvU1XNZvZ228so2V/InCFKc9XW7k=; b=kRfmemiYW6SLovUb LZpPC5aOk1zmMQ7rlrThy0DT9h/mWP9QFne4bNLpQ2EYiIN+ACgV3aQkHabbsRgF 6zf5uO3Npy32aBWaJGBV/4keyV9kNZ95UlYZ1MrKUfl3aD3gwjcwspSuri4ynzd2 bIpdcIHcdQgbfPcelhbkAGC+WKDJdnIZJCQS+a86ZROgMc+C38AALsjPGtkVi/Tv H1Zym2QM4fSgrHEcvVoZt7+LEIXcL+AaMwnLuXHb6D46IifcTRinwIMMdXvvkBGY YQIpPIS5iD1e8BjC85ejXTxr/qcwwsT5SIYGrG5mLaz2KnBUZqzNORTp5HP5bzUb +5IUYg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773202097; x=1773806897; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=k6jf0c3h/ki2mGNwvU1XNZvZ228so2V/InCFKc9XW7k=; b=a887wBxKxmAdJVtimGMvMhhL+1YneSD7kjM5hrJ9gaylXt0sVGznoo/O6dpvU5HFdi dOTQvBEuLt2SbjTxt8q9/jaRxfoMC+HibdzObdBthgFvucJOblZxP4xDP229yHKaDiqR R0iCJnP42N1JY13l3+QTp/PvyPQrUGpTRUqzcE0oW4+XcIN9QZc8U+JdbAQnJbKOlmuG LnDkoHxUT6gqyGQFqm3Ri0n2Pv+24jxYgTYyj6y5207/5qZUU20h2MArdsepNPiRU8BA r+F9S4OeGfje4tZmNmg9ut3lEWo24rb+lm9Gj/CACHPoC4RRx5+fZJ+QrUuzJ6ULShUc gIkw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773202097; x=1773806897; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=k6jf0c3h/ki2mGNwvU1XNZvZ228so2V/InCFKc9XW7k=; b=PJiXjmlg5t4lbcRh53FeOkBHLBPrM6Yz0SJ/HTQJBvL0McxVcbzCV17P2y3ID8FZNV gfmTaYX23h+2kDstuCbkkMAojj3lXoq13pcGMpRa2sD54GmH3mXhysEN+jUx0kB7xu4e ezThaeTYAoxyrB4hUVW2NknApFdt9VALMussX/HS4xo9m8p9SS64mt6ibhCmZMBtQrzF ZDDPg7YwcIkug+LyD/TOphhkxPth19uQSS4AhvLu8e/HRlYlTqTj4X7P3d8bRd//p0XY WGLhJtksLiLO8iWUd9tN7Pep14ndwmKGF7KD3ZUi20NwK7UyLWZvbii+8e3kjnISwOJs gwxw== X-Gm-Message-State: AOJu0YyzlLYM9wz21i8KLSM2mUfV0UL8KK1u1gObxpPPhr0WMgQDCrMy GC7+A4wpaEKZgoqpzBTHSol6hZmF1zIE9iLpR0jJEeufUtj7XIgGphWgSdO4LMNrQPqWlKHgiHH ArK586juDoxDFs1UyvAuzj1z8R2Vmo40FXWLHc4qtrZ8na+MY0Z/BMt2SjORhtgZT/w== X-Gm-Gg: ATEYQzxprSjOu6sIXYsI94XaNXApkmVpRJ6pr9KE5IxJ4E3DipZZABncvBV3tkGf+BY EHnssf4JZ+sGquRE+r/oRAKp5mdxgLDJwMjuAcgdAcacaiF36/ll/0jkp+USuGDy93kCAkJVeE+ SIutXVKDQ+EfVTtbSHK2j7EO9Uav05iV9tPvgTq2KJ6JoUC1ffrVK8acM8oscn3WIdNGSeQxH3o ThbLjpr8qBy+tXoaBLOZeQdMTxHgKkn+gTnOrp/oHR+fOSwqXDxE5Swj8n/yQlRbb0md9UBMO7q KIqcXeOTxMrhK/WccF0sqzAUH+C7IbAUF1TidFgGk42iO7lVgcFb9aVI/F38+U1d4yl4ADstjzc 8Ho0rGKEX6mjvEFCSAUDt1czPPci4tmuk4VmMxgR6cAGl+G/cOS1MR8Z1mgdJGaWXhVHjug== X-Received: by 2002:a05:6870:9e02:b0:417:1bea:8c94 with SMTP id 586e51a60fabf-4177dcf99a1mr674250fac.7.1773202097446; Tue, 10 Mar 2026 21:08:17 -0700 (PDT) X-Received: by 2002:a05:6870:9e02:b0:417:1bea:8c94 with SMTP id 586e51a60fabf-4177dcf99a1mr674235fac.7.1773202097065; Tue, 10 Mar 2026 21:08:17 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, philmd@linaro.org, ltaylorsimpson@gmail.com, matheus.bernardino@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, Brian Cain Subject: [PATCH v3 08/32] target/hexagon: Add representation to count cycles Date: Tue, 10 Mar 2026 21:07:34 -0700 Message-Id: <20260311040758.1068731-9-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260311040758.1068731-1-brian.cain@oss.qualcomm.com> References: <20260311040758.1068731-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=RYudyltv c=1 sm=1 tr=0 ts=69b0eab2 cx=c_pps a=Z3eh007fzM5o9awBa1HkYQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yOCtJkima9RkubShWh1s:22 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=57D4Z9yWObz1DujofsoA:9 a=QEXdDO2ut3YA:10 a=eBU8X_Hb5SQ8N-bgNfv4:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-GUID: u38nc55jwZIK-n4KzdU28VNifXj_tUAD X-Proofpoint-ORIG-GUID: u38nc55jwZIK-n4KzdU28VNifXj_tUAD X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzExMDAzMiBTYWx0ZWRfX3n6jJM3vJvv2 5Cj7XnxkdLrZNum/W8n4UtPMovrNTs6y2qiRO4LSgYTejxy6ifYwXGJZrZE4qzs2mccsiyO/8lj UIn2xd3VU/6rCzT3zCCknFyd/iT6gbBchgiyU11Df3vYlTXjTqFl3nH/4M3E/h2JF9x6VhOcX9Y y7xDE+IFetvjs6iWtRYcwDqT6F1FwK4VMCqygui8tCImnMNV/N4vgx0UoFrZqliJDoIru7drW6R d7JwKQml76tUwOW6PvI9jd7pkF3xG4wkcumlqxck8KIEYAOrYTNcFWe9u2Itblrq2a9Os8N5U9t rRucftGDpG1F3K8QNOnSzwTVOoS8z1qMVnn9vsLH3u1sc/RVZWBLMcz2MZKVUmtubG15HdZ2yZr EM/L9Ov90jvEMCFNrnsiks3ipfDiw+z1ZjTCWR1WZIQVZOAoQ7HvKhq7iBv+jQ/+bfBYmFWaK/g SzUsvndk9AkddfvHQDQ== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-10_05,2026-03-09_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 bulkscore=0 impostorscore=0 malwarescore=0 spamscore=0 phishscore=0 lowpriorityscore=0 clxscore=1015 adultscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603110032 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.819, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.903, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1773202169200158500 From: Brian Cain The PCYCLE register can be enabled to indicate accumulated clock cycles. Signed-off-by: Brian Cain Reviewed-by: Taylor Simpson --- target/hexagon/cpu.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/target/hexagon/cpu.h b/target/hexagon/cpu.h index 1a3c9014455..ee2e5eeece2 100644 --- a/target/hexagon/cpu.h +++ b/target/hexagon/cpu.h @@ -129,7 +129,7 @@ typedef struct CPUArchState { target_ulong stack_start; =20 uint8_t slot_cancelled; - + uint64_t t_cycle_count; #ifndef CONFIG_USER_ONLY /* Some system registers are per thread and some are global. */ uint32_t t_sreg[NUM_SREGS]; --=20 2.34.1 From nobody Wed Apr 8 01:18:41 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1773202433; cv=none; d=zohomail.com; s=zohoarc; b=W/BVSDqsRMlSJHa6FxoktawiJjFiOo0TWEWGD546RzzlE2g1Fp7ytHyXg9I+KqJvgDiHDJL5GQkdx2382yYxg4BnGW0lb/ZJ/MtGgH7W24UbxCf2wAoeBzfkHqyfBiGiwkmCTG658jwFndCqd7+R8+dF5aUUFApb4Epr5mZZaqI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773202433; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=Jp25zBCD6bIOAty4BaNTCtDb4uipih75eLMJRC83tLs=; b=J0BSgvcNk6fl3f54ZY4AzNEgBSvcBrP12br75kQLx6UFag47OCf9GoG1bUUJ5B5co5+uuerB+1BOtUuORrZfhsYOvGww37J1vqXIb5v0vk9HNrEHIQLSSNP8peuHMOcvzRhHLGXS1r5MttoR/cw55N0ubpF+Fs9DG/9xpCpv1rg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1773202433460400.9232068668905; Tue, 10 Mar 2026 21:13:53 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w0AsM-0000uB-FZ; Wed, 11 Mar 2026 00:08:50 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w0Arz-0000mU-Cs for qemu-devel@nongnu.org; Wed, 11 Mar 2026 00:08:28 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w0Art-0008To-PO for qemu-devel@nongnu.org; Wed, 11 Mar 2026 00:08:27 -0400 Received: from pps.filterd (m0279870.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 62B39gW11572990 for ; Wed, 11 Mar 2026 04:08:20 GMT Received: from mail-oa1-f72.google.com (mail-oa1-f72.google.com [209.85.160.72]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ctqgk9v31-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 11 Mar 2026 04:08:19 +0000 (GMT) Received: by mail-oa1-f72.google.com with SMTP id 586e51a60fabf-409698ea4dbso8249229fac.0 for ; Tue, 10 Mar 2026 21:08: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 586e51a60fabf-4177e5ea30asm998656fac.10.2026.03.10.21.08.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Mar 2026 21:08: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= Jp25zBCD6bIOAty4BaNTCtDb4uipih75eLMJRC83tLs=; b=MmjU+x9RAUriZUJr JaRG+gDLXQ2rED9Tri79px5DStexLlLEhoe59lXYPjvSSJ8iSE/waAjqXTzarxfv FFi3DK8Dkdf/r+NM176cQqFg4wZKQ4QkSwr6rDgjhLrk2ulJV7gckXmICg1W/Im/ 0CQOKPtytcw+Kmtj0r9n4v0e39AKcQBSTVHxGyIDyWnzLMZejuNkxUz/OF94fNh0 DiYHO1LBXrZ0pd13ledwtGsKSeBTN9hQpE17FHZ2/+Z7dsfbXEmxEoFogAM+57PO 9qLNbHDSDnOqHH01g2l4i8jEjdHANEOtO59kR25/U4USn3fZHmJ2ktrBSPt+z2k1 yHW4yw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773202099; x=1773806899; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=Jp25zBCD6bIOAty4BaNTCtDb4uipih75eLMJRC83tLs=; b=Su21BkQoeePpd1BYAG+c1LovJNwIIU2sh2KsGajMWEoLxVeLUWRIV0LzTj8lDlEE7m 9AFAaDIMSuFa+AdHCr/g1OuncZTtH/NSDKYFFM8RSAXvr4OaSpz4kdmgWcZPuU1cDeJN vv5LdoWeM3EOjzAZWT9T0v1fu3FgjPDKNVymgwofbKF8tIphde5wyBSob4tyN7gnbGGT ex0xezNVV0/WVRdmt2Zch8UPbeyDv85q8yXPnYn1hyJXD0r9/Ss3Hqa4ZEOlCvOspRxL ToKXPwj3LAby3TjbF+HHAl+R5QaDp1AeWqBStOpPC61UalYNj4HJ1sSQde1XduWfE1Yb Dglw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773202099; x=1773806899; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=Jp25zBCD6bIOAty4BaNTCtDb4uipih75eLMJRC83tLs=; b=L5DmBEce54h6s/h/wTO/rWd/kKnJKrGGWDbBHaUo9UwNm9CFPM2WpSQsWcpzkxROXs ToSmNEvxuj3C2RIOOPjlfop1fwI9Z4hmgzYgJg5qYOK69f5HGl/HeD35CdbgNEOAxW9W RFk1zNBudXFdeBDOQsw0OIJb7uZb7uPtk62Q3R5/UuJ//Enh+3E/v7iIumSwUXN2P9jj B4xdMo2Q64nykDKcnLjAzJaD3nqlc9rowZjXpSDsM5nBAq5da8pQ8p2xS94xDSoRCs6U lHKwxN0fbzPMogZ8mL1pUYFYaB9sZE3ZBtNrMMpwIc8CerBMlTVw6Nf19btrau9hKglY n1ow== X-Gm-Message-State: AOJu0YzNpt5/8/Y/6ZgsTnlJQZdsg/qfXiYPj0sY7t1Y5jjYrWOkpnzz Snvri+x2rFh5EVtVb+U7OdFaQkXerdIcXCStzx9N8B4qxmEgnqXq7Pm5rWxHV/mKbJB9hI31A2T FBjn6fh0qVnq5ge91/tZY0amjsbzi28t4bZfvlJiUtVQ1VIQt6uwGGBIog8x+qdCkGQ== X-Gm-Gg: ATEYQzwID22glVl1VKORPfrkclLs/3AFmV4fjKD2UH0NISn1OCWcyAXbVELK3dcUkur NKrA1bLB2kJjVFQqeJioLhnT5flgLMEFaHzPb8iAhI9eW6HpkM2Qzw+PB7vNT6eIoY+o7w9Xu3h I+zCTetcFrmtrRMADx1GnBzq3Q+Ft3vZf3dHmgaqmaLWUqB818QtnwS+Y1P3M9BfJbGgE/oN5xZ dTvzAGTLFJm8rYo/BCo8DII1Zv8Ee1IeVaPqcYeQg7O1q4LkiTyKZ3NDmmEY0o7wx3IPw3YEaDu 8Xqr68YWfhK4c+CaYPjn0K2YsalOd5OlL64Phx85UseetCVBTbijHomCTQu7YLYRKYenc33Jj3I zUxUwOAEThnZ2z0g75+0j/uF84ULnprAmTthOrXmte+ubgNdzV6+KQJdh6dqbDvUyXfoWzQ== X-Received: by 2002:a05:6871:5d12:b0:413:9c82:8742 with SMTP id 586e51a60fabf-41756b95c1emr3682073fac.27.1773202099014; Tue, 10 Mar 2026 21:08:19 -0700 (PDT) X-Received: by 2002:a05:6871:5d12:b0:413:9c82:8742 with SMTP id 586e51a60fabf-41756b95c1emr3682054fac.27.1773202098516; Tue, 10 Mar 2026 21:08:18 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, philmd@linaro.org, ltaylorsimpson@gmail.com, matheus.bernardino@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, Brian Cain , Sid Manning Subject: [PATCH v3 09/32] target/hexagon: Add implementation of cycle counters Date: Tue, 10 Mar 2026 21:07:35 -0700 Message-Id: <20260311040758.1068731-10-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260311040758.1068731-1-brian.cain@oss.qualcomm.com> References: <20260311040758.1068731-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: UjBUX3vFs7ORvv-D1R2DVcVFX8lzs2G_ X-Proofpoint-ORIG-GUID: UjBUX3vFs7ORvv-D1R2DVcVFX8lzs2G_ X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzExMDAzMiBTYWx0ZWRfXxHeQrNsuhRo5 +NMMdmliAyipUc4y98PHLR8dA6NUQRv8oI9wcUL3iLZi3tbEmSK5oVb/axZ9cABtGW3uh9Kev8N U3t89Fn1kI4Xk/Je/higU8kc1UeQHMgII5OVjluNBfM0i8Re+QrvO5lBWaOwtsHNrbLpOgIR4Oz 4qyeKd9Y/EMKKO3PWbP0vog/1BpW+gWYLsp5obrJzIz3jxACQP0dGQ+VcMk76DHA3RsZj+t/vbE 2RKkjQj+7sSa4Y28ilCqIUUZIQQLahoTsFMK7w7eT8uzTqInkNbRRWHRHh4Z+hItNxI7b+qeGCY gXolWIFQd+Xo4r/Gw9Pg7z8vJuIzOche0rNWGr44gUN1Fpv2lXsUUb+WUhQ2M4gXSf/J/N3Aja8 UbRBbRblA9WYeR89691p3lfZ/H62JwsM+ljZta6DG37clY9khr8oeqQiDQ/BN1wdWGY/ZmEib75 UnbmL96hQE8kJy1p53w== X-Authority-Analysis: v=2.4 cv=M4JA6iws c=1 sm=1 tr=0 ts=69b0eab3 cx=c_pps a=Z3eh007fzM5o9awBa1HkYQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=gowsoOTTUOVcmtlkKump:22 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=6WCJHhgCVYwEtMrCBCEA:9 a=QEXdDO2ut3YA:10 a=eBU8X_Hb5SQ8N-bgNfv4:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-10_05,2026-03-09_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 priorityscore=1501 adultscore=0 lowpriorityscore=0 phishscore=0 impostorscore=0 spamscore=0 suspectscore=0 bulkscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603110032 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.819, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.903, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1773202435982154100 From: Brian Cain The PCYCLE register is available in system mode, but only increments when the SYSCFG.PCYCLEEN field is set. The UPCYCLE register is available in user mode and we model it unconditionally in linux-user emulation, as if the system had enabled PCYCCLEEN. For now, the model is very crudely counting the sum of instructions executed among vCPUs, regardless of how the instructions were actually scheduled. This is sufficient for demonstrating a rough level of activity but will be particularly misleading for benchmarks and performance tuning. We may decide to revisit this model in order to give more a bit more fidelity, though without a cache model it would still be very far from accurate. Co-authored-by: Sid Manning Signed-off-by: Brian Cain Reviewed-by: Taylor Simpson --- target/hexagon/cpu.h | 5 +++-- target/hexagon/translate.h | 2 ++ target/hexagon/cpu.c | 14 ++++++++++++++ target/hexagon/cpu_helper.c | 32 ++++++++++++++++++++++++++++---- target/hexagon/translate.c | 21 +++++++++++++++++++++ 5 files changed, 68 insertions(+), 6 deletions(-) diff --git a/target/hexagon/cpu.h b/target/hexagon/cpu.h index ee2e5eeece2..da96b52bd2a 100644 --- a/target/hexagon/cpu.h +++ b/target/hexagon/cpu.h @@ -30,6 +30,7 @@ #include "cpu-qom.h" #include "exec/cpu-common.h" #include "exec/cpu-defs.h" +#include "exec/cpu-common.h" #include "hex_regs.h" #include "mmvec/mmvec.h" #include "hw/core/registerfields.h" @@ -38,8 +39,7 @@ #error "Hexagon does not support system emulation" #endif =20 -#ifndef CONFIG_USER_ONLY -#endif +#include "reg_fields.h" =20 #define NUM_PREGS 4 #define TOTAL_PER_THREAD_REGS 64 @@ -202,6 +202,7 @@ struct ArchCPU { =20 FIELD(TB_FLAGS, IS_TIGHT_LOOP, 0, 1) FIELD(TB_FLAGS, MMU_INDEX, 1, 3) +FIELD(TB_FLAGS, PCYCLE_ENABLED, 4, 1) =20 G_NORETURN void hexagon_raise_exception_err(CPUHexagonState *env, uint32_t exception, diff --git a/target/hexagon/translate.h b/target/hexagon/translate.h index 7e528379db6..e7acbae9ffa 100644 --- a/target/hexagon/translate.h +++ b/target/hexagon/translate.h @@ -84,6 +84,8 @@ typedef struct DisasContext { TCGv new_pred_value[NUM_PREGS]; TCGv branch_taken; TCGv dczero_addr; + bool pcycle_enabled; + uint32_t num_cycles; } DisasContext; =20 bool is_gather_store_insn(DisasContext *ctx); diff --git a/target/hexagon/cpu.c b/target/hexagon/cpu.c index 20c4b82a970..1c8a188dec4 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -293,9 +293,23 @@ static TCGTBCPUState hexagon_get_tb_cpu_state(CPUState= *cs) } =20 #ifndef CONFIG_USER_ONLY + HexagonCPU *cpu =3D env_archcpu(env); + uint32_t syscfg =3D cpu->globalregs ? + hexagon_globalreg_read(cpu->globalregs, HEX_SREG_SYSCFG, + env->threadId) : 0; + + bool pcycle_enabled =3D extract32(syscfg, + reg_field_info[SYSCFG_PCYCLEEN].offset, + reg_field_info[SYSCFG_PCYCLEEN].width); + hex_flags =3D FIELD_DP32(hex_flags, TB_FLAGS, MMU_INDEX, cpu_mmu_index(env_cpu(env), false)); + + if (pcycle_enabled) { + hex_flags =3D FIELD_DP32(hex_flags, TB_FLAGS, PCYCLE_ENABLED, 1); + } #else + hex_flags =3D FIELD_DP32(hex_flags, TB_FLAGS, PCYCLE_ENABLED, true); hex_flags =3D FIELD_DP32(hex_flags, TB_FLAGS, MMU_INDEX, MMU_USER_IDX); #endif =20 diff --git a/target/hexagon/cpu_helper.c b/target/hexagon/cpu_helper.c index 4860e4a6ab0..729ffa47eed 100644 --- a/target/hexagon/cpu_helper.c +++ b/target/hexagon/cpu_helper.c @@ -33,17 +33,31 @@ uint32_t hexagon_get_pmu_counter(CPUHexagonState *cur_e= nv, int index) =20 uint64_t hexagon_get_sys_pcycle_count(CPUHexagonState *env) { - g_assert_not_reached(); + BQL_LOCK_GUARD(); + uint32_t ssr =3D env->t_sreg[HEX_SREG_SSR]; + if (!GET_SSR_FIELD(SSR_CE, ssr)) { + return 0; + } + uint64_t cycles =3D 0; + CPUState *cs; + CPU_FOREACH(cs) { + CPUHexagonState *thread_env =3D cpu_env(cs); + cycles +=3D thread_env->t_cycle_count; + } + HexagonCPU *cpu =3D env_archcpu(env); + uint64_t base =3D cpu->globalregs ? + hexagon_globalreg_get_pcycle_base(cpu->globalregs) : 0; + return base + cycles; } =20 uint32_t hexagon_get_sys_pcycle_count_high(CPUHexagonState *env) { - g_assert_not_reached(); + return hexagon_get_sys_pcycle_count(env) >> 32; } =20 uint32_t hexagon_get_sys_pcycle_count_low(CPUHexagonState *env) { - g_assert_not_reached(); + return extract64(hexagon_get_sys_pcycle_count(env), 0, 32); } =20 void hexagon_set_sys_pcycle_count_high(CPUHexagonState *env, @@ -60,7 +74,17 @@ void hexagon_set_sys_pcycle_count_low(CPUHexagonState *e= nv, =20 void hexagon_set_sys_pcycle_count(CPUHexagonState *env, uint64_t cycles) { - g_assert_not_reached(); + BQL_LOCK_GUARD(); + HexagonCPU *cpu =3D env_archcpu(env); + if (cpu->globalregs) { + hexagon_globalreg_set_pcycle_base(cpu->globalregs, cycles); + } + + CPUState *cs; + CPU_FOREACH(cs) { + CPUHexagonState *thread_env =3D cpu_env(cs); + thread_env->t_cycle_count =3D 0; + } } =20 void hexagon_modify_ssr(CPUHexagonState *env, uint32_t new, uint32_t old) diff --git a/target/hexagon/translate.c b/target/hexagon/translate.c index 4df4226cbcb..e4d4dad8ffd 100644 --- a/target/hexagon/translate.c +++ b/target/hexagon/translate.c @@ -61,6 +61,7 @@ TCGv_i64 hex_store_val64[STORES_MAX]; TCGv hex_llsc_addr; TCGv hex_llsc_val; TCGv_i64 hex_llsc_val_i64; +TCGv_i64 hex_cycle_count; TCGv hex_vstore_addr[VSTORES_MAX]; TCGv hex_vstore_size[VSTORES_MAX]; TCGv hex_vstore_pending[VSTORES_MAX]; @@ -128,6 +129,16 @@ static void gen_exception_raw(int excp) gen_helper_raise_exception(tcg_env, tcg_constant_i32(excp)); } =20 +#ifndef CONFIG_USER_ONLY +static inline void gen_pcycle_counters(DisasContext *ctx) +{ + if (ctx->pcycle_enabled) { + tcg_gen_addi_i64(hex_cycle_count, hex_cycle_count, ctx->num_cycles= ); + ctx->num_cycles =3D 0; + } +} +#endif + static void gen_exec_counters(DisasContext *ctx) { tcg_gen_addi_tl(hex_gpr[HEX_REG_QEMU_PKT_CNT], @@ -136,6 +147,10 @@ static void gen_exec_counters(DisasContext *ctx) hex_gpr[HEX_REG_QEMU_INSN_CNT], ctx->num_insns); tcg_gen_addi_tl(hex_gpr[HEX_REG_QEMU_HVX_CNT], hex_gpr[HEX_REG_QEMU_HVX_CNT], ctx->num_hvx_insns); + +#ifndef CONFIG_USER_ONLY + gen_pcycle_counters(ctx); +#endif } =20 static bool use_goto_tb(DisasContext *ctx, target_ulong dest) @@ -821,6 +836,7 @@ static void gen_commit_hvx(DisasContext *ctx) } } =20 +static const int PCYCLES_PER_PACKET =3D 3; static void update_exec_counters(DisasContext *ctx) { Packet *pkt =3D ctx->pkt; @@ -840,6 +856,7 @@ static void update_exec_counters(DisasContext *ctx) } =20 ctx->num_packets++; + ctx->num_cycles +=3D PCYCLES_PER_PACKET; ctx->num_insns +=3D num_real_insns; ctx->num_hvx_insns +=3D num_hvx_insns; } @@ -989,11 +1006,13 @@ static void hexagon_tr_init_disas_context(DisasConte= xtBase *dcbase, =20 ctx->mem_idx =3D FIELD_EX32(hex_flags, TB_FLAGS, MMU_INDEX); ctx->num_packets =3D 0; + ctx->num_cycles =3D 0; ctx->num_insns =3D 0; ctx->num_hvx_insns =3D 0; ctx->branch_cond =3D TCG_COND_NEVER; ctx->is_tight_loop =3D FIELD_EX32(hex_flags, TB_FLAGS, IS_TIGHT_LOOP); ctx->short_circuit =3D hex_cpu->short_circuit; + ctx->pcycle_enabled =3D FIELD_EX32(hex_flags, TB_FLAGS, PCYCLE_ENABLED= ); } =20 static void hexagon_tr_tb_start(DisasContextBase *db, CPUState *cpu) @@ -1136,6 +1155,8 @@ void hexagon_translate_init(void) offsetof(CPUHexagonState, llsc_val), "llsc_val"); hex_llsc_val_i64 =3D tcg_global_mem_new_i64(tcg_env, offsetof(CPUHexagonState, llsc_val_i64), "llsc_val_i64"); + hex_cycle_count =3D tcg_global_mem_new_i64(tcg_env, + offsetof(CPUHexagonState, t_cycle_count), "t_cycle_count"); for (i =3D 0; i < STORES_MAX; i++) { snprintf(store_addr_names[i], NAME_LEN, "store_addr_%d", i); hex_store_addr[i] =3D tcg_global_mem_new(tcg_env, --=20 2.34.1 From nobody Wed Apr 8 01:18:41 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1773202410; cv=none; d=zohomail.com; s=zohoarc; b=mVx/oGrOGwMr0aHyJBoKp48gYSlhhgRl/C5ts9vZLSH2vaXM3YEWyAmTUqzCljfXSlImoDIEm7m32/OgM8w1JwcpVsjTjvdqB61Tj/pCV8C8UzNeRAutCp7O9pZs6QN7v+NzwP23RiWsK0klziVQhMxSm9a3IKZvAzDxanEVP60= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773202410; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-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=N7W+WFyOXuAVYuSLJ/jaAoJ5ckKzb96Ag1HOSeDm9jjEm1+ILY8ZMLJGvtFB1N/Bm2DQdXWjOhft+U6r386w9kY+VbRl8C7S96OnkDGUg9WmlBbvoS4nx3lyZw/2yKLJaAkbqT9xgeVilOGCVRE1xFqA8Jb6Db0HEn0BDOQ62xU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 177320241040756.11944642713047; Tue, 10 Mar 2026 21:13:30 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w0AsM-0000u4-Al; Wed, 11 Mar 2026 00:08:50 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w0Arx-0000m7-TW for qemu-devel@nongnu.org; Wed, 11 Mar 2026 00:08:26 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w0Arw-0008Tw-A7 for qemu-devel@nongnu.org; Wed, 11 Mar 2026 00:08: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 62AInftQ3417140 for ; Wed, 11 Mar 2026 04:08:21 GMT Received: from mail-ot1-f70.google.com (mail-ot1-f70.google.com [209.85.210.70]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ctja2ba6m-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 11 Mar 2026 04:08:20 +0000 (GMT) Received: by mail-ot1-f70.google.com with SMTP id 46e09a7af769-7d74cd7b1e3so11141742a34.1 for ; Tue, 10 Mar 2026 21:08: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 586e51a60fabf-4177e5ea30asm998656fac.10.2026.03.10.21.08.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Mar 2026 21:08:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= 4hsqE0JDPfvXJ30nhCZ/CCXuACFuBC+IpE9moxChOvw=; b=ev28D6UyAHUBixza /4PapG/3SITcIRW4gAC1ONFqQTqec10PQJVbjfIZhI8IyXmOOPs5p6snzOaR0Ng2 arwwz5TmUNiXg0mfvIHOg27GO1zH8Tx1yCdKBH4XMTrWnQ09rn7B/ERvksKMfhpd hBXVim2hGSRuga7keo1bhNFWL+ZX7Ke86QpwS71n6BPMDENsK3JVz4S+dp/0CiIt jfOtA/KgJ/LAZ9K5d5txZt7rKBqlrWdffiTfanBN4rdnmrDVZHz7W5ztW4eCtdC9 rCCxZngRwrBuqCWXyVlYOEFIymbjMDi1O3VqyElr4VY868gyUWYrC3n1WSw/reMC fULTkw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773202100; x=1773806900; darn=nongnu.org; h=content-transfer-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=MuqTtoa6n8HqTZv2XD0s8uQRSOWRVTqQkshW4rWukV++7YN/DDt1PjrAo1zQNKIWZ3 u+8yF8vMgv57hB3Jv6U7syjrIP6fdx+C4/af8uJX9f8iJfHUpCcnR3UL/+ykM4uJJRuu H3+SSGpIAUw9PdGyIqHxnvOFssGkmRfULpRVtmu4viydEy2XGP9qNeEghG8bodTeCO5L YARUWBz8QvWpcKeswAr1mN4s1UWEhwc67OFCGFG+lzoGG1TXCWyWFROjTH62FIp6Y8GF x3Du1Mbw/lY/EMSuq0XkxGMwzjh9X5ywrzcI1FKD0pCJQtP+dTfm19JirrzWFW89+sVj EUfw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773202100; x=1773806900; h=content-transfer-encoding:mime-version:references:in-reply-to :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=Hg5KKh9cq+/DZONGuXJth5WtKiCsWQdSHBau1Xp8nKvv8gxopwZwGSe5IIJL0S/5uJ y9o9HrXemPXAHl2Oyg6SHA7mWhZOyrtIQbk8WkQbcm3b4F/PFOPCwCwpZ1K/c9OBm5sl 7s1E3OOUtGZMywgcIK55jOhJwuhYmZ3D9zp81c0/c2kvZX5aylYtqu9plW3x/aWCAhgn Nc355F0HzmNtiRoS7j6Boptv9E0HvuQKc+KAp/pBcLTyI+s9cWx0IEXlTR15/u56XU/s QV/rLx1Y1REnPryZjsV62l7IVhR+ucWoEWzDTiee9C3bji2if2htkZbtTrZdLGKBQiua 2I0g== X-Gm-Message-State: AOJu0YxNeKLZKie/vuUXUbZtppCNtw38gHny7fYYsm5YxGnJw6KEnL7T 6+EZePuTSshjIo/YLF2lNaOC6SxV4o0p9HkJqh5xEUsPkchocA8/kSe0mFOK720tFLezEq/BhMz zl1B7qKc9UYiR57FwKowFDovdGTaa/rUwbA6PtUXcvL7OLZL75YOZ1nfE8JNlaNgU1w== X-Gm-Gg: ATEYQzym5QCYReGTSOI2VOv1sNkBJw8XVs53UV8dyT6jFIfCot9A1XjAbJcXOEQen1h DKUd0xb7X7j1d4xJP/lGOx72gzSh0APfIXeEluiCDybUreeOxkSEa+vROCbRsJZI/ajWDJukbxX qsBMbIDzRaNdRc/e3WYJTcCLzkdd7nAi9gFqBHlBrPFFXNn+xGQw0AUl8QKBGl06+vue9sruV1o wmdRoh3mV2sKEI5vujXGIYp9e4KNcC+7DQWQZl3FS+Zzaqx0NbZfD236MI7C41u1fvQruBuIubC oYu/o4WCqmKT+GHj064+ckcu9ynZD1LzAET6RZ6BLgVrXhoxSZ5qSd1uNnHPTbTUackdZvpd4a+ 5JAF8pzOEejqfnSjx4FZsE5EcEojHJHSTiTLnfC6rayYmzEcbEv9HlwmOBfpaRhPtk1/8ZQ== X-Received: by 2002:a05:6830:67fe:b0:7d7:5e62:4f0f with SMTP id 46e09a7af769-7d76a81749bmr917255a34.34.1773202100361; Tue, 10 Mar 2026 21:08:20 -0700 (PDT) X-Received: by 2002:a05:6830:67fe:b0:7d7:5e62:4f0f with SMTP id 46e09a7af769-7d76a81749bmr917234a34.34.1773202100053; Tue, 10 Mar 2026 21:08:20 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, philmd@linaro.org, ltaylorsimpson@gmail.com, matheus.bernardino@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, Brian Cain , Laurent Vivier , Pierrick Bouvier Subject: [PATCH v3 10/32] target/hexagon: Implement hex_tlb_entry_get_perm() Date: Tue, 10 Mar 2026 21:07:36 -0700 Message-Id: <20260311040758.1068731-11-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260311040758.1068731-1-brian.cain@oss.qualcomm.com> References: <20260311040758.1068731-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=c9WmgB9l c=1 sm=1 tr=0 ts=69b0eab4 cx=c_pps a=7uPEO8VhqeOX8vTJ3z8K6Q==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA: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=EXS-LbY8YePsIyqnH6vw:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: DTd5JGFZSSHvTCa7q2rOhiIjYluZdhol X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzExMDAzMiBTYWx0ZWRfX6VA0KpikpoYu A6m/BonVPc2RpGidUcFeWaM3OIV9Ai122ubTIDSwfbBu71fUbM4CWKdGRBNAZGQ/LsWk3A22OPM aRSOiMHWBHFSuUuRb4GIo1S/2AfWGq/h5xykpX0XlE+N05BTAQh4HWSRO9G2L1wNK/F+Z4D6als iwKVato7a/4ug8CMexxjUQst7FtMBVXxYCl9HooyRis1CE6IsdX4Mly5rn34jK8R6T8EpKIkngc VyOoJ1IanuXRVsN6Lrx1y/PNTtGASDng3xiq4z8snflCB+4/a5P1kJBk4KxA2S34zKdU0Rw4il0 r70ehuGZKzzn2BhiFuhicvyq6hliMJjKZLDccU2dx5k2XEJxaNFSf4/8GhZGTLdh8B0npAq/7GS tBNUGvWfUAqY0B8hle3rSLVtSjO4Mcj7d5mYmgT7y6CACo125RZDIJmOFKhnEuW8Fha4B3ICjww oTDsG5BVSQAybEcKmjQ== X-Proofpoint-GUID: DTd5JGFZSSHvTCa7q2rOhiIjYluZdhol X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-10_05,2026-03-09_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 malwarescore=0 lowpriorityscore=0 suspectscore=0 spamscore=0 clxscore=1015 impostorscore=0 phishscore=0 bulkscore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603110032 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.819, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.903, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, TVD_SPACE_RATIO=0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1773202413544154100 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 Wed Apr 8 01:18:41 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1773202238; cv=none; d=zohomail.com; s=zohoarc; b=hvmnwgOc3sJj37ZWJZel2iqrjneMS8IK5ctTFZH8kNv7+sYFcIpISWE2aBdSn6b3XaljqtzBgRDrKNYPJxDAkcXDhWPsx5zy+eRsi1oLw6NuVu9afuOOWukhSMjCPY3kmOukM4VN0TCABNdkkZWiac9nHRDpRbUGbJBeWCjvths= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773202238; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=pcu2cL7NoFt/9rHbxFUYfIbsS7bPyghgWIt9tY3JgPI=; b=OEQkr9AkNa6z/0dAGGJf9CMrMEDBeIHMvvEPpz5vlhLo7ZOqeV4G9K7kCPGOORpyp5Lk9RWIWqcoS228XuV5n7yJgzI2IZD7EyIs9HXy+H3j11fnK5XtpPmkYkn/hTMxIVDp1iYF6VqRBd8OFlQffJvpfeOgR1WvLTP8oTfQLD8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 177320223853022.7529750308654; Tue, 10 Mar 2026 21:10:38 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w0AsI-0000rz-VS; Wed, 11 Mar 2026 00:08:46 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w0Arz-0000mW-Hh for qemu-devel@nongnu.org; Wed, 11 Mar 2026 00:08:28 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w0Arw-0008UK-Jb for qemu-devel@nongnu.org; Wed, 11 Mar 2026 00:08:27 -0400 Received: from pps.filterd (m0279868.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 62AKOeMU140361 for ; Wed, 11 Mar 2026 04:08:22 GMT Received: from mail-oi1-f199.google.com (mail-oi1-f199.google.com [209.85.167.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ctg1muwfn-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 11 Mar 2026 04:08:22 +0000 (GMT) Received: by mail-oi1-f199.google.com with SMTP id 5614622812f47-4670333a4afso24100697b6e.1 for ; Tue, 10 Mar 2026 21:08: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 586e51a60fabf-4177e5ea30asm998656fac.10.2026.03.10.21.08.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Mar 2026 21:08: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= pcu2cL7NoFt/9rHbxFUYfIbsS7bPyghgWIt9tY3JgPI=; b=nLtys0e7KHYwpZnl HGYbts+NPDjvVT9uvL8G576Bx5fqJPgy67s3XtrZYpLXFptlHht7+mgFyQRrxgku Vlmi5/tjpqg3PWgMrt3K545orw0bj4SZfLFwK1EFsq7HVTOszez8G4ur4YlX/Pef IlSa6BxKbPE/+GKZ/XwGblhSaMKlkWGjelX5kUicM2lmPAKpqIuA5tXcsEIG13jB ikgBmyv+peEBQM60p60XqNgVuw+WqNoS7e4y+bXGC788lV56NMxchLS/0IY02P9B HhvZes7TTlTOlJHhM2ts2ayKhSo1fpP7FuAH6de2nWdAUhOBlR3+qK6HRmnQS/mP CdymmQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773202102; x=1773806902; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=pcu2cL7NoFt/9rHbxFUYfIbsS7bPyghgWIt9tY3JgPI=; b=X4NSTFHqH+ri+PZwg8gML4hBhR5NVosDG57Gv4hAjHwDFx4er1qJ3+0AQcp5kzowCL Xm0FTNpP3YWLkWSGDiB/wu+GpU8R3WkL2KDFOQ3Lx9j01HIvuz/dyD2b3esCykLISc9r eUr18Ser+fwnQS0XTBrqNgYaHMpOt1uMQyhfQ+O6q0O75K/TmoFgKFD5D6BLxwE2yAoo di2EqBHU4vjgF9OUH/pyGIKbJbu2BIrVNnB89tGy02NfeWOchPVxm3zhoCTe6s3LBbYS wbaV8Oz8PRZ+itES/ofBBOcumqyOYTzkFpZekR3gSsRY9gR8QGYn8H1CLrnLHj5qJaCP beIA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773202102; x=1773806902; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=pcu2cL7NoFt/9rHbxFUYfIbsS7bPyghgWIt9tY3JgPI=; b=hNFhUzhb3KXdnEf542OXcCsal5bYAMLD4O+Dp0u5ImDn6TwW0b38jXQ0pe8X/0Z4R7 z4Rol6vHeoaUsFcKuRThthnsqITM7GtlEqFX5D67Eu3bVJelquk87w8hro4KDUWlq0Gg 3N4167DTSQwGiIILn6gfRLwrfRJol6nEjiV5ILSqyQqZyFJI3UYxPJjiSyAnDHepnhky MjXThxvRnysB6bcMjf5Jc8AE2FhOhUTsc2T6b6JuOAMi66yDL3QfIFYuw7F+lqO/s1WO eov9kM9vun2PN1hPL+1Q/S497yxMfOtG1/Jc5uxozB01jozsYxgj9+ze/zeaKnTpVyIn OuMg== X-Gm-Message-State: AOJu0YygGfCPLCIB5e9EKLJJZccsTCjRWP/W8cbMpBNmM6BQm3KNTmJs kqxEZt8wOw72OYmaEHw/8jtFW6fCcgCtmB5BUDF1YAvVT5+F4MoGxLym4t604JXC3clKvOVZXuy fnac9Bb7sB92dKPKAN/PCJ7hMf6YXLLnGE1yzEHoKgE+a1y7+t+rUSXDbJOs3/dyGmg== X-Gm-Gg: ATEYQzyBu8Ww55ioR2pL4NrM1DftC/z55iVT06/1ppubufU14W7e1C2/ZW/fRDxseBZ bxKscRxbVIMIMzRARxQbZG3EF9JMU5vkRcfS4+eiiOw6xaAinQBRULk7lUj7XLtPDKsp/vErZHV JwgvQpzW00k37HADtpKfHI8OVpbzxcpV+v+hKsXhpMWPRReS7wCNLfT3oW8Cx0Bn1LbomBjwj6+ eUZIQ/L1Ik1WwHU2VlzRsRoOS1CQrFynLa9K5gw8s62YSos17SAQYSAJIwYEAM9avLRhkV1B/U2 0nfZVrjoAfmJQ9yRQph7kZxvdVqEPy9XHV2ll2MLMhmRG3DSwT8I6HPTs5iV9XmbRd7kLCjw+jm XTFRa8fn4JFBZ1NhmStsdBsVAjcg96prxxA+hM7dRFMKw53hm19YjOWUKxyJ+OL5wRkVksA== X-Received: by 2002:a05:6808:220d:b0:45f:a12:5c88 with SMTP id 5614622812f47-46733565bf7mr769045b6e.49.1773202101771; Tue, 10 Mar 2026 21:08:21 -0700 (PDT) X-Received: by 2002:a05:6808:220d:b0:45f:a12:5c88 with SMTP id 5614622812f47-46733565bf7mr769030b6e.49.1773202101272; Tue, 10 Mar 2026 21:08:21 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, philmd@linaro.org, ltaylorsimpson@gmail.com, matheus.bernardino@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, Brian Cain , Mike Lambert Subject: [PATCH v3 11/32] target/hexagon: Implement software interrupt Date: Tue, 10 Mar 2026 21:07:37 -0700 Message-Id: <20260311040758.1068731-12-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260311040758.1068731-1-brian.cain@oss.qualcomm.com> References: <20260311040758.1068731-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=YOeSCBGx c=1 sm=1 tr=0 ts=69b0eab6 cx=c_pps a=yymyAM/LQ7lj/HqAiIiKTw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=GrOwn3lwaHnSPDIU4SkA:9 a=QEXdDO2ut3YA:10 a=efpaJB4zofY2dbm2aIRb:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: GZQxp_SyaYNmb8HHogNIjjZuosl0x8sO X-Proofpoint-GUID: GZQxp_SyaYNmb8HHogNIjjZuosl0x8sO X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzExMDAzMiBTYWx0ZWRfX9nvFyoYfU4bn wmlQFA5G4Dzu7eb+n5HYo12HXCY3WFf2Z1donTlh7Cqr7LQxqhXOocQ7NiEhjxDrj/K73oR67ux OTcM29CsjtHfeRGbZ2TvL0/6L46c7gpHAMwTIoxRlU3Yjt9+W+G1+OA5pRhBg0nHvnEyty8NxsK XXmg8Rp5CzK47S70pUDZcMzi/T8gc4uosxNBKeQZ8rC7DPvTqamFtrpwQ1dsO8xY+8wOjfKf6OP VwXt2a+WXqOTFrOnNwIHGpHxVrGmvnE1gHdTjQ4r6pIIyo5SKeUk+3U1mmyPOMpwrV9RoMi61WF eIX6HFkJauPLpxC/WAt70vNhvNsvzzG6JvU7pNYqasktiXydBIT/k0CmpPvBFB5263dvv/Kfx6v oztpDh2FwBCWYxKGCLhy/Im3I9gr7hZjVg7WU6E732F5/SshcdAfOq4n1rg2QZ1NmhguvykZ1qE Zp2loJqjgdKV17I08iA== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-10_05,2026-03-09_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 clxscore=1015 spamscore=0 bulkscore=0 suspectscore=0 priorityscore=1501 malwarescore=0 phishscore=0 adultscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603110032 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.819, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.903, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1773202240982154100 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 | 260 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 278 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 1c8a188dec4..2964d8a63f6 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -34,6 +34,7 @@ #include "sys_macros.h" #include "accel/tcg/cpu-ldst.h" #include "qemu/main-loop.h" +#include "hex_interrupts.h" #endif =20 static void hexagon_v66_cpu_init(Object *obj) { } diff --git a/target/hexagon/hexswi.c b/target/hexagon/hexswi.c new file mode 100644 index 00000000000..77a4dd5bc43 --- /dev/null +++ b/target/hexagon/hexswi.c @@ -0,0 +1,260 @@ +/* + * 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%x:%s, cause 0x%x(%d)\n", + __func__, 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%x) caught: " + "Cause code (0x%x) " + "TID =3D 0x%" PRIx32 ", PC =3D 0x%" PRIx32 + ", BADVA =3D 0x%" PRIx32 "\n", + cs->exception_index, env->cause_code, env->threa= dId, + env->gpr[HEX_REG_PC], + env->t_sreg[HEX_SREG_BADVA]); + + hexagon_ssr_set_cause(env, env->cause_code); + set_addresses(env, 0, cs->exception_index); + break; + + default: + cpu_abort(cs, + "1:Hexagon exception %d/0x%x: " + "Unknown cause code %d/0x%x\n", + cs->exception_index, 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%x) caught: " + "Cause code (0x%x) " + "TID =3D 0x%" PRIx32 ", PC =3D 0x%" PRIx32 + ", BADVA =3D 0x%" PRIx32 "\n", + cs->exception_index, env->cause_code, env->threa= dId, + env->gpr[HEX_REG_PC], + env->t_sreg[HEX_SREG_BADVA]); + + hexagon_ssr_set_cause(env, env->cause_code); + set_addresses(env, 0, cs->exception_index); + /* env->sreg[HEX_SREG_BADVA] is set when the exception is rais= ed */ + break; + + default: + cpu_abort(cs, + "2:Hexagon exception %d/0x%x: " + "Unknown cause code %d/0x%x\n", + cs->exception_index, 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%x) caught: " + "Cause code (0x%x) " + "TID =3D 0x%" PRIx32 ", PC =3D 0x%" PRIx32 + ", BADVA =3D 0x%" PRIx32 "\n", + cs->exception_index, env->cause_code, env->threa= dId, + env->gpr[HEX_REG_PC], + env->t_sreg[HEX_SREG_BADVA]); + + + hexagon_ssr_set_cause(env, env->cause_code); + set_addresses(env, 0, cs->exception_index); + /* env->sreg[HEX_SREG_BADVA] is set when the exception is rais= ed */ + break; + + case HEX_CAUSE_DOUBLE_EXCEPT: + case HEX_CAUSE_PRIV_USER_NO_SINSN: + case HEX_CAUSE_PRIV_USER_NO_GINSN: + case HEX_CAUSE_INVALID_OPCODE: + case HEX_CAUSE_NO_COPROC_ENABLE: + case HEX_CAUSE_NO_COPROC2_ENABLE: + case HEX_CAUSE_UNSUPPORTED_HVX_64B: + case HEX_CAUSE_REG_WRITE_CONFLICT: + case HEX_CAUSE_VWCTRL_WINDOW_MISS: + hexagon_ssr_set_cause(env, env->cause_code); + set_addresses(env, 0, cs->exception_index); + break; + + case HEX_CAUSE_COPROC_LDST: + hexagon_ssr_set_cause(env, env->cause_code); + set_addresses(env, 0, cs->exception_index); + break; + + case HEX_CAUSE_STACK_LIMIT: + hexagon_ssr_set_cause(env, env->cause_code); + set_addresses(env, 0, cs->exception_index); + break; + + default: + cpu_abort(cs, + "3:Hexagon exception %d/0x%x: " + "Unknown cause code %d/0x%x\n", + cs->exception_index, 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%x/0x%x\n", + 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 Wed Apr 8 01:18:41 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1773202370; cv=none; d=zohomail.com; s=zohoarc; b=Ox0362dCMwK9h9Yfu8c2bStWpEjk1ICRPX7x4UcFVutpvGnX0h5EVAMvK8inwB5IJESM4YEDItb1WNur0YBszxWbBw11HAE1V4wFLqHYOTreuZjRtVQ/lIvoRfHPSGdhAkYGiOLCl/QBi8pZEaqiTQZMyVFNDHgrDx2/4YczETY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773202370; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=ujbXerkLwNEJdCn8PiYlDtr9LvPDgVbI85lbUd+ol6A=; b=atF+CwZaKIvtOvW0JpC1H3EI632LVB3neKeqlSoJpTkuzb8QUR93Ug/be8wfUzVBG+T/W3d9tzrOGM8Jrmy8HmkHVrK6n/zhZqZRji+I4fEbo2p94Dz0xc5M8Ek60E+6INUaTsGVKH6QatSxLmhOeDkziIdhxB9ZxitOan1n3Sc= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1773202370722858.8559479582935; Tue, 10 Mar 2026 21:12:50 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w0AsL-0000u0-UF; Wed, 11 Mar 2026 00:08:49 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w0Arz-0000mV-Gd for qemu-devel@nongnu.org; Wed, 11 Mar 2026 00:08:28 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w0Arx-0008Uh-O2 for qemu-devel@nongnu.org; Wed, 11 Mar 2026 00:08:27 -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 62B3VIrr614124 for ; Wed, 11 Mar 2026 04:08:24 GMT Received: from mail-oa1-f70.google.com (mail-oa1-f70.google.com [209.85.160.70]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4cu0jf03ad-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 11 Mar 2026 04:08:24 +0000 (GMT) Received: by mail-oa1-f70.google.com with SMTP id 586e51a60fabf-40f192cf4b6so31273204fac.1 for ; Tue, 10 Mar 2026 21:08: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 586e51a60fabf-4177e5ea30asm998656fac.10.2026.03.10.21.08.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Mar 2026 21:08: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= ujbXerkLwNEJdCn8PiYlDtr9LvPDgVbI85lbUd+ol6A=; b=LAfyY8yNgBz8aydB TLMlMnDAyzOkjOVAlgr3QbzC9k3eKOhF9CbOLBV6paVSKksjrupgUzYjmKoJYHHe XB+vV9HpbiNphafbtI0UEesrYLbg2bEGqsQNeHDaueIjwHC/FutYwzVJhlae5iRv SBlTLbl4DEPAbGm1qKbRzE1l5Gle8X60gEpwMEYPnFZvd1dRL9kv/h9VBY0NwIjq sIwfWb3j9QzgFmxjlak549Hp7ozmIbX0lfgrCcdlQyrxL1nvosHNz3SdpovvFV/f rz70ML4dJICIXTdM5xrd+LWPAGfp1KfDaQQSOIfRSBTeEnlYIrJmA4ap/Ezs4RJT /iGBdg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773202103; x=1773806903; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=ujbXerkLwNEJdCn8PiYlDtr9LvPDgVbI85lbUd+ol6A=; b=Xy4o/DdobXO6C+9ZDyWl2iQot02rv30xddbgKLT96/euJR6GzXnaELqlyrulVYPw0+ MylRMHun/Mbp5xdTk8jwP717p3l4yOGkabE6ogN3wqK86xX/s5TkztmhSXEO0GyyxdCX SGeAlQo9kZ0vdR9Dl1tRM8k+CC6wltyn0nlKDVqataesfI/VOfXWootVPb2AhDz4OjNt slAeXnjSN422G+0zFVr55I598V2TAPOIFF33XEPEtwD0IiWR38kxH7accWikKg6FavC3 OJ5uRzEEG4keSLnOnxfjxk0PR70LF/CKghbpSvnF0KPJr7E9sDUvGYnLKb1/lI4UUN7a bqbw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773202103; x=1773806903; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=ujbXerkLwNEJdCn8PiYlDtr9LvPDgVbI85lbUd+ol6A=; b=uf6DAcpY2VgqAwZMAJgLAiHc1zQdLfGG6Eav4l2bs/xBXqf95jja782mvS6vtT3CTq rSWAMXitqpLjf5hUYxflpcTm71rpgCbprG984x2lcAfq/gD+8/5kYDnEeQfWBfR4dVqo yFH8Btgx1qjSALgqVmZh40Qi1mTwBmOJbjC9FVMetkPbZpohJ22Q+498HzddL0XVf5IO bf9ncTJCy1FTYJPPxsjvUnmrhbDvaBRxetm9a6UiUnE+kC3KkvMIZpnFBIyfOQzLo21D tFiA521vSpdFckYkvUUPMvQvUi8faYHpQBtCOG+OCocDfVHX438zIPmxEDqYPkbVNaWw D1/g== X-Gm-Message-State: AOJu0YwOCgAmac91R0yo+4H2xDDND0LpEwvNetz5CoWwAWZw5VV61s/n 5qGRa5zlXjBBNoktTt7YHjOdg7hbesMhT1x8hblTHIZRP5k2rfEsFFUfjk8jsXMTSKqYQIpv+Iw ljs/gLpp1k4uozj6NDfbeFhVkygboVp6P0AjV8+9UsyjwgfpQtuyU9rqGjIDKSnSxyQ== X-Gm-Gg: ATEYQzyc3VA+Hw0Q6kpz23EdYK84yqUzW23b06saGNwKgV/XvA13+ShgaXYi0jJ8Fjl lZPAjef3RRYHWE/egp9GHD0YGk08hb0a1oaSKGif1yJo5iZ+E+COFUMsGRDrwNX8Bl5QTVgzV4A 1EmLOXUsDLSXgHbhTb0uJKPEGXM2RaHnJoU5l4hPBVQQ5N7IFU0cxlPghIYuX/5X1C5stZEkGS3 XD/9f9GNUA/L5eT198BCI0KwlHefynglJjTxQuM2DoMcz37qsLfzcWl3Q6q2HhCG1mHxA8wxyLb 5N0RARoU1OHhGh0MwjjBohT4lXr8k2yvXUk3Aj7lnAGcj8YcoldH3D8ibA0KhBN4Af2rJiamEVo zvN6DZR6hdHiNfdimJ5OMmzrOIzoe9uZ0kzPiSNb/+EAxXdmptH0Snbdd0ZKLrARMUgTpJQ== X-Received: by 2002:a05:6870:40c1:b0:404:3cff:5158 with SMTP id 586e51a60fabf-4177c641969mr755503fac.16.1773202103400; Tue, 10 Mar 2026 21:08:23 -0700 (PDT) X-Received: by 2002:a05:6870:40c1:b0:404:3cff:5158 with SMTP id 586e51a60fabf-4177c641969mr755486fac.16.1773202102804; Tue, 10 Mar 2026 21:08:22 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, philmd@linaro.org, ltaylorsimpson@gmail.com, matheus.bernardino@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng Subject: [PATCH v3 12/32] target/hexagon: Implement stack overflow exception Date: Tue, 10 Mar 2026 21:07:38 -0700 Message-Id: <20260311040758.1068731-13-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260311040758.1068731-1-brian.cain@oss.qualcomm.com> References: <20260311040758.1068731-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: 4bqROYhlaCF6OIGvTuIdPFw1QC0w4pKM X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzExMDAzMiBTYWx0ZWRfXw4DmqwKBy3xl MtSJVz+1qhR676W8B7EY9N5yNMnzD6He/K3qVepYB5Qel9ax1Tec/sBIf3o1zlJap83fH3YFm9Q 3ZpiWzPs+LU+oDQtzUcqpgpD+VqUkbrgofKMiF/mzBb0W0L1u0mJjgJe5WaeeTCVo4FJHMzBv7/ 0pHLEPNQMJLvo/FbppMnZZywAIpS555MMW71tf6oj7zOx5rWDy+ORKfaR6wQ1FelcqVQer4T2Fd FelSWeSYRdeFvhQ5MOJBwDREi+6nlM2hYmTLzJNN9BG7RJQL0Z8bF2KIyalvZXy9sP5gK/lxMbH iaFiTSAwEgKLrnVsy70s1zPRfI/VVnRs0yP+UmG2PiiaPeBhV7lhMNscJOpprimYshXT3E6Zyv2 g7dHsSzE+uhFmbqvODCBzg/McH/acVa03CpF0z8i8b1eeu+Oi4+U3R4aageJi9Y8mZtcTVO6rLN uw1HH7vnESxiidcX7IA== X-Authority-Analysis: v=2.4 cv=FMMWBuos c=1 sm=1 tr=0 ts=69b0eab8 cx=c_pps a=nSjmGuzVYOmhOUYzIAhsAg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=YMgV9FUhrdKAYTUUvYB2:22 a=EUspDBNiAAAA:8 a=pfDKOobNdc7td_IuCocA:9 a=QEXdDO2ut3YA:10 a=1zu1i0D7hVQfj8NKfPKu:22 X-Proofpoint-ORIG-GUID: 4bqROYhlaCF6OIGvTuIdPFw1QC0w4pKM X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-10_05,2026-03-09_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 lowpriorityscore=0 malwarescore=0 priorityscore=1501 bulkscore=0 adultscore=0 clxscore=1015 impostorscore=0 suspectscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603110032 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.819, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.903, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1773202372078158500 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. Signed-off-by: Brian Cain Reviewed-by: Taylor Simpson --- target/hexagon/helper.h | 1 + target/hexagon/macros.h | 3 --- target/hexagon/sys_macros.h | 4 ++++ target/hexagon/translate.h | 2 ++ target/hexagon/genptr.c | 18 +++++++++++------- target/hexagon/op_helper.c | 34 ++++++++++++++++++++++++++++++++++ 6 files changed, 52 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/macros.h b/target/hexagon/macros.h index 26d3f7d8a4b..d3f2105c932 100644 --- a/target/hexagon/macros.h +++ b/target/hexagon/macros.h @@ -538,9 +538,6 @@ static inline TCGv gen_read_ireg(TCGv result, TCGv val,= int shift) =20 #ifdef CONFIG_USER_ONLY #define fFRAMECHECK(ADDR, EA) do { } while (0) /* Not modelled in linux-us= er */ -#else -/* System mode not implemented yet */ -#define fFRAMECHECK(ADDR, EA) g_assert_not_reached(); #endif =20 #ifdef QEMU_GENERATE diff --git a/target/hexagon/sys_macros.h b/target/hexagon/sys_macros.h index 364fcde7383..cbc857fa2f5 100644 --- a/target/hexagon/sys_macros.h +++ b/target/hexagon/sys_macros.h @@ -95,6 +95,10 @@ #define fTRAP(TRAPTYPE, IMM) \ register_trap_exception(env, TRAPTYPE, IMM, PC) =20 +#ifdef QEMU_GENERATE +#define fFRAMECHECK(ADDR, EA) gen_framecheck(ctx, ADDR, EA) +#endif + #define fVIRTINSN_SPSWAP(IMM, REG) #define fVIRTINSN_GETIE(IMM, REG) { REG =3D 0xdeafbeef; } #define fVIRTINSN_SETIE(IMM, REG) diff --git a/target/hexagon/translate.h b/target/hexagon/translate.h index e7acbae9ffa..82b327312ec 100644 --- a/target/hexagon/translate.h +++ b/target/hexagon/translate.h @@ -339,4 +339,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 bac63a42def..f32890f85c7 100644 --- a/target/hexagon/genptr.c +++ b/target/hexagon/genptr.c @@ -897,26 +897,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/op_helper.c b/target/hexagon/op_helper.c index 6dfc1269809..c5c638c132e 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -1392,6 +1392,40 @@ 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]; + if (GET_SSR_FIELD(SSR_EX, ssr) || + !GET_SSR_FIELD(SSR_UM, ssr)) { + return; + } + + CPUState *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(); --=20 2.34.1 From nobody Wed Apr 8 01:18:41 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1773202149; cv=none; d=zohomail.com; s=zohoarc; b=PDV1cmTnNfdauKh1tcYwj7QX7YxZ0wABNQ7oTN6sTjXYh/qxrvlv8b9xLhL8xLD3RmeDOUnHvyT+0zi8CAvsq78VTRtIDHsph6o+e2ONXh/9K8p82k2cz8nTDwh/T3C5/Od+9ILjalPEDmOTCgf082YxJsRnwg92tlWZ4Gc75A0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773202149; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=rLV/zM3zAmLxLishqc9hXGVjxmC0Q8W1LuAK1tyP9EU=; b=OK2jl7c8aE91dUx6Ia2zFQTNWdx3Bhs1ZAHwWOX2oORPT+YILCAl5+MzpiqCxfkBfmiU6DfdQ1wIDAtSaeT8rTz5omMlYhL8Xk2xmNo4hhBcUK+fkxrBPD1VBzUg4jd3RxXGtpsbIg8D0I0mejHz8RgsQfa6sdix0Mm7eCdrkqg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1773202148993929.2592444121394; Tue, 10 Mar 2026 21:09:08 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w0AsF-0000rC-Se; Wed, 11 Mar 2026 00:08:43 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w0As0-0000nG-Qy for qemu-devel@nongnu.org; Wed, 11 Mar 2026 00:08:30 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w0Arz-0008V2-4k for qemu-devel@nongnu.org; Wed, 11 Mar 2026 00:08:28 -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 62AIn5G33759633 for ; Wed, 11 Mar 2026 04:08:25 GMT Received: from mail-oa1-f69.google.com (mail-oa1-f69.google.com [209.85.160.69]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ctk8uk4he-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 11 Mar 2026 04:08:25 +0000 (GMT) Received: by mail-oa1-f69.google.com with SMTP id 586e51a60fabf-40aee511210so53525979fac.2 for ; Tue, 10 Mar 2026 21:08:25 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-4177e5ea30asm998656fac.10.2026.03.10.21.08.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Mar 2026 21:08: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= rLV/zM3zAmLxLishqc9hXGVjxmC0Q8W1LuAK1tyP9EU=; b=guWgQxHAq5ttaw4e kSjn/Oa5G1ruSy5p9oKuNxie98/qbVzy2hrR/4JpBImCN5nSW8r9hXiy4DfK+f1q ybz5Ug1CCY/+D9NB/9651TU6n3aP3o6tYcXKo9pGDfpgwNIZ8jTuSZGfXwEic4tO 2/OAXdFkvFfmOKj7jsuckO1yEzkMlZ6owyW73Cy0k3gLHnykmXhEI8eDTbGiaw1S WSRjo77UiQv2is7eTCkptuznoFoKO6lx03XK9VOcQaKs353kg5imyHamXxsR9eH1 mm8U+4Ke/pSn76ea8/Gya5vACcIsfmjSyppmmH4tEDS7vk0ABHMEy6uGYjOvAJ4n 3TRi7Q== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773202105; x=1773806905; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=rLV/zM3zAmLxLishqc9hXGVjxmC0Q8W1LuAK1tyP9EU=; b=aR0/yX3JNwV+LGctXYnK/pNBo9r1e4OcGjPw8yheWmjPiJIkS5QWjDx+NvobuV4skz kXl0b7MFMh3J7bPABEXYrq4wDE/QBlWrQLYNfjlpX84FWXYmLVdHA7aICn+eoGYkXY/9 Dw791Co3Sh1gPFVs/gAnlGetIAXISYaH1/+c+AoloYJPHE2OZDZaOv7jEgbHf+mCJIsy +AQn0ZYWgpwyA9dAdhKTg5nO2h+LT/goizFRw4e/DaxsH8pQKouTT5UxIBDvrZOI+cGB io0uDrLyhaCgNWev38X5vZKZchpU8GNM8fyEZFiSq2rQ/GNGWNT9W2bUAJ6uI0aHNhWi oRkQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773202105; x=1773806905; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=rLV/zM3zAmLxLishqc9hXGVjxmC0Q8W1LuAK1tyP9EU=; b=N8M9+j9SM2eJnVY+xDHJrade6G9MZG/G57gg5mVGaKAxIT4XobGDLhrAts9cQrtSr4 reMpUFPB3n1oclCJ6DQK3NF1KMOHGO7YY7mb9k8QaT2ivWd6FHoSq40vm6BZfkDT9kGt m+MQabwNhxReyhpzfX8ZWmR16jhvZMxK/FAdwuiIDWVaOH7tkabJ9siIJBoPAWzxLDLf yOwhwMqqdY4q+7IwECyYOXqZLTxtWGzw9a2JC6mM6i6M3nqrKW1JxX48s4eCd/VPmmY2 4zwE9iPiRY75ngwYQOCsTMWDFfe3KqhVaXHjcacrm+6udXgpzu5rVScu6a7n/X/FZeW2 GFMg== X-Gm-Message-State: AOJu0YwTj6GctjgPZNNu3si/VYxISceSFCjYP5fOItpEoG6F1Sqi8LjZ 5Ctb4R7sJR869A48iZ/MvG2TsEYQfyPhqCVLUy8jKJGZmGPjn14LypOlCPlqsC00b5MSq5V1zd9 sSDG+eRuHEfFPWwNryDisyk2Scu6mpJkPGUrCfuvWELn5x33r0KgLin+pzAgEXgngHw== X-Gm-Gg: ATEYQzyBZ52WGGrn0UdZqMHXi9MVwHsY1sH6XdM6fCwTeSmcLlXhahzZxV4AdQiJo4b Y+kx3QtduS/GtNmtIMXlpAJRNq1YiNcwQk9VLFlzNEb7ApNQmb2RBOi16UrC1+bNKW89792BEDD cYG8ZNHA47J5erAQnjS/FLNE723gKLJU/bCjIOA9kSU1AZptqdVwGa0gUWcYnXingXEYBFPyziv 0oxdWeDdeZJsOekX5kNJeObMht10gqD+/EicUHsuCHUiBtowu/4nDJzgZy56jXCYL/hXvtuHi4G mAUVpkvuohYrBCFVlrlvYN8LT1iJnL+04HGL69XfRAXxITOJv/5my4oRLTYRX0uj2XJgBWEen0e 6CbzCquPqNntEUdf+EAsmj88e2EOIONPI7ZqdafLB5ErhqhgEsyLO2SVFDVE/SvXdW1jBMg== X-Received: by 2002:a05:6871:7418:b0:416:414:bbd7 with SMTP id 586e51a60fabf-4177c695356mr902364fac.21.1773202104847; Tue, 10 Mar 2026 21:08:24 -0700 (PDT) X-Received: by 2002:a05:6871:7418:b0:416:414:bbd7 with SMTP id 586e51a60fabf-4177c695356mr902342fac.21.1773202104434; Tue, 10 Mar 2026 21:08:24 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, philmd@linaro.org, ltaylorsimpson@gmail.com, matheus.bernardino@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, Brian Cain Subject: [PATCH v3 13/32] target/hexagon: Implement exec_interrupt, set_irq Date: Tue, 10 Mar 2026 21:07:39 -0700 Message-Id: <20260311040758.1068731-14-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260311040758.1068731-1-brian.cain@oss.qualcomm.com> References: <20260311040758.1068731-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: RKRlXfI1DjsZ5nMXUXM-94GOEcP3oXpE X-Proofpoint-GUID: RKRlXfI1DjsZ5nMXUXM-94GOEcP3oXpE X-Authority-Analysis: v=2.4 cv=YcmwJgRf c=1 sm=1 tr=0 ts=69b0eab9 cx=c_pps a=zPxD6eHSjdtQ/OcAcrOFGw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA: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=rIkxbyxcx7-xiWOMinkA:9 a=QEXdDO2ut3YA:10 a=y8BKWJGFn5sdPF1Y92-H:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzExMDAzMiBTYWx0ZWRfX0tn7sybT1pMx VV4bnyrP85B6ecELg2bbr8KBClP3k/B5ctb0Nyyi1ChCaD17RQsUzflvdqq/kx69tKBRX9bob5x 3E1WUCth5uIv1JBQW7eeqyG/RQwpbfVNMShpdWdgwoJrgPaWFzhZ40ozlJ2hskt+TfrF7r5i61F mysykalpt7q6oW07/q6eQmIHNRmbyh+8rXJEF0WqtxU0QJPKd1eP3LQAFU1p/IE8nIWFMGAYt2x +EXZPhlOOfe//7/VZR5Rs7Z7S+K/8QQqFfyb6vQkWbHPiEOWhRbPITCqmc+0qivY1fYQG2VWNl7 A0fIyZP2PpooiQXhSuVEYFYcXnIsd9C9klc7YQUP3PQAbOy/TRFMBrYYOUsiTaS6BDh2xtyT16J Tr9sn1VpmKLJkm/wZIMhkqiddBRw0zl6sJhA65JYLbJVLjCglDc9VNpeHTGnnS3wXsNEn2pF8dY eWG5LyuaM0vkYQB3kJw== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-10_05,2026-03-09_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 suspectscore=0 impostorscore=0 spamscore=0 bulkscore=0 lowpriorityscore=0 phishscore=0 adultscore=0 priorityscore=1501 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603110032 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.819, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.903, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1773202151751154100 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/cpu.h | 5 +++ target/hexagon/cpu.c | 80 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 85 insertions(+) diff --git a/target/hexagon/cpu.h b/target/hexagon/cpu.h index da96b52bd2a..3446910feb6 100644 --- a/target/hexagon/cpu.h +++ b/target/hexagon/cpu.h @@ -209,6 +209,11 @@ G_NORETURN void hexagon_raise_exception_err(CPUHexagon= State *env, 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); uint32_t hexagon_greg_read(CPUHexagonState *env, uint32_t reg); uint32_t hexagon_sreg_read(CPUHexagonState *env, uint32_t reg); void hexagon_gdb_sreg_write(CPUHexagonState *env, uint32_t reg, uint32_t v= al); diff --git a/target/hexagon/cpu.c b/target/hexagon/cpu.c index 2964d8a63f6..cc2b4c18001 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -16,6 +16,7 @@ */ =20 #include "qemu/osdep.h" +#include "qemu/log.h" #include "qemu/qemu-print.h" #include "cpu.h" #include "internal.h" @@ -31,10 +32,12 @@ #include "hex_mmu.h" =20 #ifndef CONFIG_USER_ONLY +#include "macros.h" #include "sys_macros.h" #include "accel/tcg/cpu-ldst.h" #include "qemu/main-loop.h" #include "hex_interrupts.h" +#include "exec/cpu-interrupt.h" #endif =20 static void hexagon_v66_cpu_init(Object *obj) { } @@ -324,6 +327,32 @@ 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); + if (!cpu->globalregs) { + return true; + } + uint32_t modectl =3D + hexagon_globalreg_read(cpu->globalregs, HEX_SREG_MODECTL, + env->threadId); + uint32_t thread_enabled_mask =3D GET_FIELD(MODECTL_E, modectl); + bool 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) @@ -419,10 +448,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, @@ -433,6 +510,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 Wed Apr 8 01:18:41 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1773202377; cv=none; d=zohomail.com; s=zohoarc; b=dfBPp+XS9k02P1fgML7wjKF4ryXQ5MyXdMy9EgosqToFCvh/dc4GrXAo1wWLp8kZgezRfZWvATykRw2a2SnMY4TaFv8m5jkHF6/0ej7btuj2sDh+gNjxW4AE+WcOUr5sHqY6tyHjnPiH8hDLDh1IVyZLI/SoMGA9Pwt6Dr66hDE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773202377; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=U8kWP70Sz6vf4v/5hys6mJ76YXhz1HzYjnyFntHP1PQ=; b=NmzLG9YS7niWcrOgBr3goI0Uo+TDNNYenTlIVDgDulL4Z+uWY7Vk1O+KLtJsdDXwt8lXy/eHdQdHaE2HrC8w86lSmR1KmLne65ulYv/oMRlZETqHBm4kUHP2t5/EGEy28L72aPP2jtmLShpRKUw71+DKLshBa6MWlRcD4pHVTRY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1773202377217130.7933613073793; Tue, 10 Mar 2026 21:12:57 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w0AsJ-0000sG-Hb; Wed, 11 Mar 2026 00:08:47 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w0As1-0000nJ-Mh for qemu-devel@nongnu.org; Wed, 11 Mar 2026 00:08:30 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w0As0-0008VM-8m for qemu-devel@nongnu.org; Wed, 11 Mar 2026 00:08:29 -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 62B06YES1265806 for ; Wed, 11 Mar 2026 04:08:27 GMT Received: from mail-oa1-f70.google.com (mail-oa1-f70.google.com [209.85.160.70]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ctpkfj7w8-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 11 Mar 2026 04:08:26 +0000 (GMT) Received: by mail-oa1-f70.google.com with SMTP id 586e51a60fabf-417393f319fso19127982fac.3 for ; Tue, 10 Mar 2026 21:08: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 586e51a60fabf-4177e5ea30asm998656fac.10.2026.03.10.21.08.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Mar 2026 21:08: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= U8kWP70Sz6vf4v/5hys6mJ76YXhz1HzYjnyFntHP1PQ=; b=W1zzJ+OhFoKVdbv7 BP8SEKaNhr2gDrAKd/+D4hagn/nQkWu6XRWshEoyy0eY0eULhmU/0DFzNkwxNGWW 1DKvWlikcJUYQUrru/RJLj6BfsNxRR5YYCbZljuXyLuuHbg4ZyBVbIgVcfT7GgP3 ojh7+vprZsWxZDZFaNgZX2/yFExOzt7vDjOlpbzgXUbbjq+RJysUVkdvXMRuhXiy XXMcWcuwmqAneGtFLFzoH7C/J4jVx4JQ5gchVvxaVmyGIFgc8sA9qsPnjRXnRidK JO8k/6P9Ss5aXREgDQNB2C0gBXlSjDt+Q+DQhbNlBYYitby4Ep9/d2T2TbyZKhmp Oh4sDA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773202106; x=1773806906; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=U8kWP70Sz6vf4v/5hys6mJ76YXhz1HzYjnyFntHP1PQ=; b=D68qAquCmLCbcfjLHlu3d0d6bd3yUdkajHcsFqmacuktZT2O0QGFwnw+6IEicHBDAd 3pxPdlRyxKUzD6X7VhVLnFtTabFUU8CuXBMw+LXwqLahdXypvrOkMeCoRt11OWTqZtC7 g4SzuVPwIlrO4hfOG9/kpYTSP83WlrFGM7W2rRqv6+bVHNCkq9nPVJEN2aJuWK/U/LlO p6JexyY+4/ysnmAPun2cljc+QvuLYk4kIok0ubePQgR4K0Qdjc+0YqVU35HyuvoteO8R S4ql/QaXOFzrdkqRQ4vm8Vpu6lHuvoj3mB/z828DMUON+FwRNMF9ksuu5J47kAj9yM8f ZRFA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773202106; x=1773806906; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=U8kWP70Sz6vf4v/5hys6mJ76YXhz1HzYjnyFntHP1PQ=; b=prT7er2shtZJO5UekdEq41AFUM4bffAtQfDX+JezHA8V+ckH9JdLuc6Yqkvp3xCkmt Migk3wLuwuymrO9XrcsznGAOvcvnSVOIeZE7spFNqw335E7vuHGUDn6LcG8QXIRY99BG y8hfxH6U9G+Rs6QWjvbw2UUnuOjkJ8YtgW1npD7R82tL5FFaIkdax51JM8R9zt0deonK OeYTjSbYlUXFMw73Wqz0RNnxLoluvXvMHNdmTpVQYTEy/hdEZP4Ag74ComGVWH2dhR4z z/tRrdtBEEa4Vx4HfAkIaCLyurFap6+279vBt34SyDBX3PmZ/7oHZkBr8AtNbJ13okVc DYhA== X-Gm-Message-State: AOJu0YzSh5zJpMHaEWRIBHe/sFP9t+n+PjxOGCCsYEiSZRqvy9l1KSln RgzA53jAGu9Zf8/GfDdOWDYaSDJXPUwfrPYYRKRTN12mJT+kg/Jb6vHls4ZrEhZOOLdRX5S00l/ Utm26OsPQzab7YR+fyxRIlhbaTXTEJ2LKBRbv6fVQAkhEFa+hsU8UfeLqvx89KAqX2w== X-Gm-Gg: ATEYQzzsYp7ozcoeOdH9DMQuZRHgdVP5C0g87zB/rZtFMV0rgMy8ugx6XZnWJwz5+Tz qJ2b4LdH3M2Wj8fDGbmxoJFUy2J6vN+T8lflD6EHDn4avAp12Ljj31s1eCwXi3DfHWqTUFY+sfe z5hGxmMcaowQt4uP0j5gssO3F1VRrFKcAoESOmSLvZPNMmwXzSwjOagFXmt5J5IUtSwI9RVesh5 QbE1sHK+DLpfHtXWGW4wda6CKuXEIZMGNMPStmROd9rSEgKYf4attuMNfFhH9N4dPVUK1xTGtZQ D8Wdeaid7CQ6w51TQm0oOrLF2mEcetfGzYfrWmGMdxSJjLxeB6XnDE1SOp69v9GANTiby1a0tTI mnhj4M2pqtilcf/eZXGxbdnpRmKaiK9F0UdkmdjC/TfdvPYyKOWamn8k/HlaAumLKQBgiDg== X-Received: by 2002:a05:6870:8a2b:b0:417:5ca8:8155 with SMTP id 586e51a60fabf-4177c951e17mr823365fac.24.1773202106086; Tue, 10 Mar 2026 21:08:26 -0700 (PDT) X-Received: by 2002:a05:6870:8a2b:b0:417:5ca8:8155 with SMTP id 586e51a60fabf-4177c951e17mr823355fac.24.1773202105707; Tue, 10 Mar 2026 21:08:25 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, philmd@linaro.org, ltaylorsimpson@gmail.com, matheus.bernardino@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng Subject: [PATCH v3 14/32] target/hexagon: add simple cpu_exec_reset and pointer_wrap Date: Tue, 10 Mar 2026 21:07:40 -0700 Message-Id: <20260311040758.1068731-15-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260311040758.1068731-1-brian.cain@oss.qualcomm.com> References: <20260311040758.1068731-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: BdTTR_-YOkhazrPabXHQytiDsvXWzeCl X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzExMDAzMiBTYWx0ZWRfX31PgWjH2h/1H 8syUjVHUcTpidRRJ1SO6QeO/FfUkn6i4gnbcdMgnZT0uT8LUvQKieNlGnPRVXVNPQZ6auWfYoB3 A7oCJRs51CBtp+2VXjHecsXJbh/JFJYGEPDPkIF4DAuQ+L+6tnJSCfGAtG08XZRk8shh6dcCNUA 8DcEksnqbIhVoM8s1LDMkkw/ulpLN4kCW7FGr495+l7sawhTi4SygWBIEmgsL+YGqUmqAlhre6A R+Z4kQQsAKn3/3UYdA8O1vZgHmOcOcoW3lywxNAYLKjQg5AEhOc8adB8r7Syiit5nSnr6MrFBLt ZteVqB7iS5ycA3oaAT7a9UtT02fw5ZXtjtjJoYjUmKcLuHnUFSA2M5LU6xonOz2CT7KenzLeElh zcq5guiDQl6EcME6WX4rfwxrBEYHuGC+mtkOvSwQcpMYg4sShrCVpFp1OT7tmn+dmdZYiiQKAtr y+OElMiYMmiVFUiMrIw== X-Proofpoint-ORIG-GUID: BdTTR_-YOkhazrPabXHQytiDsvXWzeCl X-Authority-Analysis: v=2.4 cv=Gq5PO01C c=1 sm=1 tr=0 ts=69b0eaba cx=c_pps a=nSjmGuzVYOmhOUYzIAhsAg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=DJpcGTmdVt4CTyJn9g5Z:22 a=EUspDBNiAAAA:8 a=O9wV_FzQyngHLK0UYg8A:9 a=QEXdDO2ut3YA:10 a=1zu1i0D7hVQfj8NKfPKu:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-10_05,2026-03-09_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 malwarescore=0 bulkscore=0 lowpriorityscore=0 spamscore=0 adultscore=0 clxscore=1015 priorityscore=1501 impostorscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603110032 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.819, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.903, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1773202379029154100 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 cc2b4c18001..f439dff1c20 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -498,6 +498,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 { @@ -512,6 +518,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 Wed Apr 8 01:18:41 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1773202146; cv=none; d=zohomail.com; s=zohoarc; b=mWnDmNYLuPzzVEiDKxcaAJ5vrP02cxv3Vv+nTjaeGvPvn+lGe+GHhafIMVU1tNcrwpj8ztje4oEwLNW8Q4ZSKPsNrqIbhIFC3IMK88wXNTiYHoyMEeOcNCvXLw8ZjTZVAq9PwAS+xRb9umc/kHvSoFRjxH1sSCEurGWbXaDesw0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773202146; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=DR8uYl6sVAIuH1FZqfeFCtMEgETahoyDYvHwaSMbrdI=; b=Zek3iO0zCqCdhKY9PZv8FxC+7NH4psYb2OTL21qvDAvXNv2ukgotn8fDp4yBzQfq7ZdBj/FwAE3sBYi9ZLdM0v4ojmUoxCXVgMW3G2BflIRQzdbEOxdB5a23NyQZcTz8uOR8F2oXA2SzXJroI8Xi+5sx3W4fP1SOeYw6F2l9cuU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1773202146604883.36072079283; Tue, 10 Mar 2026 21:09:06 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w0AsH-0000rv-S8; Wed, 11 Mar 2026 00:08:46 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w0As2-0000nK-JK for qemu-devel@nongnu.org; Wed, 11 Mar 2026 00:08:30 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w0As1-0008Vf-09 for qemu-devel@nongnu.org; Wed, 11 Mar 2026 00:08: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 62B2gs1v1572954 for ; Wed, 11 Mar 2026 04:08:28 GMT Received: from mail-oa1-f72.google.com (mail-oa1-f72.google.com [209.85.160.72]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ctqgk9v3b-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 11 Mar 2026 04:08:27 +0000 (GMT) Received: by mail-oa1-f72.google.com with SMTP id 586e51a60fabf-417015062ecso30956645fac.1 for ; Tue, 10 Mar 2026 21:08:27 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-4177e5ea30asm998656fac.10.2026.03.10.21.08.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Mar 2026 21:08:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= DR8uYl6sVAIuH1FZqfeFCtMEgETahoyDYvHwaSMbrdI=; b=HvZvHrgM0nM+eo0G Y/y+FS0YJVmo3i2pSbvQ4w7YtKl+WJpDH0MguC0M1ojPCRAE4Xc6Pz0XX+tkFrPf WmQghmWBMT/CA4uMDx3Ap71CcnKAzWxVvRxhJ1dPSnqmgV8xWaUp9Kdw9c2q1XOk jlYJlHzoqFr9r4WVzdn42RF6eNsr/odZKLbdMw+RZJnQLufHhkgELnHynwpqyxwF R/AT2u9VU0hyk7RRED8Z4vzuelGBjN8ZWnAEInxULhXx8PGDDveLdqZ7Et26ZT2B 4rQant7GrzNuj3HZBjNGtxizfR7Ms9r/4Us4kIJWTyti5ahhSvB0O9nGc+5fZMW2 3Eqztg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773202107; x=1773806907; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=DR8uYl6sVAIuH1FZqfeFCtMEgETahoyDYvHwaSMbrdI=; b=KOPmw233PJwzcQP4J3HiBIOGi4MY6fpwSm51G0KYnYKkTvhKY2DoH++yULZcWGcIam 9S3MULaMltn5ZihtFwwR0+qZ8swXJ5rOy9BaCXQT8We4IXcMGVBPGCMlh5JacuU+WgeL uLdFDb5n3WgmjBOG6OXp3FlhOK7MvCSBb8lGjXG6ra8RcL/l0s6+mcoZIV68v4HCeX5x 7tT1mDSrecHM8GF3CAss06NR1/ky72LKi4Sy4MQ0zHSd808BKWLi6ZxPAatZnQ8n3gVi finB+f2MQb+uro7DIdx3lSqMUjpyW9RzFKqF28bbr24QACAMUsObcft4Ew3jEYIDF7yR ehGQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773202107; x=1773806907; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=DR8uYl6sVAIuH1FZqfeFCtMEgETahoyDYvHwaSMbrdI=; b=eywonpiPHnroQJpoKWYwzZ2n6VdTNzYxjZiN0pH9uex9QxK3AY73fSiEl0yghtgVow r/5bey6G4QP7K5SvofW88jBJC7B3BA4X2T+zsOKNqI0rPWattQiwhQz2ZOum1D9QXv7q IbpDW2H6phFUVcQ+6ptf6DKX/6DYa8sRk0lQDhbw19Q1Kyre7YoNMSlv9PAadJB8VGa3 fdKZ0GZ3t/FINAuEqidEscGBjaLjEkseag56/mXBsbrYkCisTOsiv8v89aivhxsg+6IR GLgkEDdd9WrSKXPAFFMk0CLdi88oyVDBZ3neTsnLPiEjdyUHt8+H/XEBWqZYvOtM/yc3 /CPQ== X-Gm-Message-State: AOJu0YwpukOnWntBVeDBI4dr7FkFBUOeH0qH22V20cRv75IJ4BNQqBT1 CYH8+2sC/9F88Fx6L/WSOYbQmroOTUvt4QTFaRrdjr7H6eGztcaWDwcg9BwUlANUGabw5BSvshb MDoDJym0LK7dlkoEV33lZyB3cht75ZqqIusCq41R71sYR8FUE093kMP9/JMgK2XnD8Q== X-Gm-Gg: ATEYQzwSZeoB0vnrNbWFWmeinqvFyfdwgCnbsGASK7CtpS0Mlh9AVJklWgRc4Uu68Qu dXtT4+LCZcpdZyLS4vL+HAgd+rMvo5BqZRnBMwZgDbaujJHmEnIo42vbcXLpKELJstM8ugxS7nt oaXJxiB+3j1Uhr0ZU1hvtzpTapxLC6kgZ2vKh3uFMKXEHqabbVMQ3I8K8cSe53/qQkfNoHzwmLW fVt8MZpV5Srsz9KYLwd+vdKB9Tx9euZPGJha2WrJu9+x0JnLrhDO9xBNbzef3+NbgY4IG5V9lkx DonQvy5pK+FSWQuxPcDkK3zRflNjMZybMzHsvyMGq0lny/zq/oEvMrb/HxCUs31OrjvqcuUmRoR xZSgiDRHkaTGlHEctdsth6r3S0J2q9YySHqJBg2cS90oiyP/gjk5Y1TjCJUBvt2At4/ATGg== X-Received: by 2002:a05:6870:3310:b0:3d2:6a9e:29ff with SMTP id 586e51a60fabf-4177c7b8ea8mr840721fac.16.1773202107294; Tue, 10 Mar 2026 21:08:27 -0700 (PDT) X-Received: by 2002:a05:6870:3310:b0:3d2:6a9e:29ff with SMTP id 586e51a60fabf-4177c7b8ea8mr840704fac.16.1773202106895; Tue, 10 Mar 2026 21:08:26 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, philmd@linaro.org, ltaylorsimpson@gmail.com, matheus.bernardino@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, Brian Cain Subject: [PATCH v3 15/32] target/hexagon: Implement hexagon_tlb_fill() Date: Tue, 10 Mar 2026 21:07:41 -0700 Message-Id: <20260311040758.1068731-16-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260311040758.1068731-1-brian.cain@oss.qualcomm.com> References: <20260311040758.1068731-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: qu2EshGD2oHFqa-5F3Kjb438LYkl_6Nx X-Proofpoint-ORIG-GUID: qu2EshGD2oHFqa-5F3Kjb438LYkl_6Nx X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzExMDAzMiBTYWx0ZWRfX1CqIEpkhDNtc iLmSEsEBRDPjArw2acWfxNatlG0cigSIReKkFRoZXhMHpwluH9Lwc83sc46HR0lAbjAJ7AtEpdm CFszsEUodcqgN0zkeelHP+v5+QGk/Fk7aTgHSGJBpQvq3XG9HaGInWlxXD1sVkqy4uKEjy2WHUL WNGwBJbEN632BkgHFwCWE7K5okXvXWsj39Y8BYVn3hE6N4epvm80bewnxr92kZBaHjt2u1YJvlG ja2LiGdTiGqgFbA3JdRMySdgvn1BAT6/b8WtmUHbpy3WiAnt7VaoFNtO9WDwvBNNy/8ukrVFraz g6LBMeICxX7P7/XgWd0u/ecR57ghSrtZ3ShDMHx3rf2Pn96H1/N/iNOPL2illPdtLD+dOERM6V6 CWoZPDMocrprrQcvs/AovfoY5H55LzHiYd4doA1oW2wKRc3Os9aohzP6oyhOaiOlDnp+2xas/1v 81z43JUe+xmvmZsyMjQ== X-Authority-Analysis: v=2.4 cv=M4JA6iws c=1 sm=1 tr=0 ts=69b0eabc cx=c_pps a=Z3eh007fzM5o9awBa1HkYQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA: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=eBU8X_Hb5SQ8N-bgNfv4:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-10_05,2026-03-09_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 priorityscore=1501 adultscore=0 lowpriorityscore=0 phishscore=0 impostorscore=0 spamscore=0 suspectscore=0 bulkscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603110032 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.819, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.903, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1773202147422158500 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 f439dff1c20..c5ec478ef40 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -38,6 +38,8 @@ #include "qemu/main-loop.h" #include "hex_interrupts.h" #include "exec/cpu-interrupt.h" +#include "exec/target_page.h" +#include "hw/hexagon/hexagon_globalreg.h" #endif =20 static void hexagon_v66_cpu_init(Object *obj) { } @@ -478,6 +480,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%x, pc =3D 0x%08" PRIx32 ", vaddr =3D 0x%08" VADDR_= PRIx + ", size =3D %d, %s,\tprobe =3D %d, %s\n", + __func__, env->threadId, env->gpr[HEX_REG_PC], address, size, + access_type_names[access_type], probe, mmu_idx_names[mmu_idx]); + ret =3D get_physical_address(env, &phys, &prot, &page_size, &excp, add= ress, + access_type, mmu_idx); + if (ret) { + if (!excp) { + find_qemu_subpage(&address, &phys, page_size); + tlb_set_page(cs, address, phys, prot, mmu_idx, TARGET_PAGE_SIZ= E); + return ret; + } + if (probe) { + return false; + } + raise_perm_exception(cs, address, slot, access_type, excp); + do_raise_exception(env, cs->exception_index, env->gpr[HEX_REG_PC], + retaddr); + } + if (probe) { + return false; + } + raise_tlbmiss_exception(cs, address, slot, access_type); + do_raise_exception(env, cs->exception_index, env->gpr[HEX_REG_PC], ret= addr); +} =20 static bool hexagon_cpu_exec_interrupt(CPUState *cs, int interrupt_request) { @@ -520,6 +654,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 Wed Apr 8 01:18:41 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1773202402; cv=none; d=zohomail.com; s=zohoarc; b=bXLrSroIRVtkt3mxAaTXPBWLZwheueBTS2k6TUqumItB9K1DxUSC/VQTyA35Rpo+z21U0XdAKzHm+gefVUG5wqsSoR3EytQKt0GhEw/CNxT8vgNzWmG6fbNbJ7yTIkcVXgFjFKIT3lM9h+yhfwHEa8Ov2bHKzjpkQ0Ha2bGDmFM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773202402; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=A9eW1q/hnWZzTd+3ooLBoE/Tkar5dXU4AKL2u4UVaRw=; b=juJkd4LyY5d4u2jenW1mhoIhIyD++cc4otnnbCy/lYyUqbuU4z89Tebve64VkcoS0aKMrCpH+VC9gFjANVygYtMQWvOrf3TSWCppFaEZgiAaJSySPOfXLUZx+IXzZ6weLzPXhZfpoxXkYsCCWAuUdEHvq+kYGt+n1Qe90lRBhZA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1773202402971763.1424264513885; Tue, 10 Mar 2026 21:13:22 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w0AsM-0000u6-Dm; Wed, 11 Mar 2026 00:08:50 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w0As6-0000nf-3i for qemu-devel@nongnu.org; Wed, 11 Mar 2026 00:08:34 -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 1w0As2-0008Vv-Lx for qemu-devel@nongnu.org; Wed, 11 Mar 2026 00:08:31 -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 62B3VLtr614152 for ; Wed, 11 Mar 2026 04:08:29 GMT Received: from mail-oa1-f72.google.com (mail-oa1-f72.google.com [209.85.160.72]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4cu0jf03ah-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 11 Mar 2026 04:08:29 +0000 (GMT) Received: by mail-oa1-f72.google.com with SMTP id 586e51a60fabf-41702ea8343so19797535fac.0 for ; Tue, 10 Mar 2026 21:08: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 586e51a60fabf-4177e5ea30asm998656fac.10.2026.03.10.21.08.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Mar 2026 21:08: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= A9eW1q/hnWZzTd+3ooLBoE/Tkar5dXU4AKL2u4UVaRw=; b=Fo8As1IDqj0OoCvX wnfFVgcKK/YJAzwqQcnVugJW6P++mikWj2u8gcEMeN+nUqbHQRA57cdLKosrzgJY M9Z6X4oElmHFLMZRG7yvXb+ohLfV658sxEzbTxJyszCnMYuoHTpqAgMOzWlAWSaL NpSZ4x4DkCuZYdjLw5R5wU+0PLv3AnIaDsyq93j7M7u1Zp00oSIPjhj/JWl8f1J4 +XRhryEAVd6UqC9EDUsQ9peSGbwFhZa1zKGf+3EP6YSYo6vDXzrSuQN1rq4lPQPK 4SZRRQW3ohdaWLlYOspNv3oUgmoPfRGZshdhWzun6ZLa7W1aoqeKgiX29UW2bLN5 ozI0ZQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773202108; x=1773806908; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=A9eW1q/hnWZzTd+3ooLBoE/Tkar5dXU4AKL2u4UVaRw=; b=NnQxPtrnOMV5HCT/8Sv/zUnPBvq9voDvDSKjNxNH8dHhkT8v5vZHtFNwF60TSxepkk FPdPHUrhrOdMRmBMGCK7x4V8gQ2L+mZDazQNVtgpnQU4fk5RXuV+V8NJM+Ry0ZdEmWc5 3uRk9+nRR/565hjb2iycFXwx0Er3UwnDI5npsypVXaqw0c+tTEmfp/39JqNrWV0Uyx5J t+U1zeJQ0SiuTWgf/xuSTGkI5R9JEnIjnBmxEbyY21jfCelGdmMTPibwqCxr11fT3Hor PVnhWcLhf9DFd10eTLwHFJctSIyfSKnVbgpV95dOwTIg+bsGWNB60bZ6Pbd5lXx3tker CvlQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773202108; x=1773806908; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=A9eW1q/hnWZzTd+3ooLBoE/Tkar5dXU4AKL2u4UVaRw=; b=Ub0oLiBdxi4ZViq7XFwclhkB/qdEnsryTaJkVHetRlZ2qlCBsAWJeGnV8vXiUm70Wu HICjL1EWUjhTKK/KM6c48+SIsxp6agRfTVA8QoihR1kdBT4kUb62MPLB2XVxhyWWv1+a fkwyU/0QG2gFFms+vXB8mjKBFcEbho3gkx0P/P361jFJW00X4iRe5BFdckdhqs0JvSvw lXn9QsXbh9Ev/obZ51tkWBSntaL2WkYA7h0/IXU0Z9iVVCWTPFuSTYkFj2q5jXrgIqld X8id1msQOuNnVy6EBUvgaWLayU5NmoSYXEaIbfinzRckES76kv8XjrOonNk+Iu8h8z9h 3ghA== X-Gm-Message-State: AOJu0YzU385R5yvrrtMbiWG3IZc/fNvdnad+5chV1HxfZwYuvaDCfCr9 XIGF3Mpr3YKml+tzBaMQCkmw2XQCZ8iEAiuUmL9YtAdp5YXe+tNMCUX0yHwn2OW7xDnJ/5fDrp1 pe2bIECB4XEy+8SpqNbgWZqmCFEdDfyYQpnA4GhSETbHkM3Ahrnnu8NNDS0SYwZ6Zpw== X-Gm-Gg: ATEYQzwEL2XwbdYKfSxEsaBrVsAzkvjtz/VcOAU1U7nDbQDL/LjdrwpwjVKOViYLHca 60CvQJKof3AAEbv/mzMqGaxOdLod4dTJ65ERL+mgEgTUXQk71a3TrcyFGrPxfd36l/Iq9W6bcUs UdBoGNKvf2vSbgBTpRzxhDBMk/1NHxZgUSA0cIdRwALVfU0aRv5hLuEFFEO+L21xEdifReUpGYB C+0pe8y8RtWrhiUWkK7ToG/vW5S7VLDH2yhM8/4sX/Ak3N7TPlH17+aUuZmrFV5zU+dTksTkgar 5Kq6O+jNEBMDVDeexiiyfFcE8vQG8y1mQQlhWRzwAvpJ9iPHJVlcM0cc4K8P0EiBGbHnGfdqXvR oi9q4xkBVOUmehjb5oqBhnKqr9A5unJCcQ6NWr/xdWAGBURs4/1Olu2Oydl6knpDhDF9XBQ== X-Received: by 2002:a05:6870:506d:b0:417:5b15:41b0 with SMTP id 586e51a60fabf-4177c5d02b4mr825800fac.5.1773202108530; Tue, 10 Mar 2026 21:08:28 -0700 (PDT) X-Received: by 2002:a05:6870:506d:b0:417:5b15:41b0 with SMTP id 586e51a60fabf-4177c5d02b4mr825778fac.5.1773202108086; Tue, 10 Mar 2026 21:08:28 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, philmd@linaro.org, ltaylorsimpson@gmail.com, matheus.bernardino@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, Brian Cain Subject: [PATCH v3 16/32] target/hexagon: Implement siad inst Date: Tue, 10 Mar 2026 21:07:42 -0700 Message-Id: <20260311040758.1068731-17-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260311040758.1068731-1-brian.cain@oss.qualcomm.com> References: <20260311040758.1068731-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: TY0-l5cyYhgngAd_gbMPhTtpCuBhe1rF X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzExMDAzMiBTYWx0ZWRfXznDAO+Reueae K4ne/6L9kOWM9JPz9nkw76Cajuv3OTt3iHbyRHZ2J72rN5dvWoTz9wiUrRsSJB08edgxeng/wi1 DBxSCses5LXUpWen+8RNjLB9nVOJOBovx/Zd9eKep+SLceS5568sRYeKRsi+CHuaOZ0iTyN92Zc rQol1drO3SOEbeuLPRCCaHvJ43OsSePLI+Ob+QPZQW5qZEz5q8tESyxpjP/sNVqt/3V1LdmsICn BafBdAELZTk0FzZ57RYmDJq/MWCwA2nIrcQCj16jsKF1FS1wzKwQrnAh1R1lN5K1QIYnKfYefPA V1kHkhWhpWFvROAB8bujoFL4SXypm0hzK4oID3ujujXb+epf0xlxoAUis3sxmtsc/94c6BrG2Pd PNUCvivN3eto0RBvX4i5LIFp2Duw8fwYnCRtJOP8fELnTJznzj/pfET8qjmCEV9wzIk360Wg9Ke QzJgOAnkkCsandBaE/g== X-Authority-Analysis: v=2.4 cv=FMMWBuos c=1 sm=1 tr=0 ts=69b0eabd cx=c_pps a=Z3eh007fzM5o9awBa1HkYQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA: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=HdTxHAvixyPUp6pof0EA:9 a=QEXdDO2ut3YA:10 a=eBU8X_Hb5SQ8N-bgNfv4:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: TY0-l5cyYhgngAd_gbMPhTtpCuBhe1rF X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-10_05,2026-03-09_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 lowpriorityscore=0 malwarescore=0 priorityscore=1501 bulkscore=0 adultscore=0 clxscore=1015 impostorscore=0 suspectscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603110032 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.819, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.903, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1773202404100158500 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 | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/target/hexagon/op_helper.c b/target/hexagon/op_helper.c index c5c638c132e..dff6092dd8a 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -1433,7 +1433,21 @@ 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; + + BQL_LOCK_GUARD(); + HexagonCPU *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 Wed Apr 8 01:18:41 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1773202431; cv=none; d=zohomail.com; s=zohoarc; b=EvEK7d7i1+KjoCHlL35QK7tcMUMav0D86lxlLvta06z3+x5bk4kolgrpfUocBP6PqFRVEzr3sQgFXXOzBnlkUrgtFJXyFMtzrRoHOmGQ713MiPY1P45Kl9gLcGCIJsuUBA6Ldr94Ztx+Brp/NC1l9I2oWqV86E7d30pQc+psXOQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773202431; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=nVDQBNnnspnNukvGykCY/YA++OQ5z5cGx4OKxmhqeiU=; b=RE10uh/U9+ODd1uJFQ6yTHuVtq4PRsKBPY/NqC68mSBScJXiVAYedi9yFWmTlsTd5s7NNf2AFqfBshRNM83Zpt+fgXU5tnqrv4QU9O37Wwr80VsjGek5OQRsMTH+qnCz1YSYGm/ZAqIMvzm+HIeXmbtpdC4gLGRgoCNaAcOEObY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 177320243153422.971489996370224; Tue, 10 Mar 2026 21:13:51 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w0AsK-0000sN-77; Wed, 11 Mar 2026 00:08:48 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w0As7-0000oD-Tm for qemu-devel@nongnu.org; Wed, 11 Mar 2026 00:08:38 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w0As5-0008W8-S3 for qemu-devel@nongnu.org; Wed, 11 Mar 2026 00:08:35 -0400 Received: from pps.filterd (m0279872.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 62B1gtCH508501 for ; Wed, 11 Mar 2026 04:08:31 GMT Received: from mail-oa1-f72.google.com (mail-oa1-f72.google.com [209.85.160.72]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ctppaj4ya-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 11 Mar 2026 04:08:30 +0000 (GMT) Received: by mail-oa1-f72.google.com with SMTP id 586e51a60fabf-40ee506cf49so58615509fac.2 for ; Tue, 10 Mar 2026 21:08: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 586e51a60fabf-4177e5ea30asm998656fac.10.2026.03.10.21.08.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Mar 2026 21:08: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= nVDQBNnnspnNukvGykCY/YA++OQ5z5cGx4OKxmhqeiU=; b=nO3JLWLYoVTX5AjV 5NQaAiyMxILwgZOWStHXvsw8GiHDgg/VL3XxIujTezMgygSwUaJg788c3igdnGPc k+iKRuSrXTKKDDukiyrjgfTlWyXcCNlyho7FvZ6y3sa2iMTEeqRM/87BwafSXlNf ubXipRNccclmvSXPUUME8jElkwp732RhbuG5orSCR8UDuKLZpIT2K8deBZbZ38kB 6y++SsUhFULHWwTN9MxT9Qf1iGPgQgsjmHz9uCzEogXhOoAlA7d3o0JX4pqPKXdI psDkJH80hLR1hU713CpBMeM09rxXa2u83CRwVZQVut6P/pfCyeEF3GHnUQwOJb7s eo06RQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773202110; x=1773806910; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=nVDQBNnnspnNukvGykCY/YA++OQ5z5cGx4OKxmhqeiU=; b=RQ5jtRSlB7aE54ozgB3OUOMXoR3m45Xgfan8J6Dkt/itWlXjMLVrDDPw/sFxSW7/gN QLVmB5gxu8yTw60cb64D8X0g3U1/4QhDfWnCkOnB+2DOb6nDeu7NxX/VJjDAufbDf0fi 2XviX2kGVXQQOLnbsbqw04vaRKnLCKB+NeVOlqfWkeEZ/w9whzxJ6oQ0FLgTWxhJb60v QG013L2o/AmCuo4P+z1oMOq9dIb4cYXG8/oJAutdW0/hcYR7DBNS/2pBkKxjSq3z5xIm dv76oyM88jH8CI57oMkkRnpX7wgF4ipF+SomyEiEFnUZGu6RidGDmW0Y4RjpV7mguVQd RqTQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773202110; x=1773806910; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=nVDQBNnnspnNukvGykCY/YA++OQ5z5cGx4OKxmhqeiU=; b=YmpX3esDnOA7XxBvYevcaUZj1QM3z3TfzmPm0T25jqHAxQdlcXkA03lHcMMxxP6NtV vTYxtWUvPgzBHtdBp540sli+lh06qk4kgrDNJQBSMLycKQhTq3FBuil6UFctIenleP+5 scuttkZrlUtxbvOuLSOOuPpxggTuy/djxDljmlj9/PfHvPT2GDub+f8s6YlWvM+nlC3o /RvNr8QVQEFVZTjMvyHL324hxgOGkpLLYgSPL265O61E4GSwiII66m1IhBpkT7aZENFQ quBPnUzKXoIICRuGxT4+KinJnjJVJxuo2xbYv0bJmWNFV1j/kNgmYpy0MIYA9UD3O4rV aBDw== X-Gm-Message-State: AOJu0Yy4e6vBGXs+QX7VHldP1isSEceHXLV6/U31KiuxJPgMDF5Dl514 GT28W01FiZyhqekUC/SpWzsasYB15KOTBkL46EE406qeO7WtYdNbtIDdBHam/uimfS46o8tvCSF HJMpsVwfsqQLdoAaqtIWoBBFlstp+MgGJpDwx5R2Y/qI7EfIkMWOJnCZi8AkHi/vZ/Q== X-Gm-Gg: ATEYQzwieFz5UY42E+kV8l9W9nGy3BsK38op8kYinzOGmDhl3Wy+wxTTHvleu8zn0V1 g/hOFgXL7h5+Sl7yhmAwNJG1e4d5Vn2xYsDvoa+J6UL3rPi3hKTbeY1rBg9J2F6WcnGU8La0DFw x4mW5zBSkOLUC+b6R0xJGZKKH/SD+YOH6sJf50v9qVutT5vwEvmZFKD2Vx/b/1WW3SM+jfG4SMe Z1tf/BC5rz/9exlRdBuJTNgXqwGk1+X9CtwlU20gedgX3vc4hq/htiGbFUTh0lHgfkvw2XmeX5Z OKtuniFH6pf8KKc6RKrDAsDtmzUD1MsRPtbUL+6xoSBEZWLgEuxP1MPcPoSG/1X1Ex1RTEBCF9t s/HaF1ub3aubAzMx5u+N8m5FOuzjhFCPIThv14pL/esAxWH+ObdGnPB7uYgoE1nWhORzmbA== X-Received: by 2002:a05:6870:be8b:b0:2e9:93c6:6e4a with SMTP id 586e51a60fabf-4177cabc152mr876465fac.38.1773202110182; Tue, 10 Mar 2026 21:08:30 -0700 (PDT) X-Received: by 2002:a05:6870:be8b:b0:2e9:93c6:6e4a with SMTP id 586e51a60fabf-4177cabc152mr876445fac.38.1773202109742; Tue, 10 Mar 2026 21:08:29 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, philmd@linaro.org, ltaylorsimpson@gmail.com, matheus.bernardino@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, Brian Cain Subject: [PATCH v3 17/32] target/hexagon: Implement hexagon_resume_threads() Date: Tue, 10 Mar 2026 21:07:43 -0700 Message-Id: <20260311040758.1068731-18-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260311040758.1068731-1-brian.cain@oss.qualcomm.com> References: <20260311040758.1068731-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: r4VdKHqSxjflv8p4IjhA2OTxEny1tS0A X-Authority-Analysis: v=2.4 cv=D7BK6/Rj c=1 sm=1 tr=0 ts=69b0eabe cx=c_pps a=Z3eh007fzM5o9awBa1HkYQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA: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=lFhGULv_JCWPxgfyECsA:9 a=QEXdDO2ut3YA:10 a=eBU8X_Hb5SQ8N-bgNfv4:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzExMDAzMiBTYWx0ZWRfX/FxOSxxYxGaC DLY3NjYZE0NMZUEdltfvD9sAZCUdKOZdXjjZG9tiWBNDFqcjneestCV7qlolS3UDFx78Jt2E71V gmTp7imaoUqNfPj3vDYFzXEKPOP3G+M0I6yH0+KcVAH4z8T+3msxLPSLURJYdzHTBcGGk+LWe1/ HsC4iZrVKDTBJKi+ilJIQqFUP/NGFdK2TgiUQBB3Xn0uAATu1IKZ+v1Lm+HFOO8AaziPCPYMLBZ PB6KDwkFsTvExOlkWV4GX3b7P23CsQ9fLeMJAeneXLwiO3ii/L+vExXHbpGHcKAXClYQYJIQS97 54yLFvNFCgPjUx3sTQCAfRkwz6ajK5c5B4Hnh5d9JJf+wrwBYCSNxOFDrv6PBAccTQXO+onTEaP k2WAlw5GQmJZaV3Zc+YxOlkhVOinIZHeBBeSdum4PNgqw7F7LwzDTc9HNwn9YDQNeoVwvLylCX2 bzluTLXxJ3nz9MAOpSw== X-Proofpoint-ORIG-GUID: r4VdKHqSxjflv8p4IjhA2OTxEny1tS0A X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-10_05,2026-03-09_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 phishscore=0 impostorscore=0 spamscore=0 bulkscore=0 malwarescore=0 priorityscore=1501 clxscore=1015 adultscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603110032 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.819, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.903, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1773202433811154100 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/cpu.h | 1 + target/hexagon/cpu_helper.h | 1 + target/hexagon/cpu_helper.c | 36 ++++++++++++++++++++++++++++++++++++ target/hexagon/op_helper.c | 3 ++- 4 files changed, 40 insertions(+), 1 deletion(-) diff --git a/target/hexagon/cpu.h b/target/hexagon/cpu.h index 3446910feb6..6168fea3b5f 100644 --- a/target/hexagon/cpu.h +++ b/target/hexagon/cpu.h @@ -50,6 +50,7 @@ #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/cpu_helper.h b/target/hexagon/cpu_helper.h index 72f83d62a54..dc99b4c294b 100644 --- a/target/hexagon/cpu_helper.h +++ b/target/hexagon/cpu_helper.h @@ -20,5 +20,6 @@ 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); =20 #endif diff --git a/target/hexagon/cpu_helper.c b/target/hexagon/cpu_helper.c index 729ffa47eed..dcb07283494 100644 --- a/target/hexagon/cpu_helper.c +++ b/target/hexagon/cpu_helper.c @@ -87,6 +87,42 @@ void hexagon_set_sys_pcycle_count(CPUHexagonState *env, = uint64_t cycles) } } =20 +static void hexagon_resume_thread(CPUHexagonState *env) +{ + CPUState *cs =3D env_cpu(env); + clear_wait_mode(env); + /* + * The wait instruction keeps the PC pointing to itself + * so that it has an opportunity to check for interrupts. + * + * When we come out of wait mode, adjust the PC to the + * next executable instruction. + */ + env->gpr[HEX_REG_PC] =3D env->wait_next_pc; + cs =3D env_cpu(env); + ASSERT_DIRECT_TO_GUEST_UNSET(env, cs->exception_index); + cs->halted =3D false; + cs->exception_index =3D HEX_EVENT_NONE; + qemu_cpu_kick(cs); +} + +void hexagon_resume_threads(CPUHexagonState *current_env, uint32_t mask) +{ + CPUState *cs; + CPUHexagonState *env; + + g_assert(bql_locked()); + CPU_FOREACH(cs) { + env =3D cpu_env(cs); + g_assert(env->threadId < THREADS_MAX); + if ((mask & (0x1 << env->threadId))) { + if (get_exe_mode(env) =3D=3D HEX_EXE_MODE_WAIT) { + hexagon_resume_thread(env); + } + } + } +} + void hexagon_modify_ssr(CPUHexagonState *env, uint32_t new, uint32_t old) { g_assert(bql_locked()); diff --git a/target/hexagon/op_helper.c b/target/hexagon/op_helper.c index dff6092dd8a..9090a5c20ab 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -1586,7 +1586,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 Wed Apr 8 01:18:41 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1773202441; cv=none; d=zohomail.com; s=zohoarc; b=Qe6NeBeoH6Ye74jrHi2MXDGB82DVMpSvLzgvw0PBNGuxR/zHD7sfZqSt9B98veckNnOPR8ywo55e0QIF92o1jSNg9QUTrmniQ8wuwk4tBoMmsNYIj6uiOYBdrtkHrbQniTwDmbPKJruKFhvEBj67SOZQRALVSqrKTBFxmQWlJz0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773202441; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=1NRxbNElb3YTwRj2MfizMd4226hPdr1cJa1WEZAGp/0=; b=gEEtcNol51jyT9haTlCO1nylzDgESJEe63TTOx6no5FYzv+mfYl07qd5xr92bThE9E7zuAgqpb+8Mov1SlrgQzYTnpfAQFgMbk5ybrRsFiE9HR2sVkthSonpD0sA38eYVNGX2Ij1SHjBrFvYEdqrR4fOz8naoR7YWMY3ETRQZ8o= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1773202441277760.3084217273033; Tue, 10 Mar 2026 21:14:01 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w0AsM-0000uY-RJ; Wed, 11 Mar 2026 00:08:50 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w0As9-0000oM-6h for qemu-devel@nongnu.org; Wed, 11 Mar 2026 00:08:38 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w0As5-0008WF-SR for qemu-devel@nongnu.org; Wed, 11 Mar 2026 00:08:36 -0400 Received: from pps.filterd (m0279870.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 62B39gW41572990 for ; Wed, 11 Mar 2026 04:08:32 GMT Received: from mail-oa1-f72.google.com (mail-oa1-f72.google.com [209.85.160.72]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ctqgk9v3e-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 11 Mar 2026 04:08:32 +0000 (GMT) Received: by mail-oa1-f72.google.com with SMTP id 586e51a60fabf-41702ea8343so19797738fac.0 for ; Tue, 10 Mar 2026 21:08: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 586e51a60fabf-4177e5ea30asm998656fac.10.2026.03.10.21.08.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Mar 2026 21:08:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:content-type:date:from :in-reply-to:message-id:mime-version:references:subject:to; s= qcppdkim1; bh=1NRxbNElb3YTwRj2MfizMd4226hPdr1cJa1WEZAGp/0=; b=j0 OHrHQvZa+10yNbJsgddXdnZlD8YuY6id9xkpQX41XQEXaHjU7HixcKhfxPfgPwZp 0oXGP6YrEJCmJBad3oqlquoydJAYGO4k6tDVK7aJfuIt45uYP3IR1yt3Qw4Xqj2x CUHxd0+rn3ZyZH1qM5sHkIhYyZdI7XeWS5n352JhdRkWHP6zZ6avLg6qsZf8E0or l4ZWWCOXKKlqR1jcNSWY8/Im9Z0WeWDLK2qIPSd2sEazNuyBeOkLGk/YEsjEIO9j LYe3EWz9kaPVKmsfVOZ0L1oeKwHivKa+Ir6H8ySUuL0pvjGiW+XANasNp9Xp7G3w W9kFmn7THUUk6xgi7sQQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773202111; x=1773806911; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=1NRxbNElb3YTwRj2MfizMd4226hPdr1cJa1WEZAGp/0=; b=SgRdN9iWPM8kz1IMcaE9dWcqwZWTF/u9MNYJaEJHEvY7cg3csPH97Bw4I2CVE2fDwK JbC3pSPuT/02YwFXQ6CgsCMIJg7zd0Dc7f69nhGDyxH5lXYPcTnf4yEnKOP2yfufQX5R zWm9YpNsiXHccqZtx4SxZedqeaR2VT5PB61DVCl3EEGB5N4hxlKr6WZujdCPh4YONBGV I830dP9MxBk+As+znpfVo1n2ZUBQS2cIZPPDuH0QV94qvbEyaaCOr3hIwumdnSO7X8fF uIDmAOHr/7s8GPaeHyb+jkExsiNWYNUyEZfQLNnvsUMRFCQzCbhN20b5pYDmX44jqP/s 8AgA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773202111; x=1773806911; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=1NRxbNElb3YTwRj2MfizMd4226hPdr1cJa1WEZAGp/0=; b=BkJq4QvkVBBMZx1GbwQlLg2ArzmXNNSqhOw/dhrAgmfq5JCPdmhPv3BbcF1aRkRoIR 3NSslYij415qCQ+bh1zI1rSZQgYlBazHiaOc3GqjTSSI0crpq7Mg36YURBsOXTO2qdTX +90qekJsCXnZo+AcXcaUYZRJodpOwAxE+9jyTzizn2PY1kjaB5M5svCn3NTJfzr9VnQu d+vGTWMGXoM+6vauzsD05xYWM92QsFGH9RKFD8Lk/ashLbUZvApa7TqUfY85DOIzjxiG 1xcKC+1PzHy7pMXPAkbIpIBFK11ZUTLL5ghqvFvl2FRSt6pou2+JbAvgDalxw+XNx+5A 1CWQ== X-Gm-Message-State: AOJu0Yzgbr+DD4Sk4IygqYIMPA++aVG0NDf9ctBkQ7uiodHPZ1xCVF1b lnTYZC4E/3XZaBSbwAWc4AtHIFNg/gdIdJnY6T5cqOvG+j3SH2VkWNW+Peb6geAk2uPavaL69la QJPMvIVcojUYIzRnRVdH4UAgRzD0FpluKXsBomdU4cbIxu9qCBElzFPmjCLv0PLd10A== X-Gm-Gg: ATEYQzzN6j+yuCqxLGle3ybiXiW6XQDtMT6ktFnD0Wz+ODxTxpBdEUUw7bNF+sO2mBn v3dOhTH1Cx4/KlJ7Cg0V7VuMMuWbPiidHn726NRMkK8Y5m6VOk2ca4NQSKCDnjuLWRsg/mQqgof 3u6Px+VeY1PkpRG6109EKL3VCJ6QtWA9+ZsvULIhZn+sQk7tTGkxV6+Sv2MVwJXzVy57oN6lQDX LaS2oZ6YjqqA/RD4SDrMtdsbSc72TkWGRCFtyVNOBaLzCrVvw06B11Ni5yeNCRxox8S4vwe9V0e Yzj6WamDWv45nygCfs+oWU2D9o4nbbsbb931ZR6Az/L5vAROvjQVNzb11MVR8LALIBzG/Zm8dd6 XGrMJRvjy7DrlAnWfTg6BCrcvGSLXOWmX+WO+tZmIG/JFzUgAtUcv3wxbifa8oVigeTwCRA== X-Received: by 2002:a05:6870:ad0f:b0:3fa:47e:4de4 with SMTP id 586e51a60fabf-4177c6a71dcmr935656fac.24.1773202111433; Tue, 10 Mar 2026 21:08:31 -0700 (PDT) X-Received: by 2002:a05:6870:ad0f:b0:3fa:47e:4de4 with SMTP id 586e51a60fabf-4177c6a71dcmr935641fac.24.1773202111044; Tue, 10 Mar 2026 21:08:31 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, philmd@linaro.org, ltaylorsimpson@gmail.com, matheus.bernardino@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, Brian Cain Subject: [PATCH v3 18/32] target/hexagon: Implement setprio, resched Date: Tue, 10 Mar 2026 21:07:44 -0700 Message-Id: <20260311040758.1068731-19-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260311040758.1068731-1-brian.cain@oss.qualcomm.com> References: <20260311040758.1068731-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-GUID: 5HwytQkvcWyRtEAjt7Iq0R1j9_ffgwHR X-Proofpoint-ORIG-GUID: 5HwytQkvcWyRtEAjt7Iq0R1j9_ffgwHR X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzExMDAzMiBTYWx0ZWRfXz9gyRSPsxbZl FZCeIzcMKJr4sKwaYpX6JH0F1N2Zi6EWuYp+dGNaCi/aS1TN41o7G6Wvp56I/uJmHGNyk6nlunS u5D15ddHe3IhWxpb94HJ4aNCSAd+cHygSDXpZ6vWtgrmJa2+B6ugVC4LmAccybscm3pJjZHsef+ hulkPWMmPwqBZi6l3OQ7qlgVMiB0dHogu0HQsPAtdYisIuxh274rR3yjenHiZgaov3y/w32iAqn QrVkwqAmkqLFDSGvRzaWtD8R6NHCp7TbHCbeWSC7LLFMBD0EOUpbdOhOwSBt0vGaR63yhRnnzhc vYGbEn7v8yXZ/+4CEMyLUHX1SNeouLq1TD8M4TCzdd4wCf7UYl4nwuGyhGKkwKWwFBokY6Ivx3e r1q+pAKe/8PLcRbTAbVf6MNwivGDV/py1IrkSGd4Z1kuSxuNsKztZTU/ly8IebvtPwKCwhV0XEs xMy5wDWaqKGVYnXFlWA== X-Authority-Analysis: v=2.4 cv=M4JA6iws c=1 sm=1 tr=0 ts=69b0eac0 cx=c_pps a=Z3eh007fzM5o9awBa1HkYQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=gowsoOTTUOVcmtlkKump:22 a=EUspDBNiAAAA:8 a=COk6AnOGAAAA:8 a=9hY_xzidxOicKg_qOOkA:9 a=QEXdDO2ut3YA:10 a=eBU8X_Hb5SQ8N-bgNfv4:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-10_05,2026-03-09_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 priorityscore=1501 adultscore=0 lowpriorityscore=0 phishscore=0 impostorscore=0 spamscore=0 suspectscore=0 bulkscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603110032 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.819, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.903, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1773202442302158500 Content-Type: text/plain; charset="utf-8" From: Brian Cain The hardware-assisted scheduler helps manage tasks on the run queue and interrupt steering. This instruction is defined in the Qualcomm Hexagon V71 Programmer's Refere= nce Manual - https://docs.qualcomm.com/bundle/publicresource/80-N2040-51_REV_AB_Hexagon_= V71_ProgrammerS_Reference_Manual.pdf See =C2=A711.9.2 SYSTEM MONITOR. Signed-off-by: Brian Cain --- target/hexagon/op_helper.c | 75 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) diff --git a/target/hexagon/op_helper.c b/target/hexagon/op_helper.c index 9090a5c20ab..36822219b4b 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -1575,6 +1575,62 @@ 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; + + BQL_LOCK_GUARD(); + qemu_log_mask(CPU_LOG_INT, "%s: check resched\n", __func__); + HexagonCPU *cpu =3D env_archcpu(env); + schedcfg =3D cpu->globalregs ? + hexagon_globalreg_read(cpu->globalregs, HEX_SREG_SCHEDCFG, + env->threadId) : 0; + schedcfg_en =3D GET_FIELD(SCHEDCFG_EN, schedcfg); + int_number =3D GET_FIELD(SCHEDCFG_INTNO, schedcfg); + + if (!schedcfg_en) { + return; + } + + CPU_FOREACH(cs) { + HexagonCPU *thread =3D HEXAGON_CPU(cs); + CPUHexagonState *thread_env =3D &(thread->env); + uint32_t th_prio =3D GET_FIELD( + STID_PRIO, thread_env->t_sreg[HEX_SREG_STID]); + if (!hexagon_thread_is_enabled(thread_env)) { + continue; + } + + lowest_th_prio =3D (lowest_th_prio > th_prio) + ? lowest_th_prio + : th_prio; + } + + bestwait_reg =3D cpu->globalregs ? + hexagon_globalreg_read(cpu->globalregs, HEX_SREG_BESTWAIT, + env->threadId) : 0; + best_prio =3D GET_FIELD(BESTWAIT_PRIO, bestwait_reg); + + /* + * If the lowest priority thread is lower priority than the + * value in the BESTWAIT register, we must raise the reschedule + * interrupt on the lowest priority thread. + */ + if (lowest_th_prio > best_prio) { + qemu_log_mask(CPU_LOG_INT, + "%s: raising resched int %d, cur PC 0x" TARGET_FMT_lx "\n", + __func__, int_number, env->gpr[HEX_REG_PC]); + SET_SYSTEM_FIELD(env, HEX_SREG_BESTWAIT, BESTWAIT_PRIO, ~0); + hex_raise_interrupts(env, 1 << int_number, CPU_INTERRUPT_SWI); + } +} + void HELPER(wait)(CPUHexagonState *env, uint32_t PC) { BQL_LOCK_GUARD(); @@ -1680,8 +1736,27 @@ uint64_t HELPER(greg_read_pair)(CPUHexagonState *env= , uint32_t reg) g_assert_not_reached(); } =20 +/* + * setprio/resched - See the Hexagon V73 Programmer's Reference Manual, + * Section 6.4 "Interrupt and Thread Scheduling" + */ void HELPER(setprio)(CPUHexagonState *env, uint32_t thread, uint32_t prio) { + CPUState *cs; + + BQL_LOCK_GUARD(); + CPU_FOREACH(cs) { + HexagonCPU *found_cpu =3D HEXAGON_CPU(cs); + CPUHexagonState *found_env =3D &found_cpu->env; + if (thread =3D=3D found_env->threadId) { + SET_SYSTEM_FIELD(found_env, HEX_SREG_STID, STID_PRIO, prio); + qemu_log_mask(CPU_LOG_INT, + "%s: tid " TARGET_FMT_lx " prio =3D 0x%x\n", + __func__, found_env->threadId, prio); + resched(env); + return; + } + } g_assert_not_reached(); } =20 --=20 2.34.1 From nobody Wed Apr 8 01:18:41 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1773202320; cv=none; d=zohomail.com; s=zohoarc; b=MdUW/JXhBTpJ1TQJM6RWP9UcmT5CkW3e9U1ZGivJugxeF/4g7hgIEwIXetO4Z7879zy4O6oy6gYYfgor+aWNHsMoIdPTsxbmZZvafTm4c922sjbLjG1BosxtZLJjmH4iM060NjOZmlhLWwB+yb5fD/SzAPpDvRHiD8UjyQMb2Ac= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773202320; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=zuRUYpTiC5TwT27OFq7oroDGlRXSCX5ZcVkOh2x95a0=; b=fYwEb5vsl2iJHQpgMFVLGVYP/feac2JoeOi8Lksxi+Ne2SMKsK/4NQMconEuttOZaefguzcnnZ9pAFqzUnVlP3C6hkK6NECE31fE1GxlOlNTLCR8HS/ufLK88ovz1e0/sqGVYEZm9f54a97IuB5AAOl8WJZk1AsglcwjAS7D650= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1773202320850828.6861363471515; Tue, 10 Mar 2026 21:12:00 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w0AsG-0000rc-C3; Wed, 11 Mar 2026 00:08:44 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w0As9-0000oL-5d for qemu-devel@nongnu.org; Wed, 11 Mar 2026 00:08: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 1w0As7-0008WN-5u for qemu-devel@nongnu.org; Wed, 11 Mar 2026 00:08:36 -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 62AKDfkF1863186 for ; Wed, 11 Mar 2026 04:08:33 GMT Received: from mail-oa1-f70.google.com (mail-oa1-f70.google.com [209.85.160.70]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ctmw82q2d-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 11 Mar 2026 04:08:33 +0000 (GMT) Received: by mail-oa1-f70.google.com with SMTP id 586e51a60fabf-41704d89a50so12599108fac.0 for ; Tue, 10 Mar 2026 21:08: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 586e51a60fabf-4177e5ea30asm998656fac.10.2026.03.10.21.08.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Mar 2026 21:08: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= zuRUYpTiC5TwT27OFq7oroDGlRXSCX5ZcVkOh2x95a0=; b=YiFvIa9xGsQJVvS/ knATHWX0ojwKe519x8+LMEbeGUZ4BXlUj+BHvkmxw9dUdXZQH/EBkJdefmoWVBja f7t/3ZAqYtK2mSZu63DlQwgZd218d07Exs11JykgrKGFbDwBNqiYIfC+oxuTVBIC ZW1Kj7kaWMyG80+YFKviWUUhJlmmoWSpD10fmSfbvoFS59ZdVgZ80BaOe3d/jrla vs8gshUL9x6igYjodYS4yKBm7e2JO6JHQqgu1AFW9LYVhMi54DH7+qP/wDDFSzFa w61i+4LIkx9t1im1CfN25bktYQ9P1P00qqV1426f2r9s+iR/LbOghFN0sht6HnNs fALv9Q== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773202113; x=1773806913; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=zuRUYpTiC5TwT27OFq7oroDGlRXSCX5ZcVkOh2x95a0=; b=hEwlanNb1aNgDARlkKEn7OtwT6/dGqeMWwlink/oZ0FrtJGfCOMCdYfNvvrHG9wPu1 xco0PfDAo6B0dChBVN1D0UopdP+s0uHsZt8zrsmwH1d8bMg/kMX7a3UQbZIRIOsVk7Iw /rBoRK69u7VxuXhuIrbCNV4N/Q/KDtFontUaftXIePG9UijdFiaQgWCX8aUy810bNW6k OsRX+g+mfqnY0jxFT/r0uPZLEYLMYsbaZicuqJqbwBLV8rDaMBZFoTn+T67n8euiDWok DlxRxBBdsu0WfWFv8E0BlCw1A2bB2rcT5929LRyqKqizMWHna4jftegXd1k8EId/P5Ap TBdQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773202113; x=1773806913; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=zuRUYpTiC5TwT27OFq7oroDGlRXSCX5ZcVkOh2x95a0=; b=DDuVe7F938k/QOwiC4Mp/3NuxPmLmDJaO+fTNZ4dWc6bpzIZgvF54n9l1LGQzBXfDH nAlLJhXKg0N4E7NY7ToGJhXRVAhF1FyB6hhYDbZWWFb8aw9QnuwSI6yTZBWWkS/7mBQi BA0w8NAfJH7k9R1g70jTHzZKOIsEbfvvmzHotickiEuCDmwCB3Gnfr0Wu+gannFJKlEu yK7n0iNddtUe/CNpMsIF7TiAWLQcaCs4kGoFMhfUcw7SPPaxsraIHclkqIfhp5XCI4MB b1ydqKIW5dDxCN9vfDD/fswApFiZNAr2rt5r+qA35Idm8UMfvZ8WDfsS63kN3I8PcYxj V7fg== X-Gm-Message-State: AOJu0YzvUSMgiM47nERgl0KdQM1VobFljysIdll9Q5r4NeKHywoBx+z0 ZDFDt+BYee8kZXo2cNRvFhuM4UEvXAG2O7wjj/TCwwByYehXQVm2D0N9+Mt1yPvwfYBiZfkku8J IN5iTByLOiLqdf/vAALbeSJw8iJRiqh/lPEbZ1ce4g2qP+0cTkIx/WESs3Id9xqJ1Vg== X-Gm-Gg: ATEYQzwbhWoD+5Qqlpa+RswjhSNtMMQcjRWvYxyY7AAWOQwSnl19qWYSEp1dlhQciGo W3VPjsC11fMP1GOIUuh817+Q2DqDolqxh1OO1hXWGnmZSLRtNiwo2uk6sWhOBpdPiNdb94//zbU b3W7kJCIfn9g2/p1QEP6Rux2j03qC5EscSNYjhQ28DnVK52F9cvvIw+MCgHblADtHuV6FIsEf6T NB+u/CU9R52JAdhq0rEY99eAE4VLzJ/x0Z5bT1YtBmr9eQNpZF90xk+HteU5sV59etZao5QYDxt GcFhV+E4lVueGXubnFGnlpRGMC67zdcLh8kQTBvLzmV2adtra5KeUgrV4turvyg/OzY8F/CpW39 FJeO66aFuphuqL6WCIQAw3lKCCL4RGzO2v0Vn1xc7OPe1OLlckp54fTqxwo4FmMBcqNcUVw== X-Received: by 2002:a05:6871:3143:b0:408:694d:ff27 with SMTP id 586e51a60fabf-4177ca59999mr844357fac.34.1773202112776; Tue, 10 Mar 2026 21:08:32 -0700 (PDT) X-Received: by 2002:a05:6871:3143:b0:408:694d:ff27 with SMTP id 586e51a60fabf-4177ca59999mr844344fac.34.1773202112411; Tue, 10 Mar 2026 21:08:32 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, philmd@linaro.org, ltaylorsimpson@gmail.com, matheus.bernardino@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, Brian Cain Subject: [PATCH v3 19/32] target/hexagon: Add sysemu_ops, cpu_get_phys_page_debug() Date: Tue, 10 Mar 2026 21:07:45 -0700 Message-Id: <20260311040758.1068731-20-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260311040758.1068731-1-brian.cain@oss.qualcomm.com> References: <20260311040758.1068731-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: 8zSr98qJlAF7CAst-OMtFohwRCbMBXPN X-Proofpoint-GUID: 8zSr98qJlAF7CAst-OMtFohwRCbMBXPN X-Authority-Analysis: v=2.4 cv=PJECOPqC c=1 sm=1 tr=0 ts=69b0eac1 cx=c_pps a=nSjmGuzVYOmhOUYzIAhsAg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA: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=fg0LxJQkbHe3Ved8Rg4A:9 a=QEXdDO2ut3YA:10 a=1zu1i0D7hVQfj8NKfPKu:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzExMDAzMiBTYWx0ZWRfX8op2XXcwdxDn ZsaEXPUugDMUdW7h4KBb9gGer57NVdkmMt775IbI2OyugqQkvclvblUcMEoR9TI0O9pAo8yZMFO goeAWQ8WtJgLii0DAu+m7YE4ifZ5B/2sIdtU7Dvtaf7CMLaoAjGEOOi1R8JufwnsGd+LsPrb2Z5 tnc8J6r0DGBW1hTEk/kr1oAA/ZyRaImvWK5+dRLcvrgaMytiH/IpjEjrKfC9+Hn23ylyeYYZ4Fw PozU6E2TXZOZyo+c/ts5k720dvl5rJM1Fu7sUndvuXunJjTFFOy3vMPhe3pVh0gpEkfdViEweUi W5i/OdHGikl+eKami4N67ltx7Sn+5gpEAj33CYfdWvOwwVJnMP9qWWiw1x3smNzSP+b2ChU0Z4q KQJptFdnlg5MTqVbQdmP07iht912uyLO4iZa+Gbgt9oR0vZJdu6tYKrv+peSwW/0gs14D4RwyPF Z4xpnGTez3qi3vq7E4Q== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-10_05,2026-03-09_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 impostorscore=0 malwarescore=0 spamscore=0 phishscore=0 lowpriorityscore=0 clxscore=1015 priorityscore=1501 adultscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603110032 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.819, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.903, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1773202322223154100 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 c5ec478ef40..6849dc7966b 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" @@ -506,6 +508,24 @@ static void find_qemu_subpage(vaddr *addr, hwaddr *phy= s, uint64_t page_size) *phys +=3D offset; } =20 +static hwaddr hexagon_cpu_get_phys_page_debug(CPUState *cs, vaddr addr) +{ + CPUHexagonState *env =3D cpu_env(cs); + hwaddr phys_addr; + int prot; + uint64_t page_size =3D 0; + int32_t excp =3D 0; + int mmu_idx =3D MMU_KERNEL_IDX; + + if (get_physical_address(env, &phys_addr, &prot, &page_size, &excp, + addr, 0, mmu_idx)) { + find_qemu_subpage(&addr, &phys_addr, page_size); + return phys_addr; + } + + return -1; +} + =20 #define INVALID_BADVA 0xbadabada =20 @@ -613,6 +633,13 @@ static bool hexagon_tlb_fill(CPUState *cs, vaddr addre= ss, int size, do_raise_exception(env, cs->exception_index, env->gpr[HEX_REG_PC], ret= addr); } =20 +#include "hw/core/sysemu-cpu-ops.h" + +static const struct SysemuCPUOps hexagon_sysemu_ops =3D { + .has_work =3D hexagon_cpu_has_work, + .get_phys_page_debug =3D hexagon_cpu_get_phys_page_debug, +}; + static bool hexagon_cpu_exec_interrupt(CPUState *cs, int interrupt_request) { CPUHexagonState *env =3D cpu_env(cs); @@ -655,6 +682,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 @@ -682,9 +711,12 @@ static void hexagon_cpu_class_init(ObjectClass *c, con= st void *data) cc->gdb_core_xml_file =3D "hexagon-core.xml"; cc->disas_set_info =3D hexagon_cpu_disas_set_info; #ifndef CONFIG_USER_ONLY + cc->sysemu_ops =3D &hexagon_sysemu_ops; dc->vmsd =3D &vmstate_hexagon_cpu; #endif +#ifdef CONFIG_TCG cc->tcg_ops =3D &hexagon_tcg_ops; +#endif } =20 #define DEFINE_CPU(type_name, initfn) \ --=20 2.34.1 From nobody Wed Apr 8 01:18:41 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1773202436; cv=none; d=zohomail.com; s=zohoarc; b=b07nCoaH/0laGZP3luvOY00aluu42pBdQ7babjZRfAYq2DI9/53V1Yed5QTOcNJEIiu9/0BQ+eYIp9Eo423Q/SlSCZwaIiqI+J9YTskcJ3wlVXtR9xA/OV7fDnDjUVqahIIIxvJBRdhLJv0KOx/ViMTPPBMg6hh/ijOZCfXkZZQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773202436; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=hn1uuV0u3zdovXdnF0cgPTU9OgrIWILHugDCx9Chq2Y=; b=NvatDHByHnjYckD21Sw04XlLjQGVD8Ts0HpmwXGNfVGWWuClCSAXVL+FZiq5SLGIjUHRCMFJx2y6u788LClHGuRp35M4Vy3nRb5T6GA1BRHxJsL+wmPBnrrSqYMHsOd0ND632K4XjjvsrSuCVHTcY58vkr/Y2eiwFMOFpqr6iG8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1773202436171556.3206897970011; Tue, 10 Mar 2026 21:13:56 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w0AsK-0000sO-7N; Wed, 11 Mar 2026 00:08:48 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w0As9-0000oO-RR for qemu-devel@nongnu.org; Wed, 11 Mar 2026 00:08:38 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w0As8-00004s-6A for qemu-devel@nongnu.org; Wed, 11 Mar 2026 00:08:37 -0400 Received: from pps.filterd (m0279871.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 62B3T2Lc248937 for ; Wed, 11 Mar 2026 04:08:35 GMT Received: from mail-oa1-f70.google.com (mail-oa1-f70.google.com [209.85.160.70]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ctqv11swm-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 11 Mar 2026 04:08:35 +0000 (GMT) Received: by mail-oa1-f70.google.com with SMTP id 586e51a60fabf-417393f319fso19128721fac.3 for ; Tue, 10 Mar 2026 21:08: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 586e51a60fabf-4177e5ea30asm998656fac.10.2026.03.10.21.08.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Mar 2026 21:08: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= hn1uuV0u3zdovXdnF0cgPTU9OgrIWILHugDCx9Chq2Y=; b=Gh+M5p1rVtyFW012 TeNkyIBaI+l+/3Tnghj/dXKZMCKtGRFq28zekgUh/guse1uKBVI90Xn/mt7KSUrH Ff0LaV88TCVE0ogCtvvfztzRS8lhoRDG7dK+DGZBm7Kfgmgb0zw4AQupUX7j3tbe yTNqwHyN8nkQ4aG4PPnNxJ/e+YwmgbxNEvrR/0A/YJl6DejT7Qhez+i06YdZ20qr HskqGi9IyVZ6J3AVGCzqmamkfnQ68/27GiQExjC+MMCE5/jcSUrSiRRZgBYrJ6GS XAIQaKZi8Q0iXI8vVt3WI8Jt0Scid4M8jEuUr4vXJ//xR6VsvuM8YangABvJ3L0B X4FjyQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773202114; x=1773806914; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=hn1uuV0u3zdovXdnF0cgPTU9OgrIWILHugDCx9Chq2Y=; b=JfQanwh8oKayoYzEeFubdLTGCloJBVTTb5ZhR/QGQ3LkCYb0NvA+iKnu2/uSXFIMUV ROYyWqoH4WirhjqZfpQnQuL8JbvW7Ca42yU6McTI5QI4pSeO75gFeBT/7viheVwDcWcR 3fwgtku1n5WVM7KbOxIPrqjizoyfATJEnOKQ78DWnqnrASsP//nB8i+2OfFNoIqjCrTw A4s6CR2+JhOFYr7gxISCVoTYYkKyMJueZObaAzJZKN3i/fS6n55ar3/NHadl1cgVpbb8 Seui9vddQbOTQ7mGeR3bC3hoA11nd4vrumzprTJZfUtrn8yx78ljbO45xppoJsQrObKX YHTQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773202114; x=1773806914; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=hn1uuV0u3zdovXdnF0cgPTU9OgrIWILHugDCx9Chq2Y=; b=ZGSbaA2j5bj+/9yK5MjewEyd6vqLpWkMCq270x0oNnij7+CdzjQ+KXS2eXXdX9Y4zJ g2aZ0WDdwLFHX9YFZnoo+HjTBPijVUexV9+6dux5LLoKyTNeR4vlMIuu1lQL1cJI4x87 KaX4E1r/NUaXfJk+71o0T1WIvAypbQRJx3050AqI+Z3fDD7UhSwNBjWISfxa3E3qmXui +13zEjFnxE6erJNDDpddF/HepwguiPuOkM4FvaBS7aimGaBxmEnnljPww+rVWzCUDTNl 4vnA3v1rfMTAtwBK4YfWPte1nfP7zE6oXmyP5eAA0ZS2j33C4i6Ap6Ds7Ymd8fvY3Cn6 cI0A== X-Gm-Message-State: AOJu0Yz1BG/sXKydsSdzs+3hJymDjnBVLVRbnK9J95c0fshW5xs8+i1c O6O2VSNH/rynAeGtLXmjEd5vvLfT8URTJdnU9HnyMEck27NKryfV3hu6wm8XGrexiuzFNhTHdZm NauexSXav25GCkFb/6VNpRZQxjKUU1Y80EI8vQlDxyQNE0aUe+uPa73IcoVN2wtxftA== X-Gm-Gg: ATEYQzxslnrzJmw3VyrFzrNOO7FR5jTHTXSBz/BxG9xYz4T2Tk0O75ZvcVYBJudQ731 zw4oJTEnHweQBcuWxmENccRynCcAM4h56NDfu7M3osGu3CT9w/PJCI3OVOjSJaA5XPBco7dc/rq cw8ahVu9cUcE7R4dMd9eVOd9cRJezW/wdlyjiBiiGAVJh7HpeXmveI9f95YE1w5UDVVzQ00Rfhi YPdtvUxmX3RSkaLUAg3djRDKzCc0p0Rzh+4nph2ilykvwTc06vRYPdhUBFoL6fBBJcTtYTLu0rY D9mO8MYS8gTcriMgBLs93AETomakFcXA8AKqb0jPQ00hRBKl/OqlLrNkc62QwEbTPJxfUnrSNLt KeCOS4z9mBMr8aAQ333HHUSv+YGUA4ZhkZ+omcOqkN/l1EGBxrjil9A5/6RmcPxIhYL1aJQ== X-Received: by 2002:a05:6870:a90c:b0:3ec:57f7:fa5a with SMTP id 586e51a60fabf-4177ccd9f72mr764796fac.50.1773202114331; Tue, 10 Mar 2026 21:08:34 -0700 (PDT) X-Received: by 2002:a05:6870:a90c:b0:3ec:57f7:fa5a with SMTP id 586e51a60fabf-4177ccd9f72mr764788fac.50.1773202113995; Tue, 10 Mar 2026 21:08:33 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, philmd@linaro.org, ltaylorsimpson@gmail.com, matheus.bernardino@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, Brian Cain Subject: [PATCH v3 20/32] target/hexagon: extend hexagon_cpu_mmu_index() for sysemu Date: Tue, 10 Mar 2026 21:07:46 -0700 Message-Id: <20260311040758.1068731-21-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260311040758.1068731-1-brian.cain@oss.qualcomm.com> References: <20260311040758.1068731-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: AW1haW4tMjYwMzExMDAzMiBTYWx0ZWRfXw3Y6jSJyKywb fOjNfgsdfZADe3CHe0eJPCI2/zKgUVcLppbZDfWXFCDeYqFcO9Yev4dVohOeaY+S7EWSErH/fVe Wzi4YZT4/bw2k0NDnFMRbJxEQ6tRPSk4jl4Z1S/6StbyQh63VTXo5Tcn8llkdobEmOhm62zMjIU 4vMfiZC8MsVpf94UrnuxgfEKS5z993BT5pvozy3URYYfUZ4ggeD2/steO9+YBtzldfpdoFwOSef CXWrA9eDSUPqD+6lq30xJb/fYwIY3yXgueTeE2lUZzTqgE/yeqARvKJffQcnr2jAxyK/7Gs2HtF CQovtvk2oVcfTEr+cA4fN5WzmVTy33jyGCBSbGLj0XWJ9stjn166s2zF2qjk8hB6MqYorGV/evw V/KE0w4w6f+aIdiXsuRtB3jd3QqjX9EujjALH3dRAK6+DHdFbGr/ryMpdwolq2cKcbVWQH2Jqge fL2c4mctu5xIJVZ4qYA== X-Proofpoint-GUID: AA9xzcvAEqiIdIyPgVgsaJd8V11CZPMq X-Authority-Analysis: v=2.4 cv=S5vUAYsP c=1 sm=1 tr=0 ts=69b0eac3 cx=c_pps a=nSjmGuzVYOmhOUYzIAhsAg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA: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=kXroxUfw0iMe_INEunMA:9 a=QEXdDO2ut3YA:10 a=1zu1i0D7hVQfj8NKfPKu:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: AA9xzcvAEqiIdIyPgVgsaJd8V11CZPMq X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-10_05,2026-03-09_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 impostorscore=0 lowpriorityscore=0 clxscore=1015 suspectscore=0 malwarescore=0 adultscore=0 bulkscore=0 spamscore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603110032 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.819, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.903, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1773202438288158500 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/cpu_helper.h | 1 + target/hexagon/cpu.c | 22 +++++++++++++++++++ target/hexagon/cpu_helper.c | 44 +++++++++++++++++++++++++++++++++++++ 3 files changed, 67 insertions(+) diff --git a/target/hexagon/cpu_helper.h b/target/hexagon/cpu_helper.h index dc99b4c294b..7d7cf58acc8 100644 --- a/target/hexagon/cpu_helper.h +++ b/target/hexagon/cpu_helper.h @@ -15,6 +15,7 @@ void hexagon_set_sys_pcycle_count(CPUHexagonState *env, u= int64_t); void hexagon_set_sys_pcycle_count_low(CPUHexagonState *env, uint32_t); void hexagon_set_sys_pcycle_count_high(CPUHexagonState *env, uint32_t); 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); diff --git a/target/hexagon/cpu.c b/target/hexagon/cpu.c index 6849dc7966b..cec06daed73 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -449,6 +449,28 @@ 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 + BQL_LOCK_GUARD(); + CPUHexagonState *env =3D cpu_env(cs); + HexagonCPU *cpu =3D HEXAGON_CPU(cs); + 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; + } + } + + int 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 diff --git a/target/hexagon/cpu_helper.c b/target/hexagon/cpu_helper.c index dcb07283494..0521c01c84c 100644 --- a/target/hexagon/cpu_helper.c +++ b/target/hexagon/cpu_helper.c @@ -302,3 +302,47 @@ void hexagon_stop_thread(CPUHexagonState *env) SHUTDOWN_CAUSE_GUEST_SHUTDOWN, get_thread0_r2()); } } + +static int sys_in_monitor_mode_ssr(uint32_t ssr) +{ + if ((GET_SSR_FIELD(SSR_EX, ssr) !=3D 0) || + ((GET_SSR_FIELD(SSR_EX, ssr) =3D=3D 0) && + (GET_SSR_FIELD(SSR_UM, ssr) =3D=3D 0))) { + return 1; + } + return 0; +} + +static int sys_in_guest_mode_ssr(uint32_t ssr) +{ + if ((GET_SSR_FIELD(SSR_EX, ssr) =3D=3D 0) && + (GET_SSR_FIELD(SSR_UM, ssr) !=3D 0) && + (GET_SSR_FIELD(SSR_GM, ssr) !=3D 0)) { + return 1; + } + return 0; +} + +static int sys_in_user_mode_ssr(uint32_t ssr) +{ + if ((GET_SSR_FIELD(SSR_EX, ssr) =3D=3D 0) && + (GET_SSR_FIELD(SSR_UM, ssr) !=3D 0) && + (GET_SSR_FIELD(SSR_GM, ssr) =3D=3D 0)) { + return 1; + } + return 0; +} + +int get_cpu_mode(CPUHexagonState *env) +{ + uint32_t ssr =3D env->t_sreg[HEX_SREG_SSR]; + + if (sys_in_monitor_mode_ssr(ssr)) { + return HEX_CPU_MODE_MONITOR; + } else if (sys_in_guest_mode_ssr(ssr)) { + return HEX_CPU_MODE_GUEST; + } else if (sys_in_user_mode_ssr(ssr)) { + return HEX_CPU_MODE_USER; + } + return HEX_CPU_MODE_MONITOR; +} --=20 2.34.1 From nobody Wed Apr 8 01:18:41 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1773202406; cv=none; d=zohomail.com; s=zohoarc; b=AwlHkl73eMvmwkiMhNdwOnNN8BNY7Gbm0NhQa/nr/DU2PstNh2znuFT2e5KRtLKm+LVzQRaPHJW5LwnDNYDtl0Cgk8XzIqmYwo9Qvry4Jwp9z4ul/YHVVhU4OIOH5KSnHWdBRtlczIQJIuw7flg3+4lAALPB0rtXBFBxxVr3HVo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773202406; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=+uVDGq7dJHTrOrLyDMjlzrACmQcLWLNq2nBzhTxQpEs=; b=e+a2j5H/LqgT86CdwUgKVorM5rhozIZsijB9om6SWWkOf0vctDMjkPkDSG86qTGos56QR3CUP/7sWElig9wdinY1e6OJOWf9N4bFhYh6rsDZXVTxjOpzJbIeKDwtT0vgXGbKkmj7bMFVsNNwFGnzi6eqbVYAwYUVMMoTMVg+vc0= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1773202406376819.8879588222821; Tue, 10 Mar 2026 21:13:26 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w0AsM-0000uZ-V3; Wed, 11 Mar 2026 00:08:50 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w0AsB-0000ot-4U for qemu-devel@nongnu.org; Wed, 11 Mar 2026 00:08: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 1w0As9-00005C-Mc for qemu-devel@nongnu.org; Wed, 11 Mar 2026 00:08:38 -0400 Received: from pps.filterd (m0279862.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 62AKZ4cg1863226 for ; Wed, 11 Mar 2026 04:08:36 GMT Received: from mail-oa1-f72.google.com (mail-oa1-f72.google.com [209.85.160.72]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ctmw82q2h-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 11 Mar 2026 04:08:36 +0000 (GMT) Received: by mail-oa1-f72.google.com with SMTP id 586e51a60fabf-415e1e9aa5dso63638865fac.0 for ; Tue, 10 Mar 2026 21:08: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 586e51a60fabf-4177e5ea30asm998656fac.10.2026.03.10.21.08.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Mar 2026 21:08:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= +uVDGq7dJHTrOrLyDMjlzrACmQcLWLNq2nBzhTxQpEs=; b=dUC4JZerKJTLEgpV Xs+oAhYgEfzpdiBnq7MqsICauKzRUntJs9RuXvxiSh4ZvsPg97dQAjtWhndDERMP oHe3u3UcEZfz03Enotapl/KOQ9dc/bZuVEDEG3M1pteLvBlXl0Pi7gokOgHXTbB0 5GjukZ1ZoNNZhJRsaAuam1E+fyUWp5xYMP4u9ZIb9RC3l40QwpULAmiWzr59Qc7X 0lfBr7GQEFQP3Eo4PMXpWLpmKt+hczNlGgQ08/CmuIrvlRhiHbduBOQSRDhwLwKE 8i2vsZif//kAXh1kkdDQI8z0UHKTTmJZp60+9uJ753Ryb7TlRXRyk3qjZu31pWyJ huuzDA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773202115; x=1773806915; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=+uVDGq7dJHTrOrLyDMjlzrACmQcLWLNq2nBzhTxQpEs=; b=ijv6U4mc3GIbGU/39om6/YkHu/E8aUyr3NMXYS2cve22aTnWXQpAYStczfOcAdyVru gdCrurXhLJXugM5AlU4XtCy6+pwskcwB1E6bcvkAtyMB4O9rtrStpXnQaHCo5mRohV2A +Z2WgbrVxR2CBf4+/dmNQz9rTPpIBm/RVQXSpeBRxmpuBjTPSEmfGscKeBBpMj3aC0uP hD+F1y8MUNebNRS2GWwwyc3QnMwlvo26h7QtsqazRMMn/ilqM86WelH2ys/ieYV13pMB 5OMYGr36G/SgCjGHHe7L9UztM0cjkA/6f9wn2IohX2lUGYmioB9ByHbMOnFnlz+RHK7C fOew== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773202115; x=1773806915; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=+uVDGq7dJHTrOrLyDMjlzrACmQcLWLNq2nBzhTxQpEs=; b=cyw/2t45MN/LzwrU1x/V2mtyugyDkUdTdmz+60hIXxlOcrnzyJhfnagDK7Ivc9rle1 PIJ7PNxOPid6BO/XHUOPHoeOYRATs4BU7sgD7FF7ya6+smv0HywInIB2D56M17LSZOtt 22nK6F7zvQ22iiI375+KLkzdi/kZGG5yHBLKH+6xbVKzEZEaU8yS8gEI9eae8Icx/+Ui nSo6dTosCGj+t/3n5pMgs5Sn8/JHAVzo69nUZdMrF8MAwg4cK06nUq230Hkw8VyeDSco uucDmvNggGlqJ80qmJ3gWDukLRCtkhFkt2mB1XgkpqpwiWU7J5Upg8tdo6fma7AM4ckx 1zDw== X-Gm-Message-State: AOJu0Yw7VbNuOtoXASjnvi6F++EQkbkXDSes8hizDdXUicC9b7dwzPEk GuUrLTp5LclqcOyb04DUgGZycyFonR4ybi95SyCdxEQt1fuhcyCUtZWKQCYzk2QdkU9jV4xLN00 r7cBYkGjxHl+n0Nb4GOSxRmguB8wZhpaLxFcJSV1JHLD9sDXsYKq0NrXe9BOOGbwAfw== X-Gm-Gg: ATEYQzzNVZjNpKkcjGXUyOV7CyVuckcchf24yP+BqgF1rF2txi+GvI6F1Nl5Gf9GKEJ Ehk/5XfUVPNXotkYBiw1x9Ym3gS9XvfzSmHxbCz5fIHyZ4I2ID1n58zc+XiFDGBFonldBsB2bh3 fiX2+895tu3Eh6f87xc+jXcTVEM8OOAiDZk/8OyfBhueYdRuJVNl/eNrT/2o5i4RN6RaC4hLz09 tRrBg0ltpdLQcpJJ4BUGr1tpq9465dLUQGuBOjEr8EuieHIw8RNf+VhroH2Ucn9DFdsky4Yul8t /5j53C0RuO+VAkgAJZwCuyQXhZNpk3/Y2vcb2KcP2VOL6dh74g2aTfFlCC480wHdMsM0pdvPDoN haQ40lnuvvN2OP7IKVAFxS6eOflXnCvcazUfu1tL5o9yk3Q+aS26xUZM2VW26Z7QuhuSiHA== X-Received: by 2002:a05:6870:2e04:b0:409:7cfc:7392 with SMTP id 586e51a60fabf-4177c96b888mr947324fac.42.1773202115468; Tue, 10 Mar 2026 21:08:35 -0700 (PDT) X-Received: by 2002:a05:6870:2e04:b0:409:7cfc:7392 with SMTP id 586e51a60fabf-4177c96b888mr947314fac.42.1773202115123; Tue, 10 Mar 2026 21:08:35 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, philmd@linaro.org, ltaylorsimpson@gmail.com, matheus.bernardino@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, Brian Cain Subject: [PATCH v3 21/32] target/hexagon: Decode trap1, rte as COF Date: Tue, 10 Mar 2026 21:07:47 -0700 Message-Id: <20260311040758.1068731-22-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260311040758.1068731-1-brian.cain@oss.qualcomm.com> References: <20260311040758.1068731-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: HNqwCkXQfhm4L0fJcYEUuTnYwWAfFmHt X-Proofpoint-GUID: HNqwCkXQfhm4L0fJcYEUuTnYwWAfFmHt X-Authority-Analysis: v=2.4 cv=PJECOPqC c=1 sm=1 tr=0 ts=69b0eac4 cx=c_pps a=Z3eh007fzM5o9awBa1HkYQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_K5XuSEh1TEqbUxoQ0s3:22 a=COk6AnOGAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=oDs3gbQtVgqjpHJ5GUgA:9 a=QEXdDO2ut3YA:10 a=eBU8X_Hb5SQ8N-bgNfv4:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzExMDAzMiBTYWx0ZWRfX9nt8/Usav2Fv ct0DX+Y6HbI1ngU7aPhA7HUPXjk6EFtJobHI8HHm3HaoWsU8dS1z5N1+tWEc7fgxqxEx8cEIm9n cX/eDfTypAh2ezs7r7Qz193uLBREWlQRl+0WMaYdOKM3yV8iVbEnT9NkjAwIloFA4AAAyjaE1gB SC2mguKjNONGAXM9gto0Xa8TV3hqloWU2mKRLXlEKqrrF8dn5+LrzT+JKCQJ3p1Am8PNr89Y3Jw J8sEYZQm9wvw+t3UCeS7PpUkXFxEGBppahCt/tNGsxnHCXYKLYKFpRCcB2ZFzlmLwwr4JfJ2Hs2 JxOq9btuUPtyYbRPJpYbmM+0z6WvUSaqfMo4iMKBUxgD/E4tcC6JzoJbtBLOhGp7kPSi0iPfko1 FWHpMm0NH9UjFi1zEzJMTRVxj6AX4v2Wawu721EnAUzRbdi4gfGLrOdyHDZ+IMhGz7ribiFCEhK PuBtJh2cBIIFHyRIjAw== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-10_05,2026-03-09_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 impostorscore=0 malwarescore=0 spamscore=0 phishscore=0 lowpriorityscore=0 clxscore=1015 priorityscore=1501 adultscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603110032 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.819, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.903, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1773202408113158500 From: Brian Cain Also: handle rte instructions at the end of the packet. Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/decode.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/target/hexagon/decode.c b/target/hexagon/decode.c index dbc9c630e82..ce93e6bdd8f 100644 --- a/target/hexagon/decode.c +++ b/target/hexagon/decode.c @@ -185,6 +185,8 @@ static bool decode_opcode_can_jump(int opcode) if ((GET_ATTRIB(opcode, A_JUMP)) || (GET_ATTRIB(opcode, A_CALL)) || (opcode =3D=3D J2_trap0) || + (opcode =3D=3D J2_trap1) || + (opcode =3D=3D J2_rte) || (opcode =3D=3D J2_pause)) { /* Exception to A_JUMP attribute */ if (opcode =3D=3D J4_hintjumpr) { @@ -363,6 +365,18 @@ static void decode_shuffle_for_execution(Packet *packe= t) break; } } + /* + * And at the very very very end, move any RTE's, since they update + * user/supervisor mode. + */ +#if !defined(CONFIG_USER_ONLY) + for (i =3D 0; i < last_insn; i++) { + if (packet->insn[i].opcode =3D=3D J2_rte) { + decode_send_insn_to(packet, i, last_insn); + break; + } + } +#endif } =20 static void --=20 2.34.1 From nobody Wed Apr 8 01:18:41 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1773202318; cv=none; d=zohomail.com; s=zohoarc; b=UqVUZVggMYaMb+gHd4nTh/UMYiWd6Cu+Slah31j1yVcUQw2/rQv9n0FWWnK99aZRKanKAyCcYE3kErSYXGG3aBu5RlTCcbef3siUEmusiruKyki4eh9afk3FgimCWu5uS5J6hQGI2q8w/4AH4iARRwDpSduFm4SBRYweWgvNH+U= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773202318; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=81bUFjzMZ0UAey8kEEfi002gYCid7rITUSj9q0qKpdY=; b=T5tyb7x9JX6A+1e+UmKdTFgyuCy17SxSpc1eFVCsatwPOkB2B2y1EP/neI41mQ4MRNGtCCk6cw8V6DN2/zn/DSCYpEMvZ+0R8J3YIriwMrja/8qH8GmlXmoyDzDlJm4ZksjbeugM3f0bLqQuVWbxojA5E+8r8vl9sRTnCLVQT54= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1773202318665653.7823919795509; Tue, 10 Mar 2026 21:11:58 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w0AsJ-0000sF-Ev; Wed, 11 Mar 2026 00:08:47 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w0AsC-0000pm-Hx for qemu-devel@nongnu.org; Wed, 11 Mar 2026 00:08: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 1w0AsA-00005o-W8 for qemu-devel@nongnu.org; Wed, 11 Mar 2026 00:08:40 -0400 Received: from pps.filterd (m0279864.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 62B0Mxsp1265877 for ; Wed, 11 Mar 2026 04:08:37 GMT Received: from mail-oa1-f69.google.com (mail-oa1-f69.google.com [209.85.160.69]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ctpkfj7wn-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 11 Mar 2026 04:08:37 +0000 (GMT) Received: by mail-oa1-f69.google.com with SMTP id 586e51a60fabf-4176f39cea6so6737780fac.3 for ; Tue, 10 Mar 2026 21:08:37 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-4177e5ea30asm998656fac.10.2026.03.10.21.08.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Mar 2026 21:08: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= 81bUFjzMZ0UAey8kEEfi002gYCid7rITUSj9q0qKpdY=; b=oZsGap60N4GTLVKP t2K2P7C6lPjRaEGFVUzsLpIiYOfODQysiqzpF+qYeXSU3YrBJHmjZpDmoAnARp6V Im+I+PD2iSDK7GzNYrUSTS7EPaVo5G4RVXNYFFSg2pgH4AIUMx4yceZk39Xf5CkC Uj682Q3PBBkf4X6tIz4b/ilTOEfV6eUgGqb+DOHtRS/pDxZfGokErHdkwq9GPuQl p49qZA+OlVy/RSR8JuPGl2XyF5royv/4DbDlEr1gpDS8LFY2syqGuRM/ve84VCGf A7GLt+B7dh+TRBLupflWJc9btnmdAQ9BqBi/Z/CoozZRr4lhFJjdhNkszZJZQxxO KmV0Zw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773202117; x=1773806917; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=81bUFjzMZ0UAey8kEEfi002gYCid7rITUSj9q0qKpdY=; b=aUuO1HjzpHC99q6KMAFBH+eARrPnNM24JxjK9c0P9dOvgRThDwJgHMNuIpz1c1KA5Z IMy7ZV5ErdHT0oKNkZyyIwly4ejLPi0SNiPkIDTNEX/RjOXlbKGHn84UssSWD+BTs6A+ zsule78d8vHIzv2i8FGBNp4MTNVYrK8mFgbkiM0+pN5QR8FF1VYpj9SL6BQco8C5pdWA fdrVV0h9CdKsAP4OnYLbYgabKp5Dy8EcKY7LdTh4kadmZMnI6qvULG/edkzLTmSbFP4H LLdqz0FGjpX6vgmcjff4U0b/alE5nyknorK8giGkJFmb9nL5mHqDOsZSW5HW4zCvQ/V9 Hj1A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773202117; x=1773806917; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=81bUFjzMZ0UAey8kEEfi002gYCid7rITUSj9q0qKpdY=; b=gJynG2lvy0WZN+sS59ln6Ii+nav3gHRyxmToRXcD8ToLuJB3NYJ3ibucTGuRa44KXR 7JvbXZqIB4gZOnAbfnTfIWQlEfLejARA3S6e9HqFO9d16n8m5YUVEnBlhaW2TA30wFrv tKBjLqtM95FPZ4Vm+G9P4urJ2TOJxzAWZ/cMmtoCppSqsQ3J0ze1mh1C57vkKer3pkDl yhwD8TVA92UF6ga6SKTDBtXoZRIgNpETpv4uMxakQiVbXB6DHtR67MtD6hiQqOuUwdEH 5IZ8t3Te7OpgRRlzRCI17ZPOxzolo9QarocESS0QOHIXtIx+1260KnFU8LHksTXxLxdN 1oTA== X-Gm-Message-State: AOJu0YwryuUksA9NOoXjObEyuDA8KiK6xC7MZboPB6dWltLpd2eHIfzO V82TD2BDphKz/ZkYyOM6HiKbeNUjDdT7FhGfaoTYgisBpt4naV3K7XdcLdczenaRBR4NFMH8AAB pPSB8opONUawVf0TrGsCl5v63BuHG7Fd2gh18TxnnNkHMSPtq+MBVQNd5XaySUwDjZQ== X-Gm-Gg: ATEYQzysXMdqqZv7I1jheSyl1aHrZjGOvtNTItlzplbcqlj+MDYCgl4U1ERfxvpqpXu ELhlHC9bFi1goBSWTIV+tY9AmjGgwe955OD8B11N3IzfZAiA6TUz1p2City28lf8cN4WY00RmKa nkTx2lNUUNDjqzqbOH2qbttefv7ptEKbbAZE7DeImwhCthJaPbb3W/QsuoZdAZLjt9Vw79s4Zkh 2rxeEjb7tCFdCrlbg/9ip7OtmaLXXAoT9FCfpW/A+Ftj3llbTclvm/I3si1d0qkwBSBuWlCYxJy JWCc74CrLoAl4GMlLJ9q7QsbhC3ndniKuOmbug5Tag5kw9LqitAk45mfZdkjWUn9uiOAh39+91k xEyEMmT40Nb/9R2IVvv80TektxtiwHDUc6q9crAcxjeBh+lM5CEUnRgvr1/oKurZaQimXaw== X-Received: by 2002:a05:6870:d8cc:b0:315:b768:bd1d with SMTP id 586e51a60fabf-4177c5d42a6mr872209fac.6.1773202116679; Tue, 10 Mar 2026 21:08:36 -0700 (PDT) X-Received: by 2002:a05:6870:d8cc:b0:315:b768:bd1d with SMTP id 586e51a60fabf-4177c5d42a6mr872196fac.6.1773202116314; Tue, 10 Mar 2026 21:08:36 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, philmd@linaro.org, ltaylorsimpson@gmail.com, matheus.bernardino@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, Brian Cain Subject: [PATCH v3 22/32] target/hexagon: Implement modify_ssr, resched, pending_interrupt Date: Tue, 10 Mar 2026 21:07:48 -0700 Message-Id: <20260311040758.1068731-23-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260311040758.1068731-1-brian.cain@oss.qualcomm.com> References: <20260311040758.1068731-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: 75VIOOAxlCOV3IlEOlBtA9SrkNi5ydvX X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzExMDAzMiBTYWx0ZWRfXyF275X3FVzZH jTCTyyV0B25g02C4K5NuEXSpOprtvygkwBs1dm2FcdEOqbYlj8i3wCK30D0iKic20CXhd9frl35 YHWFMEvJl5YE8y9CumZnB1FTQNaD32+V/GJfgvvamfCqLX9aFj80h/clVOqQESfs5XYkLfhKvDi mLwR67rDAG9wAwbmuK+fZH4bf9OKglkOjYSzj/Vsz6lmsv44zsrJsY4ADnxRJ6jbbm8qqK9TguA OXZbxAorkOhM+Tiz2dLqz1CP8aEdVeR0S94qUvhWGxuG+sid03h29a+wvCc88W7vwr+rNi8TMH+ 69LgDeqx1jyZ4Xe3GBmyhZV/WOeboClTY39OBrMxm27S9NnSuBKlDgKHJvRLaT+OLZMa3ABPQzT abSxcrV7YuBX/F9jRwVPrOWvTEYg4/ilgXrVGq+nlBVpvCK6nzwZ7hfxjIzRNX5nPVgRvkRVVNF 6VAcYXweaezI0jHHrbA== X-Proofpoint-ORIG-GUID: 75VIOOAxlCOV3IlEOlBtA9SrkNi5ydvX X-Authority-Analysis: v=2.4 cv=Gq5PO01C c=1 sm=1 tr=0 ts=69b0eac5 cx=c_pps a=zPxD6eHSjdtQ/OcAcrOFGw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA: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=w_Ktf-yQGdqK2aTfpWsA:9 a=QEXdDO2ut3YA:10 a=y8BKWJGFn5sdPF1Y92-H:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-10_05,2026-03-09_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 malwarescore=0 bulkscore=0 lowpriorityscore=0 spamscore=0 adultscore=0 clxscore=1015 priorityscore=1501 impostorscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603110032 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.819, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.903, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1773202320197154100 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 36822219b4b..1ade66df9d4 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) @@ -1631,6 +1640,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(); @@ -1764,6 +1778,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 Wed Apr 8 01:18:41 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1773202385; cv=none; d=zohomail.com; s=zohoarc; b=TNJEzNaa0WKLO3Gs3uQ1Vc/OK9ePElFKd2JjwU+JUfWIUVLMNqe+nPUKkCxkXr8n2kS/H29Qahto9B8pHzHNs2be5v57J+z435VsjJVFZdf/AFp0pXBVRxeq1AVfnUayWiDPVmG9K6+muiCAnT13mvGGWy++bmyGKO0KAwpqjjk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773202385; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=dFZu/Z+47ChRFZONflI6rUJhVTzPEYlcTJK2zoxcJdY=; b=mZMpCdgm4lJ837MWvzxBo/0wUHyDWBbZ9BJp7NFM1xwwakCRjxT9opGsMQND9sPFsS1IVEuphVum+tXkccB5quFlBF+41gqrBjUaS1I1lgqNcBVjhxqlhgsO7eHIRAUQKs4Q3G1TFik5rO/8ZRkMItTlECRpzsRAGzXybECo8SE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1773202385269815.9384227547332; Tue, 10 Mar 2026 21:13:05 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w0AsK-0000tC-PQ; Wed, 11 Mar 2026 00:08:48 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w0AsD-0000ql-ST for qemu-devel@nongnu.org; Wed, 11 Mar 2026 00:08: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 1w0AsB-000061-LR for qemu-devel@nongnu.org; Wed, 11 Mar 2026 00:08:41 -0400 Received: from pps.filterd (m0279868.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 62AKOeMX140361 for ; Wed, 11 Mar 2026 04:08:38 GMT Received: from mail-oa1-f72.google.com (mail-oa1-f72.google.com [209.85.160.72]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ctg1muwgb-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 11 Mar 2026 04:08:38 +0000 (GMT) Received: by mail-oa1-f72.google.com with SMTP id 586e51a60fabf-40ad1c724daso61168391fac.3 for ; Tue, 10 Mar 2026 21:08: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 586e51a60fabf-4177e5ea30asm998656fac.10.2026.03.10.21.08.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Mar 2026 21:08: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= dFZu/Z+47ChRFZONflI6rUJhVTzPEYlcTJK2zoxcJdY=; b=d/4JIbtW09KySJ6r wRkmNrm3NumKbT4vhI3H5eAEJcPkR1sHnO/3Jl03i+Ap+uzbMJihFWUqk+53bKvQ HCnWyMqYPTzZtw529Ymokb+HICVnTH9P8PKM37xaxILxxDlhBcjwoQuTYTqeDixi U/YtOZOc+cZN7iFDNXbctrhhjl7YrXeFsXN1kC5FIFR34YQQXH8gTc0qD6APyAEi te/RsjQRUgib0ZV6ev22n6htQbpJLrVD4XSqiysaaVMC9ZpzUJl+7hnd7TzuraHH MjZenIc+j4Hw1riGIBJPlyyw0uWgfUd/oFPGhqqA2S0+AJcTSBOo6VheLtaG1Rj0 MkQ7IA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773202118; x=1773806918; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=dFZu/Z+47ChRFZONflI6rUJhVTzPEYlcTJK2zoxcJdY=; b=ZMQppX6UIfmSPoCupgOAFJRZAw2mM6LOEUff8URKAs0nB5CtyQ1kskOVFSE7JUrGRH pdOnms2ySx5EOYZ4wX4rWEL+YRujPdBtaNk4wTLL4u0IA/uSRsvjLSmh01fJbzIMT6Cg 5allsBQQiVrnoXujAUt0hIsfySb2wB4tgqweyJWiypP+Cnt3EC4Kz8OZh69L80ld/6E1 +Noyb0av3CZVPGED7WAnjUUqv7+FiDxU8l0DSC4am170nosPCJ2FTiJQPyCxkMV0TQey J/FPYlPlapCZYUMy9XLNnjaIZ3ZeO0liZt/eIFm288uArDPrg6gUlPa8y/Bk6TRa8Gya gwvA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773202118; x=1773806918; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=dFZu/Z+47ChRFZONflI6rUJhVTzPEYlcTJK2zoxcJdY=; b=Cf7JTDCojesWCkXFL8sZ/CuOKFBwrlOMSNC+05e14lW9qH3/XYBArSnQkYFuqpyZ8M aFFiFZFVwW4T1L9zxH76kZvBA67Jf635VtbHTcoUXYrQTPoLzr0MXy/TObaMqgQITbg5 dWTX//NZ2xZQe1vjk4rK1mIywNBkLqMy42ytD27gWuVNqm0vT8YZsAvUO8Y02E6qd4Mt +LonOOlQyUjPk52F6OgMkxx+3Ws39YajO6GV5SrlSSQFson7j1o+ZrRNSl88/OcJdrTo VbJGcDGbQALd+BEv0TzYz68EZU4kyH5HLlDNTz5kbZoCUIQ4+JAMJxJ2/OZfio9T2KHM c4Zw== X-Gm-Message-State: AOJu0YxR9C3g2a3HQzrzEV6QJICS8h220xDcIXZagRUwPnxHigJi2ZUC AoGPwVSDaq9G/57q9DGX88Jvg/zHfMfk/tsLjxmthKRvw3Ea7015a1LqnLrm7wCy7aC+LJspAnt 5koeonULkF7HWPyhACjqqUZzLfiLGDac6Ibu67vRYrcA1WEnqb2/AoeJUA6MwJld7ng== X-Gm-Gg: ATEYQzzqAYrzC6S42Htn2SQAMi4GMEvDKOdkwzYLwFbk19b+WTyFb9F9myOBGj+IOUd Z23OqH+F/QFB+2IGuMjaiIwZvn7AkaJFyY99yynDqgkUtYjEaaRELkm9RQ7bm9WltvsSDVzpp1q iGgfLVPSTvojhVtsDO7pVE18nzV5kwO+Mmh3h2V+Dk6hooiu9cQ5+7tQeO0SI8YfqxrSNrYI+zw Ta6424utE67N9LLrwnmQQF8rvvKk1Fg8rCBu+WJnrsTAHB2sgiSt891aHOtoNppdoYCobqJmtLu u26BD3RMCcZ01lLH7S3cedTUA/tapsc7e6Iur8wWwWH0FxJjQ9/5Mh7vF5jF4xQd2G857slUtHY UYClWLWpoqzueZs6G5E0TqqJ32CLHth9roDuAcWjS7Hn4Qvs6rd9E+f8iqPDjBVqwxaZZoA== X-Received: by 2002:a05:6870:2317:b0:3f5:5af:c9de with SMTP id 586e51a60fabf-4177c9fbfd2mr985678fac.51.1773202117995; Tue, 10 Mar 2026 21:08:37 -0700 (PDT) X-Received: by 2002:a05:6870:2317:b0:3f5:5af:c9de with SMTP id 586e51a60fabf-4177c9fbfd2mr985665fac.51.1773202117646; Tue, 10 Mar 2026 21:08:37 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, philmd@linaro.org, ltaylorsimpson@gmail.com, matheus.bernardino@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, Brian Cain Subject: [PATCH v3 23/32] target/hexagon: Add pkt_ends_tb to translation Date: Tue, 10 Mar 2026 21:07:49 -0700 Message-Id: <20260311040758.1068731-24-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260311040758.1068731-1-brian.cain@oss.qualcomm.com> References: <20260311040758.1068731-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=YOeSCBGx c=1 sm=1 tr=0 ts=69b0eac6 cx=c_pps a=Z3eh007fzM5o9awBa1HkYQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=imK-vThzYG-NRbbrpigA:9 a=QEXdDO2ut3YA:10 a=eBU8X_Hb5SQ8N-bgNfv4:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: _D8W0gn0MYfnk5sG2wP9PiN_yyLXgewK X-Proofpoint-GUID: _D8W0gn0MYfnk5sG2wP9PiN_yyLXgewK X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzExMDAzMiBTYWx0ZWRfX3BjdWbQCZS3j n49mI33cNtamnz7SX9Z3z5/3HiWDIqQczRdggggrj+QeFYurwUdnRIQd8ziswm4hLospEwXAVSs PsVuQ/P7qVUYQYOigkemKJAr8mJLFqKRdz4yB1CYw16PbLQYx0Ha+VH4pA3K/65KHIGdMXFw/W8 dsM9YviKfyB4SihaH+rT4J5J4EQfJDsZIwo75GZuALJk7zaf+w21HGkj5N0VVTCzrd8uyyS7kb/ OTj1qqamhJxLC7poSOe+X5vLWhkEW8IDsIxjVuAaM7P8jbwbNJmXYON2E4qGCtTX6cckgIzti72 avgsF8eg05JEHuWUESGBU+5uWpHmXO/6U4Lk0iTlBR3MbBDtSHOWiHWSZhFS3KwsHyRz2F/pInz J8av7sNfWhiu/hW10RD1Kq+jIJTpdUTJPRx6cME8QGhdORTURQZOEdqoD9vnsxCIZjEuHLEXMkf DuFWSNNOUIPmB9I4ikg== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-10_05,2026-03-09_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 clxscore=1015 spamscore=0 bulkscore=0 suspectscore=0 priorityscore=1501 malwarescore=0 phishscore=0 adultscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603110032 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.819, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.903, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1773202387191154100 From: Brian Cain Signed-off-by: Brian Cain Reviewed-by: Taylor Simpson --- target/hexagon/translate.h | 1 + target/hexagon/translate.c | 102 ++++++++++++++++++++++++++++++++++++- 2 files changed, 101 insertions(+), 2 deletions(-) diff --git a/target/hexagon/translate.h b/target/hexagon/translate.h index 82b327312ec..4e090565aac 100644 --- a/target/hexagon/translate.h +++ b/target/hexagon/translate.h @@ -85,6 +85,7 @@ 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 e4d4dad8ffd..953b34b7891 100644 --- a/target/hexagon/translate.c +++ b/target/hexagon/translate.c @@ -272,6 +272,16 @@ static bool check_for_attrib(Packet *pkt, int attrib) return false; } =20 +static bool check_for_opcode(Packet *pkt, uint16_t opcode) +{ + for (int i =3D 0; i < pkt->num_insns; i++) { + if (pkt->insn[i].opcode =3D=3D opcode) { + return true; + } + } + return false; +} + static bool need_slot_cancelled(Packet *pkt) { /* We only need slot_cancelled for conditional store instructions */ @@ -285,6 +295,90 @@ static bool need_slot_cancelled(Packet *pkt) return false; } =20 +#ifndef CONFIG_USER_ONLY +static bool sreg_write_ends_tb(int reg_num) +{ + return reg_num =3D=3D HEX_SREG_SSR || + reg_num =3D=3D HEX_SREG_STID || + reg_num =3D=3D HEX_SREG_IMASK || + reg_num =3D=3D HEX_SREG_IPENDAD || + reg_num =3D=3D HEX_SREG_BESTWAIT || + reg_num =3D=3D HEX_SREG_SCHEDCFG; +} + +static bool has_sreg_write_ends_tb(Packet const *pkt) +{ + for (int i =3D 0; i < pkt->num_insns; i++) { + Insn const *insn =3D &pkt->insn[i]; + uint16_t opcode =3D insn->opcode; + if (opcode =3D=3D Y2_tfrsrcr) { + /* Write to a single sreg */ + int reg_num =3D insn->regno[0]; + if (sreg_write_ends_tb(reg_num)) { + return true; + } + } else if (opcode =3D=3D Y4_tfrspcp) { + /* Write to a sreg pair */ + int reg_num =3D insn->regno[0]; + if (sreg_write_ends_tb(reg_num)) { + return true; + } + if (sreg_write_ends_tb(reg_num + 1)) { + return true; + } + } + } + return false; +} +#endif + +static bool pkt_ends_tb(Packet *pkt) +{ + if (pkt->pkt_has_cof) { + return true; + } +#ifndef CONFIG_USER_ONLY + /* System mode instructions that end TLB */ + if (check_for_opcode(pkt, Y2_swi) || + check_for_opcode(pkt, Y2_cswi) || + check_for_opcode(pkt, Y2_ciad) || + check_for_opcode(pkt, Y4_siad) || + check_for_opcode(pkt, Y2_wait) || + check_for_opcode(pkt, Y2_resume) || + check_for_opcode(pkt, Y2_iassignw) || + check_for_opcode(pkt, Y2_setimask) || + check_for_opcode(pkt, Y4_nmi) || + check_for_opcode(pkt, Y2_setprio) || + check_for_opcode(pkt, Y2_start) || + check_for_opcode(pkt, Y2_stop) || + check_for_opcode(pkt, Y2_k0lock) || + check_for_opcode(pkt, Y2_k0unlock) || + check_for_opcode(pkt, Y2_tlblock) || + check_for_opcode(pkt, Y2_tlbunlock) || + check_for_opcode(pkt, Y2_break) || + check_for_opcode(pkt, Y2_isync) || + check_for_opcode(pkt, Y2_syncht) || + check_for_opcode(pkt, Y2_tlbp) || + check_for_opcode(pkt, Y2_tlbw) || + check_for_opcode(pkt, Y5_ctlbw) || + check_for_opcode(pkt, Y5_tlbasidi)) { + return true; + } + + /* + * Check for sreg writes that would end the TB + */ + if (check_for_attrib(pkt, A_IMPLICIT_WRITES_SSR)) { + return true; + } + if (has_sreg_write_ends_tb(pkt)) { + return true; + } +#endif + return false; +} + + static bool need_next_PC(DisasContext *ctx) { Packet *pkt =3D ctx->pkt; @@ -447,7 +541,10 @@ static void analyze_packet(DisasContext *ctx) static void gen_start_packet(DisasContext *ctx) { Packet *pkt =3D ctx->pkt; - target_ulong next_PC =3D ctx->base.pc_next + pkt->encod_pkt_size_in_by= tes; + uint32_t next_PC =3D (check_for_opcode(pkt, Y2_k0lock) || + check_for_opcode(pkt, Y2_tlblock)) ? + ctx->base.pc_next : + ctx->base.pc_next + pkt->encod_pkt_size_in_= bytes; int i; =20 /* Clear out the disassembly context */ @@ -493,6 +590,7 @@ static void gen_start_packet(DisasContext *ctx) tcg_gen_movi_tl(hex_slot_cancelled, 0); } ctx->branch_taken =3D NULL; + ctx->pkt_ends_tb =3D pkt_ends_tb(pkt); if (pkt->pkt_has_cof) { ctx->branch_taken =3D tcg_temp_new(); if (pkt->pkt_has_multi_cof) { @@ -958,7 +1056,7 @@ static void gen_commit_packet(DisasContext *ctx) pkt->vhist_insn->generate(ctx); } =20 - if (pkt->pkt_has_cof) { + if (ctx->pkt_ends_tb || ctx->base.is_jmp =3D=3D DISAS_NORETURN) { gen_end_tb(ctx); } } --=20 2.34.1 From nobody Wed Apr 8 01:18:41 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1773202481; cv=none; d=zohomail.com; s=zohoarc; b=a6JjDhyW1RD6H1kX9FHahyQM2vLt31pReVtiCBaCspxiITnn7hh6ZkKyxThVzcX9Lii5i4DwSbGEVsIjO0/BHNXEhekFOG3lfAuutZGnNl4htWzA+qPotTAJEFR0p2e5oCHzvCjfoaT91fyYIPwuOTHg978c/El1u5bVtM+YAIU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773202481; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=/erZ7Kp1j5Si6RLiGiEgcK8gl4a/qDTcfd2Iu42KlGo=; b=arbEJEQCA/X65uW0gsT+PFFiB1JLKNMF4/u+kUXL3uOt8n/1KQmqcgbO4CcExkkwBRwjm9M1698Dc1/YDDQeIjVSwRiVjFTp29/6kwaktsM3PqODipsauys6RJWts7dTljwMWmH5F1eFRd3BWUUZdhfPLG+RuYyy5WbkzkRAND8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1773202481162963.2652130963065; Tue, 10 Mar 2026 21:14:41 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w0AsK-0000tF-R1; Wed, 11 Mar 2026 00:08:48 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w0AsG-0000rH-1u for qemu-devel@nongnu.org; Wed, 11 Mar 2026 00:08:44 -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 1w0AsD-00006d-Ui for qemu-devel@nongnu.org; Wed, 11 Mar 2026 00:08:43 -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 62AIutO43892938 for ; Wed, 11 Mar 2026 04:08:40 GMT Received: from mail-oa1-f72.google.com (mail-oa1-f72.google.com [209.85.160.72]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ctkmyu1g7-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 11 Mar 2026 04:08:40 +0000 (GMT) Received: by mail-oa1-f72.google.com with SMTP id 586e51a60fabf-41783c35253so800426fac.3 for ; Tue, 10 Mar 2026 21:08: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 586e51a60fabf-4177e5ea30asm998656fac.10.2026.03.10.21.08.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Mar 2026 21:08: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= /erZ7Kp1j5Si6RLiGiEgcK8gl4a/qDTcfd2Iu42KlGo=; b=JUxPBguVdulAR5Ll jxwKKsT0CJe7EYD9oJXAiZbGLHZVByLydRbp8emsqxfb4R1tBZNSjX+vFkIcqZfW +9jOxfxcJGXan2+cOL/m+mge1Wucw5TALUAsNG4QGgVZ93yel9rHxpSTq3UzQ2AK HEvE0v9Bks8OZuIoN0oV0AFQOi4unw2/+O/WZkQBSbhXliiwUaAaPeFhHoJKPqTR dLn1WUGPyUW5h8vg51CR1NRx6hqF4U8MTWzeIAHJJaDX0HGMevdWN/t25BinQ2md pzmp9esO1zVSBiojGQxpBbw8krqY2hHKXbONu9xbwhBuztLmogj8FlsnxYae1eqP KqUXxw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773202119; x=1773806919; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=/erZ7Kp1j5Si6RLiGiEgcK8gl4a/qDTcfd2Iu42KlGo=; b=GhTJbO7/XDZLX9LmCJDXxd6yRakkh9khSh1dyQdr089+3aXchKJTuzOLwMXufPw7UB zKfr+TxnYEIRIuT5LkMTdfF7wI+JAdz+YabjziNCDdoOyoV5/93YCJIFvQrfpzL4lC/s j4oERJ5GpSIeaTpvCRiJTKVoZN7Z0SGXf29VR0XJiyOAr4wrUoIu38W4SQfMJbCc0J/Z IKK9A17F+h4UW2VAHN+FDqn0JESxQc495fAU18fMqlkv0KnfUCTUXWDw63WY3TqBEBe6 0cGruhzHAP0b+jAALF4j6aKNJjYTfzjcJ8VyXtuwTwPgifM+roZAgwcvEewFAbrcUiE0 xW2Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773202119; x=1773806919; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=/erZ7Kp1j5Si6RLiGiEgcK8gl4a/qDTcfd2Iu42KlGo=; b=TGY+Vbsqy22RNYHBxkXJahZRqY6neTk/an6Y6eLPhqrYL5vRYI14UbDN5+LKh19pkC fdOQzzG7c43kpUcLtx3hd/HFUAARNynI/QWyrx2TNeBSmzdEWrpFA4lIJtTWsyhLQ5k1 +/1wUmIVEb2f3f9nZu7raIg4w3giwuTB2e7jUUTiS4yxv3Uw/DuyqL5lxbeVnKO2DVJn WwtTW09c4/5IIFdTZqiPEvOalgsSKqCilePjFYof/K6ADsjlxi8NKUEHABeBCOZGH/XQ XOLWkNGi4w/vuKWUemudXrfrx4QiMar44oW9vOrCRpuToBATtAY4nQFSJjKxP+EQpkN0 y5QA== X-Gm-Message-State: AOJu0YylKO6T8FT/mW3YjF5kgxGxvl3eU0U1tWVziPjQGQgpenEC+jYv lc1DlVMTszL+Arod+/WgwIJqmT/WPzZ1GDTqermGGyXDHtVDi8Cn/+s/EbyVjAjkQYjTtF1Qwip aewPsa6Z1mPDJZHMNV6IECPxPeI6zkIy+kRHd1JBFlf6RcCo/KU3h2UuQqIXK5ACf+A== X-Gm-Gg: ATEYQzxoQMXAm9QJd9hTaBc3xm01zVRV225WULcCgfn9eSZKPXkqo9df+xSScnEAmqb dUfI8mMMXb1ZchBWq+LfoE4icvg09cWfPNKiwKFrVmQLXzq15CQMXwe8x25STjpLd4vCLzu++jI YwMDBqorsf9QRIQ/X9nvk321MKSVp7F+rQZmCdDPPIf4X7t40hDbYJiRnX53HXE0Abn7WsOxj4F q4v+W6bUUrTHV1+/aQtlB5cBzVJsP2qdWIlgYioCLhvCRdBxO2X/jYZuRv9edR6zlcICbouq8MW 7ITATsnj/bVeF4smSbvApYjmzxQFk9ZMc0rMxHDbde73IKQ61R7v/inT5fCYtlnQZBivzB24gwE c6dZbwVoxUEVV/afUmnMPYDdyA+tMQBzzuGYd8FAbrQkvt+7gh0XjYjxzfL1mQdnQ7e4d4g== X-Received: by 2002:a05:6870:21e6:b0:417:3307:e1cb with SMTP id 586e51a60fabf-4177c8bd680mr844771fac.21.1773202119346; Tue, 10 Mar 2026 21:08:39 -0700 (PDT) X-Received: by 2002:a05:6870:21e6:b0:417:3307:e1cb with SMTP id 586e51a60fabf-4177c8bd680mr844755fac.21.1773202118885; Tue, 10 Mar 2026 21:08:38 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, philmd@linaro.org, ltaylorsimpson@gmail.com, matheus.bernardino@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, Brian Cain Subject: [PATCH v3 24/32] target/hexagon: Add next_PC, {s,g}reg writes Date: Tue, 10 Mar 2026 21:07:50 -0700 Message-Id: <20260311040758.1068731-25-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260311040758.1068731-1-brian.cain@oss.qualcomm.com> References: <20260311040758.1068731-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=RYudyltv c=1 sm=1 tr=0 ts=69b0eac8 cx=c_pps a=Z3eh007fzM5o9awBa1HkYQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yOCtJkima9RkubShWh1s:22 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=E45M5x4EOcbb2jMLJMAA:9 a=QEXdDO2ut3YA:10 a=eBU8X_Hb5SQ8N-bgNfv4:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-GUID: P-xCoPTsHIf4cTI1D8DeKNeOpr3px8KS X-Proofpoint-ORIG-GUID: P-xCoPTsHIf4cTI1D8DeKNeOpr3px8KS X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzExMDAzMiBTYWx0ZWRfX7pstPpKLE894 7s9L5JWxECnA9INAoNcNjyQvw9LeQBtBTeAAEKZMUUeaZgfsr8l54BwIQowcZk8ZW1Ig24PSrUH aX7NXgWqzrKpNkJpLpM3lRfv7cr1JyVfGGwWTWcEoxchqpGC78fq3cJYvGbf40Q6aH4ewY/MImf Bxq6Bsa00dyNiFjEnWTUJlr9PWs97C3L9PbIIOR5xwOBPJbwDzhwai2r0Mz788bpgEM0TK9SvLx LO7yrXnvHH6KK961hPZQnf5uOPLJ56Zq69X2jb+VrtAcY9RXsAS+wNoh+2gxrVwyFprztllA/Q6 FGvzpmW9V15fkabJ2Uya0KzjZ19fcYaJxSeOmzDJhfcVat6f1W5j14XzadFMfM3j8ltvybMM+zL yatsafc3iVwuWmj3/tF/96oCRBXJNEgBGaVq08cSzaxCK2ljyVPDudjVc3vmC25Didn6HWg/CdU 0N74eMfJ/TMUrjMJSLA== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-10_05,2026-03-09_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 bulkscore=0 impostorscore=0 malwarescore=0 spamscore=0 phishscore=0 lowpriorityscore=0 clxscore=1015 adultscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603110032 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.819, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.903, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1773202482478158500 From: Brian Cain Signed-off-by: Brian Cain --- target/hexagon/translate.c | 89 ++++++++++++++++++++++++++++++++++++-- 1 file changed, 85 insertions(+), 4 deletions(-) diff --git a/target/hexagon/translate.c b/target/hexagon/translate.c index 953b34b7891..79027e8a327 100644 --- a/target/hexagon/translate.c +++ b/target/hexagon/translate.c @@ -552,6 +552,10 @@ static void gen_start_packet(DisasContext *ctx) ctx->reg_log_idx =3D 0; bitmap_zero(ctx->regs_written, TOTAL_PER_THREAD_REGS); bitmap_zero(ctx->predicated_regs, TOTAL_PER_THREAD_REGS); +#ifndef CONFIG_USER_ONLY + ctx->greg_log_idx =3D 0; + ctx->sreg_log_idx =3D 0; +#endif ctx->preg_log_idx =3D 0; bitmap_zero(ctx->pregs_written, NUM_PREGS); ctx->future_vregs_idx =3D 0; @@ -584,6 +588,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 < NUM_SREGS; i++) { + ctx->t_sreg_new_value[i] =3D NULL; + } + for (i =3D 0; i < ctx->sreg_log_idx; i++) { + int reg_num =3D ctx->sreg_log[i]; + if (reg_num < HEX_SREG_GLB_START) { + ctx->t_sreg_new_value[reg_num] =3D tcg_temp_new(); + tcg_gen_mov_tl(ctx->t_sreg_new_value[reg_num], hex_t_sreg[reg_= num]); + } + } + for (i =3D 0; i < NUM_GREGS; i++) { + ctx->greg_new_value[i] =3D NULL; + } + for (i =3D 0; i < ctx->greg_log_idx; i++) { + int reg_num =3D ctx->greg_log[i]; + ctx->greg_new_value[reg_num] =3D tcg_temp_new(); + } +#endif =20 /* Initialize the runtime state for packet semantics */ if (need_slot_cancelled(pkt)) { @@ -744,6 +767,60 @@ static void gen_reg_writes(DisasContext *ctx) } } =20 +#ifndef CONFIG_USER_ONLY +static void gen_greg_writes(DisasContext *ctx) +{ + int i; + + for (i =3D 0; i < ctx->greg_log_idx; i++) { + int reg_num =3D ctx->greg_log[i]; + + tcg_gen_mov_tl(hex_greg[reg_num], ctx->greg_new_value[reg_num]); + } +} + + +static void gen_sreg_writes(DisasContext *ctx) +{ + int i; + + TCGv_i32 old_reg =3D tcg_temp_new_i32(); + for (i =3D 0; i < ctx->sreg_log_idx; i++) { + int reg_num =3D ctx->sreg_log[i]; + + if (reg_num =3D=3D HEX_SREG_SSR) { + tcg_gen_mov_tl(old_reg, hex_t_sreg[reg_num]); + tcg_gen_mov_tl(hex_t_sreg[reg_num], ctx->t_sreg_new_value[reg_= num]); + gen_helper_modify_ssr(tcg_env, ctx->t_sreg_new_value[reg_num], + old_reg); + /* This can change processor state, so end the TB */ + ctx->base.is_jmp =3D DISAS_NORETURN; + continue; + } else if ((reg_num =3D=3D HEX_SREG_STID) || + (reg_num =3D=3D HEX_SREG_IMASK) || + (reg_num =3D=3D HEX_SREG_IPENDAD)) { + if (reg_num < HEX_SREG_GLB_START) { + tcg_gen_mov_tl(old_reg, hex_t_sreg[reg_num]); + tcg_gen_mov_tl(hex_t_sreg[reg_num], + ctx->t_sreg_new_value[reg_num]); + } + /* This can change the interrupt state, so end the TB */ + gen_helper_pending_interrupt(tcg_env); + ctx->base.is_jmp =3D DISAS_NORETURN; + } else if ((reg_num =3D=3D HEX_SREG_BESTWAIT) || + (reg_num =3D=3D HEX_SREG_SCHEDCFG)) { + /* This can trigger resched interrupt, so end the TB */ + gen_helper_resched(tcg_env); + ctx->base.is_jmp =3D DISAS_NORETURN; + } + + if (reg_num < HEX_SREG_GLB_START) { + tcg_gen_mov_tl(hex_t_sreg[reg_num], ctx->t_sreg_new_value[reg_= num]); + } + } +} +#endif + static void gen_pred_writes(DisasContext *ctx) { /* Early exit if not needed or the log is empty */ @@ -1044,6 +1121,10 @@ static void gen_commit_packet(DisasContext *ctx) process_store_log(ctx); =20 gen_reg_writes(ctx); +#if !defined(CONFIG_USER_ONLY) + gen_greg_writes(ctx); + gen_sreg_writes(ctx); +#endif gen_pred_writes(ctx); if (pkt->pkt_has_hvx) { gen_commit_hvx(ctx); @@ -1255,6 +1336,10 @@ void hexagon_translate_init(void) offsetof(CPUHexagonState, llsc_val_i64), "llsc_val_i64"); hex_cycle_count =3D tcg_global_mem_new_i64(tcg_env, offsetof(CPUHexagonState, t_cycle_count), "t_cycle_count"); +#ifndef CONFIG_USER_ONLY + hex_cause_code =3D tcg_global_mem_new_i32(tcg_env, + offsetof(CPUHexagonState, cause_code), "cause_code"); +#endif for (i =3D 0; i < STORES_MAX; i++) { snprintf(store_addr_names[i], NAME_LEN, "store_addr_%d", i); hex_store_addr[i] =3D tcg_global_mem_new(tcg_env, @@ -1292,8 +1377,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 Wed Apr 8 01:18:41 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1773202372; cv=none; d=zohomail.com; s=zohoarc; b=mhTLJJZipt0lkx67Eh17heaYPDvru9PpzzgOq5sijDKaHOvWZZp0XN8v0678Wv4aQZ5CXKGo3dcFRnbqBzKTm+uLmUvNOHqcEnO7h0vG2aw3HHRAX0QiHg1JZquGS/NjIbOHlTu+mkx8wv618YhVg4laPWPfBM9+eJeF9zIEiWk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773202372; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=NRHeJLIWf6DpxvbvT8+bpoJCgjTEVUxUXaTL4xGT8ms=; b=Y91jpPg4OMUKsDHfDgNCSLrrl7slnbwhy/M9mB/kxNAm6IKrlodiswsnn/RWaMKKZlPeRiJEGnKR20XGgsxZ6kH3T1MZDLhbUHtOh/hDJlti/VZBPEeKnjjgODPIh2NCVfnngV+AX/jGS5ZpR4ovYhi+vgOm1YjJj1yk9Z/Efeg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 177320237221324.14717961109534; Tue, 10 Mar 2026 21:12:52 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w0AsZ-0000yg-6t; Wed, 11 Mar 2026 00:09:03 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w0AsX-0000xS-E0 for qemu-devel@nongnu.org; Wed, 11 Mar 2026 00:09:01 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w0AsT-00007C-DE for qemu-devel@nongnu.org; Wed, 11 Mar 2026 00:09:00 -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 62B3ORPq3760444 for ; Wed, 11 Mar 2026 04:08:46 GMT Received: from mail-oi1-f198.google.com (mail-oi1-f198.google.com [209.85.167.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ctk8uk4jd-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 11 Mar 2026 04:08:46 +0000 (GMT) Received: by mail-oi1-f198.google.com with SMTP id 5614622812f47-4670ec8971cso20349512b6e.2 for ; Tue, 10 Mar 2026 21:08: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 586e51a60fabf-4177e5ea30asm998656fac.10.2026.03.10.21.08.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Mar 2026 21:08:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= NRHeJLIWf6DpxvbvT8+bpoJCgjTEVUxUXaTL4xGT8ms=; b=mEmTADvR9kzpWg0+ SQ7gqPzTnDY5sxHXRbKjjhcWMA5CHcywqCasAfIK5TH4a6bWR4olCCvPFiP/Q5ic OXgfKRtrCrTFWmn0+D2itS1TEiGOJ5h2p2KAM6uIgevbuuKDpOF4fcrDnLQJhQbF LvYtUVz/jJIlLj4rjndHUyT301di8YHEc6+vyFNSAE6tDyeVAq41T4M6fB/XAgvo 4nNUhHAiGegROCaTj902p/6Vbnacy9aeEJYFY0f8puKJrh60P1N1J3LOsWNLBckT 3xw0+sYla9ucmFKv0ZE2HKjTQkkOoRGim2CuzZQ2lqrCybmlQoWKvy12mrCpVhpL 0UFIwA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773202120; x=1773806920; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=NRHeJLIWf6DpxvbvT8+bpoJCgjTEVUxUXaTL4xGT8ms=; b=MUBgQUZOjFhyiPbDzS9SZZ7Eoyb8u6ojmhprKKxzIWr9K4ijGv3GoCJSGAkrRm8Hb+ fS45v7Y3C9dqHCy1W+wFDgS8mIKj1T4ncmm7ruc15vzqnr/Uh3AhOuBD53kZMS+6oDoZ G9j1fweLT20IT5X26743dL4h7UfIIsdjztAhuT/yiwv4dWWsVNnoqqjOSmuduXGkSZeD /6NUlM3Uc3lXg8JTPAg/SqgBX/7Ncd0KcO8h/00CgR2fCCi2PvvGTHPFCiEnVQWj/9IH RkZNkd+fCiNTZTjR5yrCk9FdfDyxz2E235KBcsWsVjaDcE1hIZx6CVQKUUEV6k3Z/aTL 8LAQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773202120; x=1773806920; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=NRHeJLIWf6DpxvbvT8+bpoJCgjTEVUxUXaTL4xGT8ms=; b=V4nQONFYONjpEmfvzkJ9U/VS42AoLGNTsMteUCbbidvO0qG1dUKn2uuerj2g0cLPfs ggQ7fzxWqJQXHlJeCn94a8yip5JeQd1ChEEH3VPTLPrGcpPDzelSaRTid2fsAQVZyozT mr3DYJ2Bz9FOeN96h68lFFZnuD7pk+FwlrFaP8wJyNrkyWGSvY9esxBbB5jDCyhjTUJD KCo3VGI0BN7Nos4tPxLRbGoWx/J+Ani3SL6Tti9m8mIjcGiSs14bcPT+5rC0Zr5scCTJ GtqL5LipbZG+XoU7DqqV/Txwdj/qv7b5LRXtk3S1TUN8BXKJ7sPGMkdxIAB2nDI7vEQM BWhQ== X-Gm-Message-State: AOJu0YyGxeEe6nW0qALuh5jMA+pmvrMI796OvlUTsLnIMLe+yMNz7Dbx D7aE+5essFLCeqiGGWK97Vzvsrkn10y5tfRHivoBZ7T1guKUb4d6ekI1qxWAaCgVFMKjLyQw7RI 41pVoKg0IFH6KTkD2dlyIoAS/sUnUMU2ZWXRL9/N9wjP2OYCJKXSo+KfZF2TOtwTY1Q== X-Gm-Gg: ATEYQzy4m7mg04xse7WlP2vB8kRIiqKTfXnGLP134USkQlcspfiqgi0/9INxO+Z5oSd BfX7ZaW5YDtTdouySTOmL+fJjT6/ETQoD/mXFBxQSTTCOiQpkCDmJTTRbcrtWvUo+S2Ivz9i0ow 2/V6cuqOfCKNJjm33RgQger7px+x3Wk3/aIH4OmCrKjG7XLVEP3ocLXtk6iJGD/ShuJeXKxPhze PjlninhwMMMD2tdjBxwrOShhbFYQ7WwFyDZbv4ljCfxwbVI92k3OIb4NORvBrD7CPjwudn1VRlY A00TlQn6ODts04/PPlD0T4qZJbsorLPR413YAVyliEPTazWFzgnTO/3Aqq17JSI9JFc6sefnGem pHT3cIT0y5xZzvfxqtY1KfC+78KLh+iZVrSwK4/lpMRamweSaSCjLxI8BkrhIbmLfDHy9kQ== X-Received: by 2002:a05:6808:15a2:b0:467:226e:302e with SMTP id 5614622812f47-46733439ffamr663310b6e.21.1773202120570; Tue, 10 Mar 2026 21:08:40 -0700 (PDT) X-Received: by 2002:a05:6808:15a2:b0:467:226e:302e with SMTP id 5614622812f47-46733439ffamr663291b6e.21.1773202120183; Tue, 10 Mar 2026 21:08:40 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, philmd@linaro.org, ltaylorsimpson@gmail.com, matheus.bernardino@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, Brian Cain Subject: [PATCH v3 25/32] target/hexagon: Add implicit sysreg writes Date: Tue, 10 Mar 2026 21:07:51 -0700 Message-Id: <20260311040758.1068731-26-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260311040758.1068731-1-brian.cain@oss.qualcomm.com> References: <20260311040758.1068731-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: _dwKehHDeqlAZOpjfyIALPOqE6iIoGkW X-Proofpoint-GUID: _dwKehHDeqlAZOpjfyIALPOqE6iIoGkW X-Authority-Analysis: v=2.4 cv=YcmwJgRf c=1 sm=1 tr=0 ts=69b0eace cx=c_pps a=4ztaESFFfuz8Af0l9swBwA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA: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=TPnrazJqx2CeVZ-ItzZ-:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzExMDAzMiBTYWx0ZWRfX9OJfrBhggZTZ LlbHNccTfpdEKd5piTiRbbTYBI/LgSbhPq/4zbOZhfIaMTt1S8HyIrBXbqy/JmaJSkh7GCEGVmI XLjFEkip3sm1BJEPOX7BmFxzz7sD2su35LQXZI7i4UNO9tLBHvldkaV1JC3M4I6NCdCBxNxkrI/ SVOlh665lCks917pXUMezMWnbKXy3fKJDu17YpMoAsloT/LxgGf928vLnZw5hHCHpNPqIOhmyMR ZN5FMghyXF6562CS0duPEBZIu2DneI6l/y4IMkKxP/BeHmVjDC6x8wVgTkiz9MechnoLgWufAXX JsEULpQg0tpybcyHG2UDwCLt26MOCYHgUFsNT7l2ClTq/nmY4J5QNkkWhOleuX9TNwDuyBAHNYO 2ua5W0DaugiLB/OTChq7kdUQHm/bZZVVyYtMAYhts5nQV68hDKXbiBnmRUoeQmN4rn/S81eS0H5 5jhYll6mOEG8ijCXIeA== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-10_05,2026-03-09_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 suspectscore=0 impostorscore=0 spamscore=0 bulkscore=0 lowpriorityscore=0 phishscore=0 adultscore=0 priorityscore=1501 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603110032 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.819, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.903, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1773202374003158500 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 79027e8a327..ddf328e0a62 100644 --- a/target/hexagon/translate.c +++ b/target/hexagon/translate.c @@ -428,6 +428,16 @@ static void mark_implicit_usr_write(DisasContext *ctx,= int attrib) } } =20 +#ifndef CONFIG_USER_ONLY +static void mark_implicit_sreg_write(DisasContext *ctx, int attrib, int sn= um) +{ + uint16_t opcode =3D ctx->insn->opcode; + if (GET_ATTRIB(opcode, attrib)) { + ctx_log_sreg_write(ctx, snum); + } +} +#endif + static void mark_implicit_reg_writes(DisasContext *ctx) { mark_implicit_reg_write(ctx, A_IMPLICIT_WRITES_FP, HEX_REG_FP); @@ -440,6 +450,12 @@ static void mark_implicit_reg_writes(DisasContext *ctx) =20 mark_implicit_usr_write(ctx, A_IMPLICIT_WRITES_USR); mark_implicit_usr_write(ctx, A_FPOP); + +#ifndef CONFIG_USER_ONLY + mark_implicit_sreg_write(ctx, A_IMPLICIT_WRITES_SGP0, HEX_SREG_SGP0); + mark_implicit_sreg_write(ctx, A_IMPLICIT_WRITES_SGP1, HEX_SREG_SGP1); + mark_implicit_sreg_write(ctx, A_IMPLICIT_WRITES_SSR, HEX_SREG_SSR); +#endif } =20 static void mark_implicit_pred_write(DisasContext *ctx, int attrib, int pn= um) --=20 2.34.1 From nobody Wed Apr 8 01:18:41 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1773202369; cv=none; d=zohomail.com; s=zohoarc; b=RSZG2d+D99oT773a6Mcf0qTno4dt1HqjpCkhXZRuvk9DuM5ek+G5tP/bLMokMHtH/Y0mqq3mx4Ji7pu2nZpmkomq8y7MKK0B1LU1428+J88L09gdd2wUErfysV4gN2dDZYHXJl3Jxonj1VDvb47acaKrv525G3cmlut27OPD860= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773202369; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=w+MS5UPm+JQ0EsyLg+SkV/07FNFJcxRtrEXZ5eolDn4=; b=CyyHWZx7pGs6iuOfaKAw1qsO70fuxj0QzK0KCp85e+qudD2t7eQXPswUyjXyjzqYMsUe25phYjNjOP0JwA751ksWIPU8jqMmMZMeRhyjhAQQSIXL7KBWHvJz0KN8SgH7Sq5BpLUjo73K52A+GkEPl8l5ZJyfcKqjHjeLvsHwI6A= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1773202369444799.1411510823791; Tue, 10 Mar 2026 21:12:49 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w0AsY-0000yK-DU; Wed, 11 Mar 2026 00:09:02 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w0AsS-0000wk-J6 for qemu-devel@nongnu.org; Wed, 11 Mar 2026 00:08: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 1w0AsQ-00006o-Gk for qemu-devel@nongnu.org; Wed, 11 Mar 2026 00:08:56 -0400 Received: from pps.filterd (m0279865.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 62B3KZKf303861 for ; Wed, 11 Mar 2026 04:08:43 GMT Received: from mail-oa1-f72.google.com (mail-oa1-f72.google.com [209.85.160.72]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4cthjf3jm4-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 11 Mar 2026 04:08:42 +0000 (GMT) Received: by mail-oa1-f72.google.com with SMTP id 586e51a60fabf-417120d5378so27424076fac.1 for ; Tue, 10 Mar 2026 21:08: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 586e51a60fabf-4177e5ea30asm998656fac.10.2026.03.10.21.08.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Mar 2026 21:08: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= w+MS5UPm+JQ0EsyLg+SkV/07FNFJcxRtrEXZ5eolDn4=; b=g/2OuGp565zLuGKV LMUcKvlQRLAf1A4dae0rotMtEP7OakbHKkM/stzOXUrtCmz/6jlOIo7S+dn2wMBN guVoxozEKaR+SbL1BPjW20ik2zVEsUdNZtliFDIa1uvrcLQ2z11A86BAhAAhdvqs Sp4KFtM3bocPtZth/FOEVGEYG5gY8ek9SiX9UI6RTMLSiKsZBLhZTH1Naw0T9mK/ COQC6+P0096UFfvnICAXq8qZt0vbEIldExUcjB4ls2elLZKAY9HVoV6AAnz5fkhp gE/KaQfSh09ihX7IHSVKXQ2hZBOSj8lX8+n6VJWX0WMbv6VohOIXGhC1aT/BYdvo MflCdQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773202122; x=1773806922; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=w+MS5UPm+JQ0EsyLg+SkV/07FNFJcxRtrEXZ5eolDn4=; b=ERmJY0PKVQ00Cc79eBjAh+OIZFCccmrCZ5SH+bBAUHJXhG/rhCz2C6XYeq/J2Weu/D g9U0kl2N8oNea+Zah6fDgChy2mBaL+CKSNIRu+omA2OGbjOa5IvoD5f28HMqepGQ2nI4 wUJii87mJpXq0hqPaWOwP4E5ANxFjXR6ZXNZBj0NfA/2UVFmcXD+JB7V59aGxr+9OhZL Tj7tE9XzhvAkJA3BJ/I9VLEWf7VjIBgHke+yGTxu1CEB935LLZwAdcWJ1bJfP/R3Qo88 EyHkBq4cOPuqQigJ/yAf3FyL5pp24bWM8nMAKuYPVoOiOAKUrssP7njuQVPw7mHtUetp 0k0A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773202122; x=1773806922; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=w+MS5UPm+JQ0EsyLg+SkV/07FNFJcxRtrEXZ5eolDn4=; b=mLWHJmhKvPD1/2/Or2CjfHS8A3eyQcG5edfCcIod12vd3aF+QaATXOCjSSKmrZNcKF f0PKwj7nKESWsYich74if52G/+SW1zXrIWAMTCV2NmXnMMX6Cf9DrkX40Og1W6vh8Wz9 ooVD21wk8+xiblkquhVa3RLLPOuxrdJwz3n9HVNPBPjTRotdNamI5Gaggwv4M0UdJZvN dxsEl63WWLzeKJcXCbIN0LrjJ8BE+wEQL6d3+3hyX2ZBNn9xZIytChZCf5nr4tiYJ7ir YIvYuMulffkFl7Im8ETIAtFTqISw+FaHA4nFDnbXXduUVpgMnwXUsG5zdeOAcUWdNgKt r3JA== X-Gm-Message-State: AOJu0YzP3I/mF1o18Z/Pq7EKMcdt7ot7C8QpWl5/ccYvqr9yadl2KaiN 7iojC07XPKSluZzpBf0lD8hOGLow9TVpcBV7rOQNkaD7r+ucc3iPMOrng1E5Xu7NPdiAU1Fd35I xPO7dYTgh9hMaXFvTLbLFQItnMnXSISdw7VSmngdR/r5gzNyNvQnsAjLbIGydPNH5WA== X-Gm-Gg: ATEYQzyzn7kDtJ4/17jfzZiFCJizCMtNhs/VulJccUCmfyZYx+8S7zZzZKqdiQn07yk xHk6mcXxFQyFKqTjBmcJmeuNgo+SXZoA2voMgsYsggB6ORApleX++gtD/9eBmikRAzizcli/KkQ dqLYCSRFqz31XlYuMCK4B9texDB6JUWDofZK1Brm5OZcJ9LLXXkkOBUWsOcWNI5yohk5cfh9fKa 6nQUcCO+/8f/rpO/G8lM/H9HWxqQb61a2k/JB8fluiqKHD4CcvUqiZrEjwamZp7wDh8NHmHnrnB B0xdd0yfPvNWGra+l5X/MjLFIwxDATZJWN1TADlzGFBnYD9YaJJsf/2XTRKPmqjiHhz7BOzPy+h fqhatYJ9i+C075Q7QTzWC68fjP0yNNaZTx9WWTkDBxzPPrPJzcMaEly4VBR1keiqsn1V6XA== X-Received: by 2002:a05:6870:d8d:b0:417:5828:ecd with SMTP id 586e51a60fabf-4177c95d144mr817352fac.46.1773202121870; Tue, 10 Mar 2026 21:08:41 -0700 (PDT) X-Received: by 2002:a05:6870:d8d:b0:417:5828:ecd with SMTP id 586e51a60fabf-4177c95d144mr817340fac.46.1773202121515; Tue, 10 Mar 2026 21:08:41 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, philmd@linaro.org, ltaylorsimpson@gmail.com, matheus.bernardino@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, Brian Cain Subject: [PATCH v3 26/32] target/hexagon: Define system, guest reg names Date: Tue, 10 Mar 2026 21:07:52 -0700 Message-Id: <20260311040758.1068731-27-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260311040758.1068731-1-brian.cain@oss.qualcomm.com> References: <20260311040758.1068731-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: PmgkJK9NMG8uW5bt8WEAcRfo4gCm1NjU X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzExMDAzMiBTYWx0ZWRfX6fAwo6bcGvHh MMYj0cLYISXYixL0URaZHVDaxQj6TCI5nq3ctNVyIamM8AqAzHNHrnSOmSllNWoUZPsz971Z0/3 yjeHMNzB/h1qp6vu604H2C4JsnAcC7n39jqI5N2vPQPIXggoqvDQH4F/yslnOkj6lAU0g/f3yAF /ICv45KgrTF/B5tc+lqSiOvtPrNO17+Ya2wPACgCySsDfEobiNli5h2kATtaMg0QJ6EvGrmccAe W5mlwRowR2JwVhE8HAyh1RRecpgVfAUBQR68w5CQ5wvJTL4NHkAkg3SxSVbCP1Guhg0MvyyKiqC XTPkzrc7yRwMGBMRT5lLloKZFK6zbX7LBOlZpWSwFldA2Mgz5NOYtwMeCZwQTl1Y6H+b4tGv7mk ZdJbR5bcUUZ5fsivkvyZGIdljTtUMUso9PFT0iqaulQ3BHC92LYpkV/FFUlKIE2g51JJdDWXI07 uNfpEK6uPL38flNh1Ew== X-Authority-Analysis: v=2.4 cv=A71h/qWG c=1 sm=1 tr=0 ts=69b0eaca cx=c_pps a=Z3eh007fzM5o9awBa1HkYQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=Um2Pa8k9VHT-vaBCBUpS:22 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=Y3CEZXcnQwYgoNz55sMA:9 a=QEXdDO2ut3YA:10 a=eBU8X_Hb5SQ8N-bgNfv4:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: PmgkJK9NMG8uW5bt8WEAcRfo4gCm1NjU X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-10_05,2026-03-09_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 phishscore=0 clxscore=1015 suspectscore=0 bulkscore=0 adultscore=0 spamscore=0 lowpriorityscore=0 priorityscore=1501 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603110032 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.819, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.903, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1773202370038158500 From: Brian Cain Signed-off-by: Brian Cain Reviewed-by: Taylor Simpson --- 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 cec06daed73..a19cdf84a92 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -92,6 +92,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 Wed Apr 8 01:18:41 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1773202381; cv=none; d=zohomail.com; s=zohoarc; b=Qugw1fil6UgHBeMWU7nqsARPLOR+hWjHqYIhQei6bzqrxPmYyh4ZGKjcnLBi/4hrSulJ+uYAeK6nRUBBkWLqBtwT/SZI8gK6vSEtlGxAaiKV7OUuifCgSlzxwoZmry0GM2DxNJ7Y3HVR0QsKi7WjsEN9gr4hWx8roDW3C5Ofq6Y= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773202381; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=O+dN2kXGoqOjKdDS99ZaXiN2+W4RtMQds+MjbkmGJ74=; b=l+ne+W2ld1HP/pVu7CrnZ3fc18NklLnecSFwwKbvKjwg0COWNSIjAeKFmtzXu/JiZnoiWHqulHsfaeo6lm/vDIlPmVrYIq5IH909jmAQb3Rn+MV2K0RWU34OSkaSsbLCzKWnCAyaE1/+I+UtRXUSx9zPinbRrE/8JVzbqZlYx6g= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1773202381713952.6356620182626; Tue, 10 Mar 2026 21:13:01 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w0AsL-0000tl-8s; Wed, 11 Mar 2026 00:08:49 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w0AsI-0000s0-NO for qemu-devel@nongnu.org; Wed, 11 Mar 2026 00:08: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 1w0AsH-000070-2Q for qemu-devel@nongnu.org; Wed, 11 Mar 2026 00:08:46 -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 62B3Ewii248694 for ; Wed, 11 Mar 2026 04:08:44 GMT Received: from mail-oi1-f200.google.com (mail-oi1-f200.google.com [209.85.167.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ctqv11swx-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 11 Mar 2026 04:08:44 +0000 (GMT) Received: by mail-oi1-f200.google.com with SMTP id 5614622812f47-466fca9c6ebso26154691b6e.3 for ; Tue, 10 Mar 2026 21:08:44 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-4177e5ea30asm998656fac.10.2026.03.10.21.08.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Mar 2026 21:08: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= O+dN2kXGoqOjKdDS99ZaXiN2+W4RtMQds+MjbkmGJ74=; b=CBuqDjKwp9Ym5VG9 LAgXBS7dPftF4r1UrpcAnGZRMoAyivyzXfSjPpncrTW6a+YXKSLoFYFkW02CU/Pb QDOJxp6PfKJyT4f4Mo38GsrwdlbhpX1gdk4tfiMZ9rx6uMohOecg8ADS+76YELwR rWAwf6L+y8wNh8ThW42oUjeB+grVvjEWD+Xy1lfzjWKTFEMK8kAf+KxSpIx1UfiQ h8eZEhDiZ95Mv7bXzMeocS/O9vcHAI2otWWZMfYg48kyZK8Bxskn6B1mSXQj4C2D 8+nOdiOP8Asq4xYzZEb+/LgmStuj0IR7qqLFiJlPRGq6UY3csdaH0UhTiQnn2rQz 3wrX8g== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773202123; x=1773806923; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=O+dN2kXGoqOjKdDS99ZaXiN2+W4RtMQds+MjbkmGJ74=; b=hKb5FB8X1cODQ0fAMJKWi0JbSwB9LQkWtkKclM0AyoXk9K+5i+9Q97mhzs5fQmBhg7 yISdj2YFAuS4mLGr4gASCfeUaQRZlyWR/KyBaG6W/Xbequ7l6F7BlNwimjuZDsxtOa6r 0CrBgqk731JDlxdE6B87Ou/1WRHrhs4WMtqHg2L4dsu0pT4jCvF90C7BtwZnRSdQtz/Q SgE1+wZiVF75/bnEoRsI93UXeZS6PcAP5sekYNamX+3P70H02v29EpGNKaeY/1mw2/B2 Nx4lEsD0t3p0bL50diFSTnCEj0eZZUN1XkwAheUVCsyCmi2+68x/bL8cOxa8YHyUY92N A8gA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773202123; x=1773806923; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=O+dN2kXGoqOjKdDS99ZaXiN2+W4RtMQds+MjbkmGJ74=; b=avZFcby9LNZrLL83n7xC1h66YsIeNl8qgPCdIiaan29p+xBVAATrMvJDq2QNEBCJCp nQwTbom855VtgT+uLYwnHGI9ImLdPV4exNfn33IpU46dhi3Wxk/pTxbH3sbRrbyAr8ys ZTPS3GNOv1g6YlJjUDNYs1sWPjSmdLIBKqKnV+brTIM90meBtHycY2g9cyjwBDR8kRD3 6vxQR7rO5Zbb/x0QoLL9DszaLUuM4LU72fL1pC9W4J3nR+SDMCDYT1T1R2Q7HWGTw4gw lBqkVC4uCqOBQJpUv3ByBqveynnNJsGhVEcB/RWq43swkA3b7V2W0hN0VNNWfbvjgUFu 9tcg== X-Gm-Message-State: AOJu0Yy3137MqA8bzKTdiiLDt+iJ6lrKGI9XaQK1AKheDuZHTYLoaT9D x19+baiFDBYDsz5pwwUA4kj3fkqZNQjqvPNLzEBndKdMh8nGI9AUH+lEmpLDW7FNtLwKl+gWaEV KyObLw4ewh9cuJOaR23Ez9e57jXPXU9ONzKNPwaAONd3sNOVpthFBWiFCu03RxGhB8g== X-Gm-Gg: ATEYQzybXVn1DQnH7IkV4gaVZDs1EFRV91VUcfikBeDPU8Ckqy6HRQ5fwcmfSewQp66 NrNgTtbLk27kUaXyXvSP0EbnIwECxJyHQzf8cqIkNHmja1SSbrHrySeEsQdUd517koGzOzPpVE9 8JHWpJTDHtoUuWQ4d7/afwTdSUujxYqykyuj4YjkEfiHB7FiEmT6MDvr7G+BoHs2RFMhGLqpGHr cCkZz/khM45Ddg0pxmqTuI7KobQR9Wim+CGZ7cFVmPU5OcGjoSVsw4vzUkZV+3MIWmhgU2J0Qxo ptEV1IEOU3vRyBNaA4MKN+jgxezXsb3kBxZj09g8uPvnyZja81bxvoBBmbS4CKGJ2/b2vw4h7I1 qohp5QdsnpV38MQPIrHn+6Y1+qUs04QgU9lseFRWznHbPt1ntbh2cTJR0FCprysMJmxAA1Q== X-Received: by 2002:a05:6808:1815:b0:45e:dbf9:61c7 with SMTP id 5614622812f47-467335b64c5mr875816b6e.46.1773202123348; Tue, 10 Mar 2026 21:08:43 -0700 (PDT) X-Received: by 2002:a05:6808:1815:b0:45e:dbf9:61c7 with SMTP id 5614622812f47-467335b64c5mr875804b6e.46.1773202122931; Tue, 10 Mar 2026 21:08:42 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, philmd@linaro.org, ltaylorsimpson@gmail.com, matheus.bernardino@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, Brian Cain Subject: [PATCH v3 27/32] target/hexagon: Add TLB, k0 {un,}lock Date: Tue, 10 Mar 2026 21:07:53 -0700 Message-Id: <20260311040758.1068731-28-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260311040758.1068731-1-brian.cain@oss.qualcomm.com> References: <20260311040758.1068731-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: AW1haW4tMjYwMzExMDAzMiBTYWx0ZWRfX0RpdmOHGkhCp Y0uhWEhgIf/f0GbdwPXYtxMCVxGJgX9Mw97FJHQrwSwjEY9UhNT308+1YpcJpPA2fEvLVWLnh5l WI+DX4eu2VTt6ZJX34Gays2i3MpxS95Yk1eZ4K9vLfuhJaasovjOVTdV2DUVprHhWD+n7IBJWnZ yhvM6yAO+5sSkX6Itx3IHX4faI0jBVXLorAAbSWcqw+4JvgLHCPwPjHUVS2QDIZqCqZMKViZsgS o3PyVY5UEncpE5875DVHb97FLP2kn7uwUg5YH7sfLiaxLfEzXSBaRg/ZQinELSNZolyxWAtGnko qxIJopcc0lkAHBaM/lhEYW4rspdGFdoCWllzXisPDfw7K3zTo8xgy1mPhMlIPWkY3oV4YXAGUtY sB+rODC4sqX3WENo4TGmqx5XRgW04u9n3oJLCtRFxSQk1Gp+vp/eztW7UTbXkpaW5Y3G/Lheq3x boMVknHCgI7cSt01tUQ== X-Proofpoint-GUID: RCo4sQYzzORK1RoJAoBcobwUcOwveq2w X-Authority-Analysis: v=2.4 cv=S5vUAYsP c=1 sm=1 tr=0 ts=69b0eacc cx=c_pps a=AKZTfHrQPB8q3CcvmcIuDA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=3WHJM1ZQz_JShphwDgj5:22 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=5qM_0fsqfvQKBOMFAjMA:9 a=QEXdDO2ut3YA:10 a=pF_qn-MSjDawc0seGVz6:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: RCo4sQYzzORK1RoJAoBcobwUcOwveq2w X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-10_05,2026-03-09_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 impostorscore=0 lowpriorityscore=0 clxscore=1015 suspectscore=0 malwarescore=0 adultscore=0 bulkscore=0 spamscore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603110032 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.819, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.903, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1773202383151154100 From: Brian Cain Signed-off-by: Brian Cain Reviewed-by: Taylor Simpson --- target/hexagon/sys_macros.h | 3 + target/hexagon/op_helper.c | 117 ++++++++++++++++++++++++++++++++++++ 2 files changed, 120 insertions(+) diff --git a/target/hexagon/sys_macros.h b/target/hexagon/sys_macros.h index cbc857fa2f5..37aae71adce 100644 --- a/target/hexagon/sys_macros.h +++ b/target/hexagon/sys_macros.h @@ -146,6 +146,9 @@ #define fSET_TLB_LOCK() hex_tlb_lock(env); #define fCLEAR_TLB_LOCK() hex_tlb_unlock(env); =20 +#define fSET_K0_LOCK() hex_k0_lock(env); +#define fCLEAR_K0_LOCK() hex_k0_unlock(env); + #define fTLB_IDXMASK(INDEX) \ ((INDEX) & (fPOW2_ROUNDUP( \ fCAST4u(hexagon_tlb_get_num_entries(env_archcpu(env)->tlb))) - 1)) diff --git a/target/hexagon/op_helper.c b/target/hexagon/op_helper.c index 1ade66df9d4..89712bf8e09 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,120 @@ 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%x, 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 %d attempted to unlock k0 without having the= " + "lock, k0_lock state =3D %d, syscfg:k0 =3D %d\n", + env->threadId, env->k0_lock_state, + 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 Wed Apr 8 01:18:41 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1773202331; cv=none; d=zohomail.com; s=zohoarc; b=K2KbVbPvzMChzIaGdmLxjSS8zV7/TE4mRFSkkmlo92ex8vAtELtzttQt2JIKGsNWXPj70LshIjYoUPPKL+YeyTnPipMEd+KS2wnWWZ2Zuw9BIphDKZZk7IZFw+a/HV+8Gg1KQKEGngy/12jMAi/vRSoV3/LJQaon5E3/SZZZ4oI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773202331; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=ff4FH4KD/KqDDp9J54RDLlHX3Ej/XN2N2unxc6XHPMI=; b=PM8h+i0twmjiXqzVebJt42fOMl7xmxpBWVuhTSQaazeT5q9/6LtcwkcyMPQJSQAFCNq+3wtsSGqBCfxvKwoKcxUiRwPYHv+iO/73AUOENIlVwumzn2wckDd5iAWovX4QwIbnakP/e4ENnCAmm99VIKVeUFpbLzJ0iEzIa3+arJg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1773202331694401.23130668699696; Tue, 10 Mar 2026 21:12:11 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w0Asa-0000z5-76; Wed, 11 Mar 2026 00:09:04 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w0AsW-0000xE-Hp for qemu-devel@nongnu.org; Wed, 11 Mar 2026 00:09:00 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w0AsS-000075-G8 for qemu-devel@nongnu.org; Wed, 11 Mar 2026 00:08:57 -0400 Received: from pps.filterd (m0279869.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 62B3PlB12179858 for ; Wed, 11 Mar 2026 04:08:45 GMT Received: from mail-oa1-f70.google.com (mail-oa1-f70.google.com [209.85.160.70]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ctqvsstgd-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 11 Mar 2026 04:08:45 +0000 (GMT) Received: by mail-oa1-f70.google.com with SMTP id 586e51a60fabf-415e1e9aa5dso63639971fac.0 for ; Tue, 10 Mar 2026 21:08: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 586e51a60fabf-4177e5ea30asm998656fac.10.2026.03.10.21.08.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Mar 2026 21:08:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= ff4FH4KD/KqDDp9J54RDLlHX3Ej/XN2N2unxc6XHPMI=; b=p0a6G6XA3d4tqzLV YTRjWtS3R3f8u2sLzM95fK3Z8TbFlI4WJeShxHKYFbbNyzEIXNeImp5CIo0rcA4B H8QYf9yRvYkLpVlThvyd/ZLImUCsys0KCXWSzvw2CMo1iRWD8poQoD8DiDw2jTgD jARrqaNLmmBQnmo9rGdh5O3CNy/tCHVePMcf0C5vkHyhS0+QbtSdPi4DVfEqnkhj PEIBwrmJj/WQpvB4jUfCHmb2mCXO4TOopYgBJP5FWYLoM+VefDkxLCUsXll1xF1Y pkODRJ9k10coVHSj33Bp0PQ56sE1jNW97IDl+4QsQB8JGjYNELUAxel3APA6Jq6W RAmWIA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773202124; x=1773806924; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=ff4FH4KD/KqDDp9J54RDLlHX3Ej/XN2N2unxc6XHPMI=; b=ZxEFdkBkzc56NwwZJ9UgQ/jdEWGtluOg3nvgzc9GrFYrC7B4MrOomCdIm0HxAmuBV2 PZhe3esRRO7ix2zadZu/4h9HnVLbYhJycPffKpBaDyZQ6pchq9Qs5gFY8wqe1ze7prxg b1ghKSSftSGsOhrnoRCssusowFO8q0VbH0Hnaktt2kgFot3f5WxcZwh2mxbDb5oMr4ah fnmwdS1wmlgGdVWy/wkaNwY9BMAd8inzzlee0locAXN3ql/ycGNWOrwVDSA9i6PZKu9Z S0HuTAuD57s0REzA3waKbNuwRSO65/0daXQfDGvkMcngSlv3CQ8M7GxXq5FyEfJ45eJQ ZLXA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773202124; x=1773806924; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=ff4FH4KD/KqDDp9J54RDLlHX3Ej/XN2N2unxc6XHPMI=; b=gvbJS08/gUoAufQOmiyrE+Fpa/DVrcSzECvghD9Ivbpfzas1sDi7j4PiKa0mhQSWkZ HkJhfiYWYO+8Qk1QeWcyyAqGq0ejIl3FB5G+GCGxJsewgFrInsTsa+XJjl2MnnyJvjHX Miq2xwzESC3+h/V7AtJgZ8yOImuwDxnV0P2UjCqO2P6isFIuVb9YZx7b3oY0sl0DAjrm ZWKlfUw3KMRg5ws4Op1l+VhRUA+WTlumbr3A4+jfuM0x3Ui3PwAE7UP9nwSKqdkyZE7S zQyyXvnjorfesOYxiNFZJGCASlrIJLWATM5nKML75dh8iIyM43bohFp8yAmxaq8w75G9 mlwQ== X-Gm-Message-State: AOJu0Yx3paEMRkznyH9mgVwa4MxI41gIOSqXw0lePJkxG0znQCj8WbAl o6pjloSXUrLEewhEX9wGTBXE+0zdKU/0kLRYMgTR/v+Bppxef2tDBUR9KFEPoJxjDXoK/PXGhyQ 45/1wWlhNsgL41zFwsrQPFHdFTnxxfuWs0ihNtIyoP5FVsHWvNl5tiv0AX+u27D6AoQ== X-Gm-Gg: ATEYQzyEm9Z6Okz+cletqV6EuXq7vNLf3MQasl0mRqtVh6El3V6CHv21x56ANt03MvZ yioHHbRQVusPMKPAf7IR6IEGlUYKSQAE1MABNCtvTgjprl4CscRbhJA++nUski77kJdgKPhUrlt M5bfM7CheK1Gd6WBtOSj2X8WCu8Bb/Vj+9seTI3YziFIIi6VwXCzHhDOKxWJSj5Uz63tpQ188Y5 NMmido6inrYB9IQSzDfbUHaAI/9jkplIIfcTGHGlOU1enpEMyXv7EzZvFxNDUVjB3g2xXGuvIIC kVpDybqQTq4Ss6/VyKRYbkhe7y3RXt8tOdvq477AmOKf0m77tf1Zr00aC0CQX/0aHM0yH+PIzj4 k9c5fLvVmbIAL9DElKO9Ut8S4va6nAKuhv3jM+Wdu4IfoBAViuNJM/oqvXwr4twJCwZUyWg== X-Received: by 2002:a05:6871:5d05:b0:40e:dadc:4a01 with SMTP id 586e51a60fabf-4177c969755mr916488fac.46.1773202124537; Tue, 10 Mar 2026 21:08:44 -0700 (PDT) X-Received: by 2002:a05:6871:5d05:b0:40e:dadc:4a01 with SMTP id 586e51a60fabf-4177c969755mr916468fac.46.1773202124077; Tue, 10 Mar 2026 21:08:44 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, philmd@linaro.org, ltaylorsimpson@gmail.com, matheus.bernardino@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, Brian Cain Subject: [PATCH v3 28/32] target/hexagon: Add PC to raise_exception, use fTRAP() helper Date: Tue, 10 Mar 2026 21:07:54 -0700 Message-Id: <20260311040758.1068731-29-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260311040758.1068731-1-brian.cain@oss.qualcomm.com> References: <20260311040758.1068731-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: AW1haW4tMjYwMzExMDAzMiBTYWx0ZWRfXygdR5CR269sR dvT7K7rMdMYNQa8LZh1DYPZvVDeQrbkUapYv85FAqIRKeAXy0uc0SEuu+Sk2hGi1eEvCaFOCuBC eC3FpmGRUtUEiTmYfxNx4REih3Iw8i9HQSRjJBnYqlheBpZEA7zlyAszYy8C3qGcsN64Uu0O58G MMJus8GTaYba+C5/vahT+vSpqRwJl4LxFjnpIPp9lYmxmdRms2brTHfoPb8lV8yoCxrNV3BTmNN ZvJSOHtazeVPlMQrg7zA/zNgY7Gfr8imLL4bBrDJu5IVBS0gJn27QAHC5yIEHVn6E+ZRop+dlnR NcS7NvGMVhw0dmitvfXOSdk5rRk1WynqU/phDLO7o62JMfvMZNoGfD/eVDP9g5hvDDJwPQwYXkk i1tudpTiqUltNYurmL5REIuub3E+WlAZP2kl2DCOy5eaQE1kPAH10Oi8tJKvAelJLZ2C82JmYPR AUjjatMNzLJTZBp9A5A== X-Proofpoint-ORIG-GUID: 7qmXktXxaTmG7c0jB8ZgiUVYTsL1Pmim X-Authority-Analysis: v=2.4 cv=Lo2fC3dc c=1 sm=1 tr=0 ts=69b0eacd cx=c_pps a=nSjmGuzVYOmhOUYzIAhsAg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_glEPmIy2e8OvE2BGh3C:22 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=4FQt9sIIQT5CW9ciUtIA:9 a=QEXdDO2ut3YA:10 a=1zu1i0D7hVQfj8NKfPKu:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-GUID: 7qmXktXxaTmG7c0jB8ZgiUVYTsL1Pmim X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-10_05,2026-03-09_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 clxscore=1015 impostorscore=0 bulkscore=0 malwarescore=0 phishscore=0 lowpriorityscore=0 adultscore=0 spamscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603110032 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.819, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.903, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1773202331800158500 From: Brian Cain Add PC to raise_exception helper Replace the fGEN_TCG_J2_trap0 macro override with the fTRAP()-generated system helper instead. Signed-off-by: Brian Cain Reviewed-by: Taylor Simpson --- target/hexagon/gen_tcg.h | 7 ------- target/hexagon/helper.h | 2 +- target/hexagon/op_helper.c | 10 ++++------ target/hexagon/translate.c | 20 +++++++++++++++----- 4 files changed, 20 insertions(+), 19 deletions(-) diff --git a/target/hexagon/gen_tcg.h b/target/hexagon/gen_tcg.h index bd04386d860..507d529c4b2 100644 --- a/target/hexagon/gen_tcg.h +++ b/target/hexagon/gen_tcg.h @@ -1369,13 +1369,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 89712bf8e09..3720f2679da 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 ddf328e0a62..e4a0993c88a 100644 --- a/target/hexagon/translate.c +++ b/target/hexagon/translate.c @@ -124,12 +124,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 inline void gen_pcycle_counters(DisasContext *ctx) { if (ctx->pcycle_enabled) { @@ -213,8 +220,11 @@ static void gen_end_tb(DisasContext *ctx) void hex_gen_exception_end_tb(DisasContext *ctx, int excp) { gen_exec_counters(ctx); - tcg_gen_movi_tl(hex_gpr[HEX_REG_PC], ctx->next_PC); - gen_exception_raw(excp); +#ifdef CONFIG_USER_ONLY + gen_exception(excp, ctx->pkt->pc); +#else + gen_precise_exception(excp, ctx->pkt->pc); +#endif ctx->base.is_jmp =3D DISAS_NORETURN; } =20 @@ -228,7 +238,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 Wed Apr 8 01:18:41 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1773202385; cv=none; d=zohomail.com; s=zohoarc; b=ZCjd3a7LhBTNtJKQfMWM8/38vpYwHn+O69MvJMkZ6ZmDTbHocq0/XZijzlTXsqWaFjd8CQBqdjbx3zLiH0w5KEVoAJbx8oNfqi0ZxQMJpb8VpVqNXiVVqzNLsCHHX3A6qyLnYXMFpLW2uqyHuj+qxPtV81rrAL7a7bsjwAqrh1g= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773202385; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=eDXxY8veDppPGZYB4pvyhydqmDwea2dSVqYJLsKwO3E=; b=UFmyzbZ1Ipr5if7F0q38vxn+wjrsAQ5hsPEtsXm92bs3cJPYwlHBQjA9jHz/P1LPd+Dv0T1VkhPTkKuAanTWUZteAHIscr3ljKyrzwJTOQAiDk/f3bO5M6L0g0DEcECvrhELOTUGFDsaYx+1pwywiSSgOgZKDIho6z9gWz3rkfQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1773202385837757.3528323708966; Tue, 10 Mar 2026 21:13:05 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w0AsZ-0000ye-5v; Wed, 11 Mar 2026 00:09:03 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w0AsX-0000xT-EY for qemu-devel@nongnu.org; Wed, 11 Mar 2026 00:09: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 1w0AsT-00007I-Et for qemu-devel@nongnu.org; Wed, 11 Mar 2026 00:09: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 62B1Jvwp509379 for ; Wed, 11 Mar 2026 04:08:46 GMT Received: from mail-oa1-f71.google.com (mail-oa1-f71.google.com [209.85.160.71]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ctppaj4yx-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 11 Mar 2026 04:08:46 +0000 (GMT) Received: by mail-oa1-f71.google.com with SMTP id 586e51a60fabf-40f09403c56so5154992fac.1 for ; Tue, 10 Mar 2026 21:08: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 586e51a60fabf-4177e5ea30asm998656fac.10.2026.03.10.21.08.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Mar 2026 21:08: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= eDXxY8veDppPGZYB4pvyhydqmDwea2dSVqYJLsKwO3E=; b=HW6kbCJVPrL99Qgh 5JAVKdOQV+D1mVg4lDievMM7ljQJHi7NQGmbu+4OhC0PGKsnrkO0A7bDz4c66HsR KLIULyucF9i0eznBUmBlAnOx/1K3+qa+YvuON2NvjRQ/v3OKD4EcNOCLX3drtq/Z HvJDrsvdY5XaoRsDcId8oZv2mQ7zFPVBL3LN0ivwmqR0te+12n8qerIZTOz5y0ez CQihVC97m0WTQARNF1W0ljrARpDio1UrJSOBYtxxPR1qkJ8E2AuMMqpK7gyvmBT7 1HBmqNqeLVKB3Ew7add42tX9XVmwWKHOt+bEpwAoqOmA1j4Ud53DEdRIQ+zf29qK 48nkFw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773202126; x=1773806926; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=eDXxY8veDppPGZYB4pvyhydqmDwea2dSVqYJLsKwO3E=; b=N6ngjrqE86jKhkEyBaqPXCdx14/3vkkZuiD3TfFDY+JwcmPT7C0Md8I4vWvECs0y2i uO+HNwDepck52K/oLxiPcvxI6Xq8Gk1aF6FXLH3XbXn6fJPFpHpLRj7UsaL2xuKTOpCM J6pF+Ls6PxN1BqGtEWgqYhos/3J6R2/QQp29mj5vrE+1JjnXKEtC6q53fJG9JyHWHfhj uz5M7zXiUEIx4XQz9s2bw7x0T8eCLw29XdvPP2IZmPGHjE2XxSkhi0JCBvHrmPdsOeYW GAOWOesTBwrWF/AtOF//Of2JZPK1/2GF/jETDj5/R2SMDywjX9NwitQ45LxCc5FO7wRu /mQg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773202126; x=1773806926; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=eDXxY8veDppPGZYB4pvyhydqmDwea2dSVqYJLsKwO3E=; b=tK1JaqxrjNVmetCXUpSr4C6ZhXKoFtAtFx56QZKBif775hq/i+2spzL2lagTX76ikf ueMkaJJZXukAmR2OqmwMK9rq+zvyRA1m/D3g4mvgLpmcBircpTeFvMZSM57Ceae0ZQAa VN6YARgSfKuWFrEF1wuYsTU3uYmNr+EfF1BPY6gypTfLX57rG/THDJwcbPI9Fw5UfsI5 EGNeR/y+6pTKycRnSWOC1N95luBKArsYFoCOSPvr/crm2NXtNo/FJZ6gEErbusdJYSs+ kjPB6wF0wBigvNC+G2ENTBiX6nre2AksDy0N1+MT67gJYcgikWA7kZ9HxKaWj95NlUnw NdjQ== X-Gm-Message-State: AOJu0YzT2A2nA0zXZLBsZDk+/Ku1zTpoXj68LKE9vR697CmBbuBfKDj1 bR9XIYhtqAfEkf39X3XUJyxTTCbZTDRxaWrBfKHF767yqgcIZzmpU4KqQDTeslC8E2Ur0PAfh7u tRk//+ZoBK95zg8WpGWSv72ZGW/SWMrq0NcpT9j3qENiZ9aVpIbiLvjwTXYBRValatg== X-Gm-Gg: ATEYQzycXHrrKmpWw9wlMEDI/duh84Z4qefQ3ZVIwIuW+1AIIrw9f2iwCTPuLe7fD5Y ci74IyjeblUNIVK4lLeVVmjuritSx6tAWao7JGK1kH+t+0KJdGiZK+jqGchUf1gfCY9i7S5nllp 57Af0cH1XweLe10N18uELNkBFmcSW9VrkCgCSAW9doLvYH2DN/H1ei13eHuI9M1WvUYiBy8T7tx wV281O1s4C0W7/89QE9iJRf6cXMeO9MhGV1ScbQiEHYXIWZQm0Uj975HmEU9d1rzBZDl8CfCKJJ UCxvFZNUMiM1iCTIKUOCdDIb+xl7v3vF/PUuIRsX8Akej9nuYV2JzLeERhQ5HAdsJ8n0jziOiOr FD+z5lr0dGC3MBv0DkJHksT8kH1HTvkqGa7JjQop7VU8+wqsKLQhMVJkDoj4YK1oSPoyHRw== X-Received: by 2002:a05:6870:a789:b0:417:3161:bfcc with SMTP id 586e51a60fabf-4177dc77bb7mr775474fac.5.1773202125787; Tue, 10 Mar 2026 21:08:45 -0700 (PDT) X-Received: by 2002:a05:6870:a789:b0:417:3161:bfcc with SMTP id 586e51a60fabf-4177dc77bb7mr775461fac.5.1773202125427; Tue, 10 Mar 2026 21:08:45 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, philmd@linaro.org, ltaylorsimpson@gmail.com, matheus.bernardino@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, Brian Cain Subject: [PATCH v3 29/32] target/hexagon: Add TCG overrides for transfer insts Date: Tue, 10 Mar 2026 21:07:55 -0700 Message-Id: <20260311040758.1068731-30-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260311040758.1068731-1-brian.cain@oss.qualcomm.com> References: <20260311040758.1068731-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: ggFzC54rJZbf63HKX5WebyoVrQC7Edpr X-Authority-Analysis: v=2.4 cv=D7BK6/Rj c=1 sm=1 tr=0 ts=69b0eace cx=c_pps a=CWtnpBpaoqyeOyNyJ5EW7Q==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA: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=vh23qwtRXIYOdz9xvnmn:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzExMDAzMiBTYWx0ZWRfXy7DEQTSigM9I 6a0hoU97mAainjIBn0lo/i0MHkMUNJeokCc0xrDiDcFyBTNVRYJfC/coyRI4mKz/zMwwGa5xrxp hGfBwttQOQfH+wJ4Yp6TI27XuxzicqHg1Yzu40jql6uFOmetvTBH0QBQjSpKGZROWwTh7SsYiH6 SQEiwRU5VAkrYdg0a9bELGrLT5KXnfiT0zEVLFCetMPbBFZs6Em26RNwsRPjQyUzAt+N19G7Tvd oGew4id+6bVboEqv2RRLTK0LAYbEH6Cldi9WF18cWbw7qEw77oI1QLfodusLxXXpRvS9HC2atAs XQwAVm2aJhnQqqKAkomPFxJ3UsKALXpP9KBQQunCCKUdt9j/tHWSL+nen/GYcIBUE7iwV7gbjYs L4lU1doT41P6EY7VSwFLBVCx7tK6U5fEDAgHecTHHREtO5DXVUou6QuWXpbibgs+Zh5xzt4cjaR iO0AY3ZC9A9KBOwIakQ== X-Proofpoint-ORIG-GUID: ggFzC54rJZbf63HKX5WebyoVrQC7Edpr X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-10_05,2026-03-09_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 phishscore=0 impostorscore=0 spamscore=0 bulkscore=0 malwarescore=0 priorityscore=1501 clxscore=1015 adultscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603110032 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.819, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.903, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1773202386019158500 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/gen_tcg_sys.h | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/target/hexagon/gen_tcg_sys.h b/target/hexagon/gen_tcg_sys.h index 04406db6a4b..c4d7c21b890 100644 --- a/target/hexagon/gen_tcg_sys.h +++ b/target/hexagon/gen_tcg_sys.h @@ -80,6 +80,31 @@ gen_helper_stop(tcg_env); \ } while (0) =20 +#define fGEN_TCG_Y2_tfrscrr(SHORTCODE) \ + tcg_gen_mov_tl(RdV, SsV) + +#define fGEN_TCG_Y2_tfrsrcr(SHORTCODE) \ + tcg_gen_mov_tl(SdV, RsV) + +#define fGEN_TCG_Y4_tfrscpp(SHORTCODE) \ + tcg_gen_mov_i64(RddV, SssV) + +#define fGEN_TCG_Y4_tfrspcp(SHORTCODE) \ + tcg_gen_mov_i64(SddV, RssV) + +#define fGEN_TCG_G4_tfrgcrr(SHORTCODE) \ + tcg_gen_mov_tl(RdV, GsV) + +#define fGEN_TCG_G4_tfrgrcr(SHORTCODE) \ + tcg_gen_mov_tl(GdV, RsV) + +#define fGEN_TCG_G4_tfrgcpp(SHORTCODE) \ + tcg_gen_mov_i64(RddV, GssV) + +#define fGEN_TCG_G4_tfrgpcp(SHORTCODE) \ + tcg_gen_mov_i64(GddV, RssV) + + /* * rte (return from exception) * Clear the EX bit in SSR --=20 2.34.1 From nobody Wed Apr 8 01:18:41 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1773202374; cv=none; d=zohomail.com; s=zohoarc; b=V2LKE8MnvG4HsXn7u0FA0ZehHyQ+8wIOOVcFUEAkVPfrz3CHwT0+EUFKxYFvVr9PV/mHdATTizdRF7f6+wHV+40d41mF4S1H+PFzc4hqzcmZPWARi+yKSPsZ7oLeu6K+LZpyoj/0bDboVMCrJ8pXaHWBGauelVZzY3GJiIKKjBA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773202374; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=mLEQN0ORwCpGaFZFwS98dzL1dd7XNm783qOe+zmq5uE=; b=Eiaae+zeQ1Noh1ITesKegSQ+Ai+ueTdN2lBMHm433quzOyak43AUpnpSIF9rZKUk9bZzA1Hpd8/zec3sswohKNQ0I5M4N8/q98JRPDP9bRjmmqe1AJTsyi6wwT3b3uhKBH4ipxF9YjJyrldW1nqG9gA68dmLN6ZbckeWKnfLrYI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1773202374806919.3446718989046; Tue, 10 Mar 2026 21:12:54 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w0AsZ-0000z1-Ru; Wed, 11 Mar 2026 00:09:03 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w0AsY-0000yA-5y for qemu-devel@nongnu.org; Wed, 11 Mar 2026 00:09:02 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w0AsU-00007P-Gd for qemu-devel@nongnu.org; Wed, 11 Mar 2026 00:09:01 -0400 Received: from pps.filterd (m0279870.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 62B2VNnA1572930 for ; Wed, 11 Mar 2026 04:08:47 GMT Received: from mail-oa1-f72.google.com (mail-oa1-f72.google.com [209.85.160.72]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ctqgk9v47-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 11 Mar 2026 04:08:47 +0000 (GMT) Received: by mail-oa1-f72.google.com with SMTP id 586e51a60fabf-415e1ea16b4so88401450fac.1 for ; Tue, 10 Mar 2026 21:08: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 586e51a60fabf-4177e5ea30asm998656fac.10.2026.03.10.21.08.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Mar 2026 21:08: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= mLEQN0ORwCpGaFZFwS98dzL1dd7XNm783qOe+zmq5uE=; b=lB4vWQsXwWUwNXzw Wpt3jk6TDeXmqC+XqViDwqI4FT810NsYcQcKLgDdWAnG0sy+nsgJZrihGxTykK8u hZGgpK3YodNqyp/WIrDN5A+ExgfpQ1zxIxdJjNnV9NZJhWKiLCGcG79YiYCJmlBa 4rxcs/FaV4SV90hWYdQdtIce6HmfeFzehEKp5oEDDJ17qg0la+1diosK3kWekeT5 kEvpR6cQNUp552J6fg5fWJwT+gYSmmoAzXmRQ9uOHzOgcfRlNtbmedL0DG/O0OGo cF5Kk4KH33cmqNA+9l9HG/sRuYL4GZAmMivX4uSWWJccTcsb8GmR2rVM6i7az3HG /JKT6Q== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773202127; x=1773806927; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=mLEQN0ORwCpGaFZFwS98dzL1dd7XNm783qOe+zmq5uE=; b=SXUDm0OLcb1xsHF25uvWw/IkEwbbKYfRZI1S+zM8qwFqo3rQAqaac2Zd/uBnpOt6C4 Guk3VL3tESsKrU8G9/n/1lp4Ug5u7z7tBF5pgHptCH4eTSfn0WGEVdfKLBiNDVeSDfnK MFCEyiBKZeFxaRursw1i/Q+oaF0PpF1jrbtbu8OqtZCR8DnW2Vw2QL1gU2eUGM3jmlFO j7ZOHKAe2x1CvYIGi5HWjb/wL3Un3F9HcAdIy9YeUgW5XYKAgh3xSjV0MsGUXKymTbXT QajZNU1PC17L2P8zTWNhoJYg1by2qJkSn9O0v2SyCRvvUa2IC0vI3B0TRQNaLDGtvcrq akiw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773202127; x=1773806927; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=mLEQN0ORwCpGaFZFwS98dzL1dd7XNm783qOe+zmq5uE=; b=CzsKlPR0+eAf0Tigw3cbtIv+d2WtIds5IafOZ6mssqhqzg77/kd0o+YoO07tL02CrV hvSpKJbWcL8ankKDUgR9n/K6+TurxAVIOe/N2MmB0EXaJ8KMSMcC9FKYBfc+r7pwPXrq WErbVuVNsjlwtSdODkEkQuFvzuamML1lZQu3TPAK+xrp5mNT5H0UmvFKLvo8fao73107 BH1a2hO4XpmVMfINqHKO6O7FMhULIBDkDYIkjtV/kmWN49nC9vyC++krnNVj6wweX624 D3yEFxYchtKJ1TujljaScW75NaYQ+YQVLEnneF7Ky/bpGblFEGv1F3sXwDSKwhTESCOo C5sQ== X-Gm-Message-State: AOJu0YzXPs/FnMEyrusIxJxjAMwxwuUTzh/Kjsrfip+6ZeRKiyXMHQX2 JDWqX39+83HoAy9LpuI2rA+AojevFmAPVyXna1SsLRVoQmeX4xQzyNj68qGXgpff2Qu5NrPUKJ2 w/X6qBJfBsqEuGiabsNdQKDFdKgyNoBn5dZgiwj0RC9IdybVWM+8bXPxecmRFIl++8A== X-Gm-Gg: ATEYQzwZE3m2neVjBkvN39t/ciMIJf4Ywy8PQ2f6/ixEtHEl29T392LFzfE6t5CkudB XfdG1iiPunYQGbNKwz/MtrZJhKNzMMgHj9aR3m/9j+ZEFtD+wFmU7V9ZdszcDtcnab2SfpJmGHi ddDT2aMH9sWAc1PW+ZAD5jIa0mxQy30fC7GpBCCLvcEbz1fPgS85NZsXVgwGiE7a8jl2rMIuY8y tuIysyvRkeww6MxgEWgSJJDxk9V6T9NLs9LwTw9u35mVOo6c85cv0F1t6pze4qAtV6TJ9/QM5Z0 s5mAgOzu36THcdtTErxor35lpujuIEvOpc6QmhoY/BhgrZgSkquc7YlFrzbkZI457nPwWDWJNis JF2ZvQiU/+fuk6G4/JUZjlkFXBgG3kdRWcNOT46lNO2H5mWdZhDIY89jfJhEjJab3hyozpA== X-Received: by 2002:a05:6870:2197:b0:40e:e7d4:970a with SMTP id 586e51a60fabf-4177ca9d4cemr899921fac.31.1773202126968; Tue, 10 Mar 2026 21:08:46 -0700 (PDT) X-Received: by 2002:a05:6870:2197:b0:40e:e7d4:970a with SMTP id 586e51a60fabf-4177ca9d4cemr899905fac.31.1773202126554; Tue, 10 Mar 2026 21:08:46 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, philmd@linaro.org, ltaylorsimpson@gmail.com, matheus.bernardino@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, Brian Cain Subject: [PATCH v3 30/32] target/hexagon: Add support for loadw_phys Date: Tue, 10 Mar 2026 21:07:56 -0700 Message-Id: <20260311040758.1068731-31-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260311040758.1068731-1-brian.cain@oss.qualcomm.com> References: <20260311040758.1068731-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: dvMMMhTlzCihfFoh7vtprd6tfpOD18Vn X-Proofpoint-ORIG-GUID: dvMMMhTlzCihfFoh7vtprd6tfpOD18Vn X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzExMDAzMiBTYWx0ZWRfX86GoRp9j7BUk MmZZZFD+GK/rV49A+83dlDCrThEM/Mq/N8HbghogEHyr7AkIeaC3g754kMQ7/gsqNn2Ryt3T0OG ZdPYttbgZVF88uJvl4qkRcifRzvPU+q1OFT0665siiPrvuZUgAF5irqX9SBwJxZyM937/lr1dR9 AV+zfioEBgwwirFGEKI4j+KAafGstHt+ycVvlopqZ8GYf6Yo+lhilYDDRkXnkXCQVT1gNEw7Wss Rr6i6zx/Wci9hIn1idd8kgsJC7U+9UFQWfMS6OKWumjcQit8gfYb8ZJbbGcFmF8J8TPHeSay2Tp hhqwCLBz9uSIAvWfKBS/KQ2nxLdQjOwO8VPKJjG/ZLJfmIW2C0RpP0Wd9Ge5hbnUnmBHTZ/FQA7 7B3R8InZZD53YeWgim/JtXzYNd02GnXMMSBadwSOUDGtWyRI+f8iZspBlVmsMac1nRDEb6vPX0z fKUpErP9IBGM5NM0gHQ== X-Authority-Analysis: v=2.4 cv=M4JA6iws c=1 sm=1 tr=0 ts=69b0eacf cx=c_pps a=Z3eh007fzM5o9awBa1HkYQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA: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=M_0_kNSAHlZdZebFLzYA:9 a=QEXdDO2ut3YA:10 a=eBU8X_Hb5SQ8N-bgNfv4:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-10_05,2026-03-09_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 priorityscore=1501 adultscore=0 lowpriorityscore=0 phishscore=0 impostorscore=0 spamscore=0 suspectscore=0 bulkscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603110032 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.819, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.903, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1773202376991154100 From: Brian Cain Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/hex_common.py | 3 +++ target/hexagon/imported/encode_pp.def | 1 + target/hexagon/imported/ldst.idef | 3 +++ 3 files changed, 7 insertions(+) diff --git a/target/hexagon/hex_common.py b/target/hexagon/hex_common.py index 9986f47114e..8ef8e36852c 100755 --- a/target/hexagon/hex_common.py +++ b/target/hexagon/hex_common.py @@ -264,6 +264,9 @@ def need_slot(tag): and "A_CVI_GATHER" not in attribdict[tag] and ("A_STORE" in attribdict[tag] or "A_LOAD" in attribdict[tag]) + and tag !=3D "L4_loadw_phys" + and tag !=3D "L6_memcpy" + and tag !=3D "Y6_dmlink" ): return 1 else: diff --git a/target/hexagon/imported/encode_pp.def b/target/hexagon/importe= d/encode_pp.def index 04e911f59c8..1c64495d519 100644 --- a/target/hexagon/imported/encode_pp.def +++ b/target/hexagon/imported/encode_pp.def @@ -384,6 +384,7 @@ DEF_ENC32(L4_return_fnew_pnt, ICLASS_LD" 011 0 000 ssss= s PP1010vv ---ddddd") =20 /** Load Acquire Store Release Encoding **/ =20 +DEF_ENC32(L4_loadw_phys, ICLASS_LD" 001 0 000 sssss PP1ttttt -00ddddd= ") DEF_ENC32(L2_loadw_locked, ICLASS_LD" 001 0 000 sssss PP000--- 000ddddd= ") DEF_ENC32(L4_loadd_locked, ICLASS_LD" 001 0 000 sssss PP010--- 000ddddd= ") =20 diff --git a/target/hexagon/imported/ldst.idef b/target/hexagon/imported/ld= st.idef index 53198176a99..4e1e5d5326d 100644 --- a/target/hexagon/imported/ldst.idef +++ b/target/hexagon/imported/ldst.idef @@ -203,6 +203,9 @@ Q6INSN(S2_storew_locked,"memw_locked(Rs32,Pd4)=3DRt32",= ATTRIBS(A_REGWRSIZE_4B,A_M Q6INSN(L4_loadd_locked,"Rdd32=3Dmemd_locked(Rs32)", ATTRIBS(A_REGWRSIZE_8B= ,A_MEMSIZE_8B,A_LOAD,A_RESTRICT_SLOT0ONLY,A_RESTRICT_PACKET_AXOK,A_NOTE_AXO= K), "Load double with lock", { fEA_REG(RsV); fLOAD_LOCKED(1,8,u,EA,RddV) }) =20 +Q6INSN(L4_loadw_phys,"Rd32=3Dmemw_phys(Rs32,Rt32)", ATTRIBS(A_REGWRSIZE_4B= ,A_PRIV,A_RESTRICT_SLOT0ONLY,A_NOTE_PRIV,A_MEMSIZE_4B,A_LOAD,A_NOTE_NOPACKE= T,A_RESTRICT_NOPACKET), "Load word from physical address", +{ fLOAD_PHYS(1,4,u,RsV,RtV,RdV); }) + Q6INSN(S4_stored_locked,"memd_locked(Rs32,Pd4)=3DRtt32", ATTRIBS(A_REGWRSI= ZE_8B,A_MEMSIZE_8B,A_STORE,A_RESTRICT_SLOT0ONLY,A_RESTRICT_PACKET_AXOK,A_NO= TE_AXOK,A_RESTRICT_LATEPRED,A_NOTE_LATEPRED), "Store word with lock", { fEA_REG(RsV); fSTORE_LOCKED(1,8,EA,RttV,PdV) }) =20 --=20 2.34.1 From nobody Wed Apr 8 01:18:41 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1773202377; cv=none; d=zohomail.com; s=zohoarc; b=JcqYhoZkOiajIKOm8Pa+cnnN/2m8CrycURHSh5Pt7eM857BrLjduwRg6/5Q6x0fdcVmU5bLtXrVQEFV0bdHE8fiu8dolvcMm3Yrq4U5BvmgALkwP2GJ6lnJyt8kVgFhRfB2FLTwsjOhaGOydmAbDYbs4w091sFP3tXfpZ3rmNkg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773202377; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=oJTXW5xClUnTu7Kz8Ux70TvRHcqnoEazBBycHHZzS5U=; b=GoKxNrwonHS8oigTCnnoJhVWqMLSiN1FP8cTiLwzIeo6FORZDa003Dl5o7f+H7ew6hxY77Y18xai9XeQrNoLtw+3V2KtuqMQAgD2/RQxFnasedXsAuCUrJKNKBWAQlK1fZoG/EsF+JfEILz0duMdKZ8VVVBCTao9G6cSf0cVW0Y= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1773202377667470.7722567310052; Tue, 10 Mar 2026 21:12:57 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w0Asa-0000z9-Bu; Wed, 11 Mar 2026 00:09:04 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w0AsY-0000y9-5O for qemu-devel@nongnu.org; Wed, 11 Mar 2026 00:09:02 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w0AsV-00007U-SV for qemu-devel@nongnu.org; Wed, 11 Mar 2026 00:09:01 -0400 Received: from pps.filterd (m0279871.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 62B2s8wY248601 for ; Wed, 11 Mar 2026 04:08:49 GMT Received: from mail-oa1-f72.google.com (mail-oa1-f72.google.com [209.85.160.72]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ctqv11sx5-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 11 Mar 2026 04:08:48 +0000 (GMT) Received: by mail-oa1-f72.google.com with SMTP id 586e51a60fabf-409698ea4dbso8254682fac.0 for ; Tue, 10 Mar 2026 21:08:48 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-4177e5ea30asm998656fac.10.2026.03.10.21.08.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Mar 2026 21:08:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= oJTXW5xClUnTu7Kz8Ux70TvRHcqnoEazBBycHHZzS5U=; b=WZUC6+t7C3xTZqJo hLH0aivyp1xhMIQOBb0mM7uoHCZfJ4DB2ZXdetn9+Zm3NsQ/FBgqYy9zozI0u/9Y on63zBxVS2kwgPsyORHZJKJweLaJjQWkzUPd0ztocty4Fe8XjD2svM5K+v31J9I1 YE/pCFLceJy+gDzwmlYviSLO9tQ4cPk1ZscPKMLPnSIs4e7EOtLmLbqmYtEjRD4/ ZdbZp71vT+CIDVQxYQtUFQVh39FcWVUkU+NynXpucFJVo9LxjZdqMNkguAiVZMTN Gol4k1lHBKSaCmIFRVsvCQbygZAmr9fq8kW0MPTHyb14yupBqcJbxco/cjSvM0kD yPbqFA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773202128; x=1773806928; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=oJTXW5xClUnTu7Kz8Ux70TvRHcqnoEazBBycHHZzS5U=; b=a4Rer0cHYLacQnSh1iNWFJT9/iJPNYAQtlXhvszOpEeyJpbfBNG0KvZC1Xpp7900xN t9RJ19iRFf7mdXXFAD5rETowU7OR3nAzyj2fEjRtV40o2JrdPI3Pr93s6CtzrtavxXuW 3knTVj8N0JGT0CvD3Cd4P/GcG5qOWXvc1uORWTssg9c+evH07iiLWODRsRDmQSr7hkjM oXElrtjNcFkb4J+khZATZcxP8WYZg8RbhY0t98DVwagd0RCkC1ZVxFUa2Sh7Wo9y/6/K rX9R0EgpVdficZADxCqP8Scr0rs1ngeXVAjl1vnog7A7HPWGJVKSgp1SwE8p279rZ+tX zGKg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773202128; x=1773806928; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=oJTXW5xClUnTu7Kz8Ux70TvRHcqnoEazBBycHHZzS5U=; b=W12cSz4ecO11lFCNtU+8Z8FvRSRP/EWIHMDoLjAe8Sasop9vVfcsWvauPhShC944tx p9SxECgG+mnQosGZH4WgHGq1VWWqDm+tXhMWjkaK26lvjv8l+JkCBkuYg62VvR8SBLZ/ Z7Ip37d25mNBQKFPEL8l0fcRr78vJhrCvxWOhT4fV740DZvVgeAPMzY61AST57O1KUbl 7cXhWRuODTNgp9+8bXWtIKDAnfDPTAyEdGlholwFTwCCPFbw0gMikR68AXHQynEtJXGJ 2ly4zTs+l05ei3rgFVL/Qgsep5yk0aUDT+gpTqDAbEdgZKKnhlHi7x+HKkHQhkgz0rXW db6A== X-Gm-Message-State: AOJu0YyTX/E+kuuqzkXDsCe4la7jihhBbUAUGoAbg6KooKv4IWKycTW2 ogY7QSZy21nyvxpRPjK8P7pan6F6OCLk+s9XacdHB9fEhslhIX/RjMVTIf2EMhhOBGtKmmu+gZt D53dJFshoxpfovNrvxBjEJxt/JAAUlkCMoyFKI/uKsGckrGxkU9/O1bcjGYvNJNsoPw== X-Gm-Gg: ATEYQzx/nb2tsGC/eF6WgmyETpr0+GAPbFSV+NNfnwqysWILFzQ2JaRnVJKh9NvPubO +dMpkbAn5UHs+VNcZHn8nPTiZT2fn986EeOjFlB6NLTW4pnp0K48BISbbewruMyUVqyeTVOZlvH Mu/PlJwNqXMidNtk1K5NmKOCQ9QV2xV8X5FCT/Q6z4zzbVBjUgTtUjUycA3paK6xavefh6mmzRh 0cQiclMUnY9RbzZugtUZlRu2JmfLS36e5eTelOPX5r8Su+UO75pUMsUJoNzw0KkzKUZ/oDafb6u 7rlda8VClTTNKStZyhaaGlaH50z4SuYrJJrPECHQIz2d5f/63aLp0gHIaH6fmcgUsLFAyE+II2q lLqwtmjBTAAvoaqjuXgAy+G4p+L6fvivjMwcckq4/7gfZ04kuPCnpFERtlNiHKjcMWo5EDA== X-Received: by 2002:a05:6870:d203:b0:40e:a9c5:5c32 with SMTP id 586e51a60fabf-417568b1e96mr3525606fac.8.1773202128196; Tue, 10 Mar 2026 21:08:48 -0700 (PDT) X-Received: by 2002:a05:6870:d203:b0:40e:a9c5:5c32 with SMTP id 586e51a60fabf-417568b1e96mr3525589fac.8.1773202127787; Tue, 10 Mar 2026 21:08:47 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, philmd@linaro.org, ltaylorsimpson@gmail.com, matheus.bernardino@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, Matheus Tavares Bernardino Subject: [PATCH v3 31/32] target/hexagon: Add guest reg reading functionality Date: Tue, 10 Mar 2026 21:07:57 -0700 Message-Id: <20260311040758.1068731-32-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260311040758.1068731-1-brian.cain@oss.qualcomm.com> References: <20260311040758.1068731-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: AW1haW4tMjYwMzExMDAzMiBTYWx0ZWRfX20F7JhLHyRyq Ez08C7+B2L4tx02nqa88agIs9X/1s5BoqO8St1blXVKDhnUhu31inrcmBoZQUhM2/pySjVd1GNz nJnR+9PG9hjqVAgC+3gTeFgVIkPdR+Laq2IASSjFvKsuE4F0yzrbiL1dDAeZ+BfwnaBT3r95K5q E1LECt0bZLBW51VZZyJjZcYW/mZ8Y0dAYyYmrJfpHH6SDhHIxGXqEUHOCIPYwpEDnNSDl2GdVRI Gw/wqAIYrEXK7GpQbNe1vTdbpy6AaUwus6AzXbcw4EwBb+lwH0Qb1SkwqleJ6qH/IQqJQgEz968 ZqpHy3gY4yVMFgjJ2YCWesGvd3sA7L9k3j7CkJm1nQhCTnJqzjB6McPsEhNMFjgEPj3G0QbHWv5 R2Ri+XL1+vgBEz6FwMEeKFXpZZ75nWA500fifUnHfgmrmHsTkTmjaYbRQu6GprBtTWv69jaunXs pUflcy3wvUsAPBAGqVQ== X-Proofpoint-GUID: KjqHCo_GhBuB5XPObC_M4YZ1-b_VIMQ2 X-Authority-Analysis: v=2.4 cv=S5vUAYsP c=1 sm=1 tr=0 ts=69b0ead0 cx=c_pps a=Z3eh007fzM5o9awBa1HkYQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=3WHJM1ZQz_JShphwDgj5:22 a=COk6AnOGAAAA:8 a=XzmyB_kLrSAsql_ziIIA:9 a=QEXdDO2ut3YA:10 a=eBU8X_Hb5SQ8N-bgNfv4:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: KjqHCo_GhBuB5XPObC_M4YZ1-b_VIMQ2 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-10_05,2026-03-09_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 impostorscore=0 lowpriorityscore=0 clxscore=1015 suspectscore=0 malwarescore=0 adultscore=0 bulkscore=0 spamscore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603110032 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.819, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.903, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1773202379017154100 From: Matheus Tavares Bernardino Signed-off-by: Matheus Tavares Bernardino Reviewed-by: Taylor Simpson --- target/hexagon/cpu.c | 21 +++++++++++++++++++++ target/hexagon/op_helper.c | 16 ++++++++++++++-- 2 files changed, 35 insertions(+), 2 deletions(-) diff --git a/target/hexagon/cpu.c b/target/hexagon/cpu.c index a19cdf84a92..f6a8b23d28d 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -770,6 +770,27 @@ static void hexagon_cpu_class_init(ObjectClass *c, con= st void *data) #endif } =20 +#ifndef CONFIG_USER_ONLY +uint32_t hexagon_greg_read(CPUHexagonState *env, uint32_t reg) +{ + if (reg <=3D HEX_GREG_G3) { + return env->greg[reg]; + } + switch (reg) { + case HEX_GREG_GPCYCLELO: + return hexagon_get_sys_pcycle_count_low(env); + + case HEX_GREG_GPCYCLEHI: + return hexagon_get_sys_pcycle_count_high(env); + + default: + qemu_log_mask(LOG_UNIMP, "reading greg %" PRId32 + " not yet supported.\n", reg); + return 0; + } +} +#endif + #define DEFINE_CPU(type_name, initfn) \ { \ .name =3D type_name, \ diff --git a/target/hexagon/op_helper.c b/target/hexagon/op_helper.c index 3720f2679da..457817b2e1c 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -1856,13 +1856,25 @@ uint64_t HELPER(sreg_read_pair)(CPUHexagonState *en= v, uint32_t reg) } =20 uint32_t HELPER(greg_read)(CPUHexagonState *env, uint32_t reg) + { - g_assert_not_reached(); + return hexagon_greg_read(env, reg); } =20 uint64_t HELPER(greg_read_pair)(CPUHexagonState *env, uint32_t reg) + { - g_assert_not_reached(); + if (reg =3D=3D HEX_GREG_G0 || reg =3D=3D HEX_GREG_G2) { + return (uint64_t)(env->greg[reg]) | + (((uint64_t)(env->greg[reg + 1])) << 32); + } + switch (reg) { + case HEX_GREG_GPCYCLELO: + return hexagon_get_sys_pcycle_count(env); + default: + return (uint64_t)hexagon_greg_read(env, reg) | + ((uint64_t)(hexagon_greg_read(env, reg + 1)) << 32); + } } =20 /* --=20 2.34.1 From nobody Wed Apr 8 01:18:41 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1773202152; cv=none; d=zohomail.com; s=zohoarc; b=RaRqhpu22fTXNcdZwPa3wP667izeJ9uDknw7yFSI4IcvS0A90kygl7bHQ/lLtiArCAtmIiE5ixR9LMSOXEHm4oAXH6a/9oArTmD5j/c4DJG0P65BII0o3PsC5fg7hDBHBhRKJc88c0mkLMV4yUb7+Tk5f38qH4gwNMkB4EgNg94= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773202152; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=elIb1JyNNjCVeFtEYY42K/CrYn15CDxzMQe5v8s/VBk=; b=BrYUtyDWV22CgICM5dsBLR6OrpMhXJJx9qjn75oZmicjexK0LD9JcMtOmmAVQal5m5whwwPZEk2kFtHqt5rQ2HRaZUtfKHRAECpJIuk1SubmVeX2cVCFw06OtmlePp0NpYN1sb2B8ski0UtD44JkVGI9me9Su7koqWzNQnbXEnU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1773202152596644.6314911848493; Tue, 10 Mar 2026 21:09:12 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w0Asc-00013C-Ag; Wed, 11 Mar 2026 00:09:10 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w0AsZ-0000yd-14 for qemu-devel@nongnu.org; Wed, 11 Mar 2026 00:09:03 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w0AsX-00007a-4j for qemu-devel@nongnu.org; Wed, 11 Mar 2026 00:09:02 -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 62B17M8P508294 for ; Wed, 11 Mar 2026 04:08:50 GMT Received: from mail-oi1-f197.google.com (mail-oi1-f197.google.com [209.85.167.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ctppaj502-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 11 Mar 2026 04:08:50 +0000 (GMT) Received: by mail-oi1-f197.google.com with SMTP id 5614622812f47-46724fd619cso5747370b6e.1 for ; Tue, 10 Mar 2026 21:08:50 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-4177e5ea30asm998656fac.10.2026.03.10.21.08.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Mar 2026 21:08:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= elIb1JyNNjCVeFtEYY42K/CrYn15CDxzMQe5v8s/VBk=; b=I/GzojM2YYE65/vw bpQnEKjJGL0gF04srR6tFacZxz14jAqZxtezccXKthPzeo15Pa66PlX8wN0RRXIO FCfwLfleCbztAIHUF7iThUs8N5E0U0dWL1kRf1QCVYF6enib70j9aMQwfUaXnzgW VzCKVH+4GHEnHZxMcqRc9tDpUtNgfr6JewNg34GRNOWTSxcDf/50UZbKjQF+ns2D 0i629e5pWBUq8J2pdjhfrVa8b/7+Bl9AQzDXRwA86qRN9Ha5SPIiY3DoYYKnG2Tc 3xIHMK1k/CXMIV2MNkUjTXlfltyckYamKguz4zDwxpLptOu8Nixe70S29hYhG3DK 3/Jdlg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773202129; x=1773806929; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=elIb1JyNNjCVeFtEYY42K/CrYn15CDxzMQe5v8s/VBk=; b=OXXQtg8+UTtixXzE6TweIhNCo2TRP/VnjmlGvRWfHGQNGiRmPNEHdaOqZC40S/BCqw PBxViqc1fteAtpy09+W/DAlnVWGPNieWAlpRGlpfFbsyaZqgbgvHpn5KFEjbSI9tFKUT 2+xK/5lvyHSYY6/M9p4AsZar/1Ik0cqufTy+XnPPipynxC2nlHpSrz7DcIeW5Rq6/S27 FQ/1K8+LnW3gdcBl/GQKFSTSXGjVvGBCnKpj7vIMp+0eHNYkITytFemITsXV9K9l/0L9 pEV6lQ0UIzSKrZl/LLBuDVELbA+Z4xbDmCNzVJQXpOogzsRPnqJXdb5aULO9o8kSMKLk AfYQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773202129; x=1773806929; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=elIb1JyNNjCVeFtEYY42K/CrYn15CDxzMQe5v8s/VBk=; b=P+k+70sS+1M8mPb5IJ8fXdonEuXjxGY28vCgMQt7cWsHJrwIZ9E/Ftv6+4ZusiHlr1 cNYviKQg/mgg4PWi0jUwg85GNj+3X8kjnbiUG7OoA/zIL6/hwCYa79PmyHXv3lWb2eAv sdhIjjmSRbRG5j51qP2sUkwAx1QP0aE14EU73nBEIz3N84Sy4/ZAR8teOSUFjDFjZ1P1 gAJRSc7I2lwmN0XiVXp3C8bs/PCdOkSlTQY3f8DbOIJQn+xoGZs4a3flXkD6U7enO7OP d2DHZaaOGvCaZUjr6TEcHopO0bRHnCXyPXg9psD/+5zaMjY360qdUOJWOG3aYR1UnDvk VOHQ== X-Gm-Message-State: AOJu0YzPTVvnBrSEzmVVvbQxyYu0zj2fhU01ylUpkEI8ykS3zQYkAL0Q lcTFQ/rFa/23C4NjqlSOJMUl4gupi8cEpFVua1e/c+Kr/WokA3W67RYf9NpJ0IHz46cDA4GjO7+ DkG0U6Wl8znAGgU7C790Ns0g65C2t/J22+wlKaNT+HAqypbtNJvFHFq9w7KUfjWz8gg== X-Gm-Gg: ATEYQzwdu7qCA8t1RIW57VooEgZ44ls9c77BRWGizFQJB4LFF1Pp1/qDDeOqhgYHtnF QHSZNe3hubmLprnPrGScE/IUMeceAJzuLY5nYzuETulFl6AxCZFz+gVH6RQMo5d1+Pku5uP7QQm jnY34kUnmNpv595jnBAizFxSSxmhF8t4eEZRDHSBxsKAeAIajsgHOeRui64GZBsChimQscwJmof CGZBj7pa4F97Q+teelsqX7wdBHPVeZ2lR6plL4xFt+dBy8rOQUQEpJ5mAiBcN4WEefqly+LUZQu 3Va/RLuMqIbb2vzo5x4t591TMU660vlW/Duo2wOMTYuQMkDZnUqznTpzvbdVpxdRF6YdfFTeoVr 6kp4rUqaP3NsItddwOm0TrlP5Ys0GIfVxb11a67pZvBEkyh6iw8Gq7YPRznZ9hvPHoKFBxQ== X-Received: by 2002:a05:6808:1a28:b0:467:153a:2d9c with SMTP id 5614622812f47-4671be7646fmr3486596b6e.15.1773202129516; Tue, 10 Mar 2026 21:08:49 -0700 (PDT) X-Received: by 2002:a05:6808:1a28:b0:467:153a:2d9c with SMTP id 5614622812f47-4671be7646fmr3486569b6e.15.1773202129134; Tue, 10 Mar 2026 21:08:49 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, philmd@linaro.org, ltaylorsimpson@gmail.com, matheus.bernardino@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, Matheus Tavares Bernardino Subject: [PATCH v3 32/32] target/hexagon: Add pcycle setting functionality Date: Tue, 10 Mar 2026 21:07:58 -0700 Message-Id: <20260311040758.1068731-33-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260311040758.1068731-1-brian.cain@oss.qualcomm.com> References: <20260311040758.1068731-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: gxWgYW85qAfb6_LCqKtL8JFYLBs9O4Fn X-Authority-Analysis: v=2.4 cv=D7BK6/Rj c=1 sm=1 tr=0 ts=69b0ead2 cx=c_pps a=WJcna6AvsNCxL/DJwPP1KA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yx91gb_oNiZeI1HMLzn7:22 a=EUspDBNiAAAA:8 a=COk6AnOGAAAA:8 a=Kc8miizCJkRJjwKmxNEA:9 a=QEXdDO2ut3YA:10 a=_Y9Zt4tPzoBS9L09Snn2:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzExMDAzMiBTYWx0ZWRfXwVqEiVzyDySb TKXwXLB7rimTn4cGL6EU4pPLoGNSq8wQuWBbX/At2yJPqyOu68pi1QAqSirqN4l0FBBx8f+lCv5 J9XSRSMUZjGodt8jwP3HhuLy0wngsOIkAw9t1MhaPnRiiRCZX42VEh9C0W1LtBVsg/9ydSeyMBf w785b8k84kVEQCVXdebfKlWB+/dnAZfL8dC73JKkNG2oyOMXPao61LtxE8UIK+LaO7GgXO4wILt 548KMG/HvE4IecEZ9cXK9aUZ68KQFbm2l/rgz7oxay90wa4hKwpAstcT1cr0JPWRzpwW1nJF0OW T61VpP/lLGAe6Spu9ZyXKhRLIaPk/IxiRhF50ZbQEaOByr2wvSSIg0cqRYid0lR9AeWkRV4m/HE 5yAxsVZV6o8tdwrCFm/5mj2jG4iF7vZuxCX6/kDh26hxh4D79/SbS2wfWiOWyW7PqqkEQdyqfys LJsG//B87V53/TIELUg== X-Proofpoint-ORIG-GUID: gxWgYW85qAfb6_LCqKtL8JFYLBs9O4Fn X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-10_05,2026-03-09_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 phishscore=0 impostorscore=0 spamscore=0 bulkscore=0 malwarescore=0 priorityscore=1501 clxscore=1015 adultscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603110032 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.819, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.903, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1773202153984154100 Signed-off-by: Brian Cain Signed-off-by: Matheus Tavares Bernardino Reviewed-by: Taylor Simpson --- target/hexagon/cpu_helper.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/target/hexagon/cpu_helper.c b/target/hexagon/cpu_helper.c index 0521c01c84c..43b558b6e68 100644 --- a/target/hexagon/cpu_helper.c +++ b/target/hexagon/cpu_helper.c @@ -63,13 +63,18 @@ uint32_t hexagon_get_sys_pcycle_count_low(CPUHexagonSta= te *env) void hexagon_set_sys_pcycle_count_high(CPUHexagonState *env, uint32_t cycles_hi) { - g_assert_not_reached(); + uint64_t cur_cycles =3D hexagon_get_sys_pcycle_count(env); + uint64_t cycles =3D + ((uint64_t)cycles_hi << 32) | extract64(cur_cycles, 0, 32); + hexagon_set_sys_pcycle_count(env, cycles); } =20 void hexagon_set_sys_pcycle_count_low(CPUHexagonState *env, uint32_t cycles_lo) { - g_assert_not_reached(); + uint64_t cur_cycles =3D hexagon_get_sys_pcycle_count(env); + uint64_t cycles =3D (extract64(cur_cycles, 32, 32) << 32) | cycles_lo; + hexagon_set_sys_pcycle_count(env, cycles); } =20 void hexagon_set_sys_pcycle_count(CPUHexagonState *env, uint64_t cycles) --=20 2.34.1