From nobody Sat Sep 26 23:03:03 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=1789487172; cv=none; d=zohomail.com; s=zohoarc; b=IXHL9K63wOlJoa7UgQDNuTrvYIClFiCDGTbk50A2AJioBQvp7z9upNl2NjgugOIRiKz6SvKKB1AbFAz+ifg1HRVir7PaFJpBCaQzI7ilvpdrVO5j7Tb9VLpHrMv5N2Z/hCyg89syAbPp341Y/K2GBKY+jDJqZVdqxuyZ0RbeXZo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789487172; 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=czIlTz6nf7EmJxGqDPYSHJQLYYk7Hw1qYrvQmd0lil0=; b=OTPug2PmX6/GR70fL0irEDSAk4XrXFPg0rSEsesWz5owgTbl+7n6p5xSVj7yiWCavap1UjuYh7SBbVFCCGL31oJ++vx1tncOyE9MrARAv9+zoXfNgxY/sCpm6tIxHV0BDOwl3//JhxxZq/jjlwWtUo+4AkKJdt7qy3CWhfM7TyI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1789487172396158.61163537530342; Tue, 15 Sep 2026 08:46:12 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x6VLb-0003TA-4w; Tue, 15 Sep 2026 11:45:27 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x6VLY-0003SG-4V for qemu-devel@nongnu.org; Tue, 15 Sep 2026 11:45: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 1x6VLU-0000BF-Vu for qemu-devel@nongnu.org; Tue, 15 Sep 2026 11:45:23 -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 68FFAxKg3349913 for ; Tue, 15 Sep 2026 15:45:19 GMT Received: from mail-pl1-f198.google.com (mail-pl1-f198.google.com [209.85.214.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4gpx4sbsp4-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 15 Sep 2026 15:45:18 +0000 (GMT) Received: by mail-pl1-f198.google.com with SMTP id d9443c01a7336-2d001671a54so89140175ad.2 for ; Tue, 15 Sep 2026 08:45: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 d9443c01a7336-2dd2cca264fsm72388495ad.11.2026.09.15.08.45.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 15 Sep 2026 08:45: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= czIlTz6nf7EmJxGqDPYSHJQLYYk7Hw1qYrvQmd0lil0=; b=DHEnGoUNjlDP/if4 7Z5yFMmbr0lZpk0GG9o9b+brwF2gImB6x/OMThob095Q2EclL4VbXxcmF5YE9GyI jCcpmboqsneQznTYGTI4tfJKYKeUeX6fc7m/2LKnsjgDQUrwybV3s+B+IqscsoKv sGjoqt796I6K25LU+I8bX4mX6X9QJX8k3nTnVUqpzW8eTK+3dvdzFORaYxoqnnpU eSx6U3RNCWPANUg3jGNtKTc7/H3MJp8US8nHgYGUlFLxhc09EN8IYUa3KN/DH4dy 3nFOr6zaIAN/Y3N28kZaOXxHoN6ggYEnzQe1io0UkWAvwBXN4fm/OZ0PB//ZrbpI 8GG6rQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1789487118; x=1790091918; darn=nongnu.org; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:from:to:cc:subject :date:message-id:reply-to:content-type; bh=czIlTz6nf7EmJxGqDPYSHJQLYYk7Hw1qYrvQmd0lil0=; b=dHtv+4JyAhjRMWVCVqkOkkUDmVZa9g9ffXOCz5rrJQRDh/twVQwQX2mQ1i5l8nlh7g 8HtCWH/fPv7zDWsf9qDXklj7Iihg2dJWLQuKl6++zOtDbCp4IbI1IEWrXJFMqve06JbF P8MpiUMwJkJH8Iq9mvc2cFPbfUlGHyvsMZLrZJFM81cSRcHFPPuA6OL5c+42lBIwmUV8 P0se3Dxg71vTCzTrpECtfQQZ/6haSIkI2SYxY/vSfDBR/JCnshH/IapGvowXNImijmFL CXGuqvexnfGa8cxAYG6dkTqbW3LZwnKf5yLjs34vV9tiGFf1flj9dWQPyVYLYFf7E364 akBQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789487118; x=1790091918; h=content-transfer-encoding:content-type: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 :content-type; bh=czIlTz6nf7EmJxGqDPYSHJQLYYk7Hw1qYrvQmd0lil0=; b=Xt0RK5AxnwjhjCoWJaNk3tnlE9af9mqmOBbSF2CamSoi/PbJLy5oQGCsmcfu8O8Phk EGCHuLsjIR7zpHeEpd5fwWbiE7zM3SNNp48Hw4fWBQOI3JHbIT1Pvh8oVpWteEqe9ITN jTGntRQTtGeWPqFoLjGO488CYgiBQ6Gedo+E0O2wm+pwI2NN+ZoSZG7WAXI7RdDT1goc hWen0+pjZXOpSXZHgP+6CAOXGXfis34nVjmWvv0Mmz7INIGr+EZ0OdEU3BRdySL0IUST PUWbzgooh07S1n5XhcReW/gAvqRgl5YI0rkg3FN7sPKn40vVGQXXU9GkcKa3CKYvGtwH saog== X-Gm-Message-State: AFuF++khFm4OiPwQWQkK8dyDBUEQOJzf6t/4W4xL59hEHysy0qCYhG15 5xrDZqDrv+cEJMxO7KINUwBv1aZ+7qlYZpCClzgoKNPfD4ckTJegHFN8m+35F/HMdtRToWE0Z4s 7LYePMpDrxm908PMtUPak4VNdaJxdPLZ3Vr6cqfJzGjUf3LcrnPyElYXqvQWP2j6QJg== X-Gm-Gg: AYBFou0SELJG9XQEmqKAorl2PMYkvJsXtL9M5GgAm0+m5DRVlxQToFwBc7kebWG6wAV 0CAsvuFNJ6J0qEvbz1h3bT7s9rqpwt9QwS4O+ZKfoCbPpU8jgs0Ow3qGwTDNt3yuW1+Ir+03Sse 2v7JG8VldF58BDGikvatIpKyw2ZGMIPOcpiu8YmqKnD+fDTMNYHJQEUFD+HcTrVOTBcvTEEPvOV 03t3ZqEoW6cPfsj3TUL/UD94RVj5WfeQLTn9ryXXBRK866aB9L+RtfwMVKV5ThRGeJiDqidqVCi NTYck4JU0glMywixD5DTSz4tTVXkgFCZnTvVDrJAfykNbJCpaz/zblkfvWivu3VzaaEvT9E8MmI 80dYwiioeYpAnSodoSbaaqs7km46VEv1jnZOimxvvTwjY1qKM X-Received: by 2002:a17:903:f8e:b0:2d8:d4d0:792e with SMTP id d9443c01a7336-2dd6c7630f2mr150941315ad.18.1789487117852; Tue, 15 Sep 2026 08:45:17 -0700 (PDT) X-Received: by 2002:a17:903:f8e:b0:2d8:d4d0:792e with SMTP id d9443c01a7336-2dd6c7630f2mr150940475ad.18.1789487117227; Tue, 15 Sep 2026 08:45:17 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: ltaylorsimpson@gmail.com, Pierrick Bouvier , Brian Cain Subject: [PATCH 1/4] target/hexagon: pass the packet PC to the k0lock/tlblock helpers Date: Tue, 15 Sep 2026 08:44:59 -0700 Message-Id: <20260915154502.4106597-2-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260915154502.4106597-1-brian.cain@oss.qualcomm.com> References: <20260915154502.4106597-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Proofpoint-Spam-Info: AW1haW4tMjYwOTE1MDIzMCBTYWx0ZWRfX4j+XhSk15ebV Hg1fEU9P9vVvTu7/arouw8ESpe6X232y16bhsClKnA0DEZeM0lYY8WYQoEXAie6WAAy9l/DgPC2 cFZJwOOxU5O2FGEW82GHjIaLEGoRfww= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTE1MDIzMCBTYWx0ZWRfXyNqTXNnpaSc7 Z++ofc++/ghFMSg2O204G7caqDWGcIFQ43reTUxohhLBLG04QLrh4Ddz7iuBYPhTM2OKMAQHccv 0u8hymLk6paXbfZky5VI60dVum+7t+VcWgwax2tGF1i4aSZPNvN9sm0Twvc7akHcSkYcT0ZwKke DzQERGBFU8eooXHMGtSMgbDZYIGwPqlR33ITMv0SUlCBsWeTAz1xBLFVzKFTSPz22xPA88K/jSY uLbD2eZA12jh9X0GfOtfKzStcOn0UJKNVJFLshRtAai8OKFl5DezbtwbxCv/DeQx4FW8ZRVQixa zsymkJ4aIK2/nO5jJA7qnEmOYnL53AC73E8vJjpI5J8YkTgMOLtDhTyaMQWUnLnmS26CAEmwFBv 7f051lj98+ZSiCVAF9r4M/T9aZ8QKS1UTKJjY7FV6Aw9DlVRTaa4TszV4/K882KgvhpjOqwUkEn 1LVzA6+mcjbJ82y6row== X-Authority-Analysis: v=2.4 cv=HsDjiETS c=1 sm=1 tr=0 ts=6aa9680e cx=c_pps a=MTSHoo12Qbhz2p7MsH1ifg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=YMgV9FUhrdKAYTUUvYB2:22 a=EUspDBNiAAAA:8 a=7LqqsmpNMwg9Jt_1uxEA:9 a=18octmQPxmAVHNRS:21 a=QEXdDO2ut3YA:10 a=GvdueXVYPmCkWapjIL-Q:22 X-Proofpoint-GUID: LjMK8YvKjkmzkB1-CotNIoUJo-6bIQWO X-Proofpoint-ORIG-GUID: LjMK8YvKjkmzkB1-CotNIoUJo-6bIQWO X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-09-15_04,2026-09-15_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 phishscore=0 lowpriorityscore=0 clxscore=1015 adultscore=0 impostorscore=0 suspectscore=0 spamscore=0 malwarescore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2609040000 definitions=main-2609150230 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1789487172737158501 Hand the k0lock/tlblock helpers the packet PC as a constant instead of relying on next_PC's opcode-dependent staging. Signed-off-by: Brian Cain --- target/hexagon/hex_mmu.h | 9 +++++---- target/hexagon/sys_macros.h | 4 ++-- target/hexagon/hex_mmu.c | 15 ++++++++------- target/hexagon/op_helper.c | 15 ++++++++------- target/hexagon/hex_common.py | 6 +++++- 5 files changed, 28 insertions(+), 21 deletions(-) diff --git a/target/hexagon/hex_mmu.h b/target/hexagon/hex_mmu.h index 56b2c4a89d0..4eaf15c4996 100644 --- a/target/hexagon/hex_mmu.h +++ b/target/hexagon/hex_mmu.h @@ -17,12 +17,13 @@ extern uint32_t hex_tlb_lookup(CPUHexagonState *env, ui= nt32_t ssr, uint32_t VA); extern void hex_mmu_on(CPUHexagonState *env); extern void hex_mmu_off(CPUHexagonState *env); extern void hex_mmu_mode_change(CPUHexagonState *env); -extern bool hex_tlb_find_match(CPUHexagonState *env, uint32_t VA, - MMUAccessType access_type, hwaddr *PA, int = *prot, - uint64_t *size, int32_t *excp, int mmu_idx); +extern bool hex_tlb_find_match(CPUHexagonState *env, target_ulong VA, + MMUAccessType access_type, + hwaddr *PA, int *prot, uint64_t *size, + int32_t *excp, int mmu_idx); extern int hex_tlb_check_overlap(CPUHexagonState *env, uint64_t entry, uint64_t index); -extern void hex_tlb_lock(CPUHexagonState *env); +extern void hex_tlb_lock(CPUHexagonState *env, target_ulong PC); extern void hex_tlb_unlock(CPUHexagonState *env); void dump_mmu(MonitorHMP *hmp, CPUHexagonState *env); #endif diff --git a/target/hexagon/sys_macros.h b/target/hexagon/sys_macros.h index a5b9b7f2592..72179d49ab3 100644 --- a/target/hexagon/sys_macros.h +++ b/target/hexagon/sys_macros.h @@ -145,10 +145,10 @@ #define fDCINVIDX(REG) #define fDCINVA(REG) do { REG =3D REG; } while (0) /* Nothing to do in qem= u */ =20 -#define fSET_TLB_LOCK() hex_tlb_lock(env); +#define fSET_TLB_LOCK() hex_tlb_lock(env, PC); #define fCLEAR_TLB_LOCK() hex_tlb_unlock(env); =20 -#define fSET_K0_LOCK() hex_k0_lock(env); +#define fSET_K0_LOCK() hex_k0_lock(env, PC); #define fCLEAR_K0_LOCK() hex_k0_unlock(env); =20 #define fTLB_IDXMASK(INDEX) \ diff --git a/target/hexagon/hex_mmu.c b/target/hexagon/hex_mmu.c index d6ee7c40798..d7acaae5ac8 100644 --- a/target/hexagon/hex_mmu.c +++ b/target/hexagon/hex_mmu.c @@ -156,7 +156,7 @@ static inline void print_thread_states(const char *str) } } =20 -void hex_tlb_lock(CPUHexagonState *env) +void hex_tlb_lock(CPUHexagonState *env, target_ulong PC) { qemu_log_mask(CPU_LOG_MMU, "hex_tlb_lock: " TARGET_FMT_ld "\n", env->threadId); @@ -170,7 +170,6 @@ void hex_tlb_lock(CPUHexagonState *env) uint8_t tlb_lock =3D GET_SYSCFG_FIELD(SYSCFG_TLBLOCK, syscfg); if (tlb_lock) { if (env->tlb_lock_state =3D=3D HEX_LOCK_QUEUED) { - env->next_PC +=3D 4; env->tlb_lock_count++; env->tlb_lock_state =3D HEX_LOCK_OWNER; SET_SYSCFG_FIELD(env, SYSCFG_TLBLOCK, 1); @@ -178,19 +177,21 @@ void hex_tlb_lock(CPUHexagonState *env) } if (env->tlb_lock_state =3D=3D HEX_LOCK_OWNER) { qemu_log_mask(CPU_LOG_MMU | LOG_GUEST_ERROR, - "Double tlblock at PC: 0x%" PRIx32 - ", thread may hang\n", - env->next_PC); - env->next_PC +=3D 4; + "Double tlblock at PC: 0x%x, thread may hang\n",= PC); CPUState *cs =3D env_cpu(env); cpu_interrupt(cs, CPU_INTERRUPT_HALT); return; } env->tlb_lock_state =3D HEX_LOCK_WAITING; + /* + * next_PC has already been advanced past this packet. Rewind it + * so that the thread re-executes the tlblock when it is woken by + * the thread that releases the lock. + */ + env->next_PC =3D PC; CPUState *cs =3D env_cpu(env); cpu_interrupt(cs, CPU_INTERRUPT_HALT); } else { - env->next_PC +=3D 4; env->tlb_lock_count++; env->tlb_lock_state =3D HEX_LOCK_OWNER; SET_SYSCFG_FIELD(env, SYSCFG_TLBLOCK, 1); diff --git a/target/hexagon/op_helper.c b/target/hexagon/op_helper.c index 0d08ac77361..07ba639449c 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -1278,7 +1278,7 @@ void HELPER(modify_ssr)(CPUHexagonState *env, uint32_= t new, uint32_t old) hexagon_modify_ssr(env, new, old); } =20 -static void hex_k0_lock(CPUHexagonState *env) +static void hex_k0_lock(CPUHexagonState *env, target_ulong PC) { HexagonCPU *cpu =3D env_archcpu(env); CPUState *cs =3D env_cpu(env); @@ -1292,7 +1292,6 @@ static void hex_k0_lock(CPUHexagonState *env) 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); @@ -1300,19 +1299,21 @@ static void hex_k0_lock(CPUHexagonState *env) } if (env->k0_lock_state =3D=3D HEX_LOCK_OWNER) { qemu_log_mask(LOG_GUEST_ERROR, - "Double k0lock at PC: 0x%" PRIx32 - ", thread may hang\n", - env->next_PC); - env->next_PC +=3D 4; + "Double k0lock at PC: 0x%x, thread may hang\n", = PC); cpu_interrupt(cs, CPU_INTERRUPT_HALT); cpu_loop_exit(cs); return; } env->k0_lock_state =3D HEX_LOCK_WAITING; + /* + * next_PC has already been advanced past this packet. Rewind it + * so that the thread re-executes the k0lock when it is woken by + * the thread that releases the lock. + */ + env->next_PC =3D PC; 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); diff --git a/target/hexagon/hex_common.py b/target/hexagon/hex_common.py index c180c19b092..1bd31f76a4f 100755 --- a/target/hexagon/hex_common.py +++ b/target/hexagon/hex_common.py @@ -284,7 +284,11 @@ def need_ea(tag): =20 =20 def need_PC(tag): - return "A_IMPLICIT_READS_PC" in attribdict[tag] + return ( + "A_IMPLICIT_READS_PC" in attribdict[tag] + or tag =3D=3D "Y2_k0lock" + or tag =3D=3D "Y2_tlblock" + ) =20 =20 def need_next_PC(tag): --=20 2.34.1 From nobody Sat Sep 26 23:03:03 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=1789487162; cv=none; d=zohomail.com; s=zohoarc; b=BPMpEevFlHWXx6bdlU4UZo2g1d/ahza4lQKJAupHb0+LfxlFaJfzZXsqLCH6Uh4SWgx754eH2qIBHsawgGhSjCwWMQtfZ8A2WyY8bBU3uBrEQoRVBgzpve1Ou//q4fsAO2L8Caj8h3Q+xqNpmruW3fdeYL0EHrqU6kowaRk6aMg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789487162; 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=3kipTjYYzY2+Iu48hSzi8U4i0VTyyY+4HBGNnXJt6cQ=; b=HGFFqGTdataaatkw5ReOART9teXfTnTas1aX1mKP4hbsZGXSh/QicEzPbaQzkJvp+Z9Bj19MIeBKiUiPuDkobgKb8FF5XO7ENtlurRzlXQ3n2rIPlAjJ5kERYI3FRnswAux5QWQQDUzOZbJJGL3+kFcD3wVy7ZvclaversOjkWA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1789487162924491.8641797188682; Tue, 15 Sep 2026 08:46:02 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x6VLc-0003TD-Iy; Tue, 15 Sep 2026 11:45:28 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x6VLZ-0003SX-T5 for qemu-devel@nongnu.org; Tue, 15 Sep 2026 11:45:25 -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 1x6VLX-0000Bo-Kw for qemu-devel@nongnu.org; Tue, 15 Sep 2026 11:45:25 -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 68FFAfXu2836598 for ; Tue, 15 Sep 2026 15:45:21 GMT Received: from mail-pl1-f197.google.com (mail-pl1-f197.google.com [209.85.214.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4gq1qpapak-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 15 Sep 2026 15:45:21 +0000 (GMT) Received: by mail-pl1-f197.google.com with SMTP id d9443c01a7336-2d001671a54so89141025ad.2 for ; Tue, 15 Sep 2026 08:45: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 d9443c01a7336-2dd2cca264fsm72388495ad.11.2026.09.15.08.45.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 15 Sep 2026 08:45:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= 3kipTjYYzY2+Iu48hSzi8U4i0VTyyY+4HBGNnXJt6cQ=; b=P//JR1pf8C96r+Ol dYx1/dgDbYmxXEGl6l6g/y73SMUUA+3Lj1D301/oIWgBSTosfl/NP5xg8gOwLfm8 /1nstIfSv7rCY5J8J59yR2MUoOH6cl7jwNhmUveGR62ljaZVrFWCFKKPSCQGJnl0 oTLBZWvQvBH5F/gqeujvrx1w1Cg54WBKI2hLOX4icvuKTp65dVB1E1XveeRf96jV 3bArhVyHppgWmpVqUnDkcaNj7GsdZclD+7WsoYhQhYZEEjM2urW9m053WvvREFZc 491dHRYb1SE9AOUIWB/ID+WirDgiOheJaBEiK3W0bUuFdy+YutooBzaayOwLDbDj ElJeqw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1789487120; x=1790091920; darn=nongnu.org; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:from:to:cc:subject :date:message-id:reply-to:content-type; bh=3kipTjYYzY2+Iu48hSzi8U4i0VTyyY+4HBGNnXJt6cQ=; b=PoRXBRtwc1ITZv/mOw1NKABi+4P8RfBiBwPFuWpYfTfLCGDOWBgQo552zkw6T+MQAF RVDr8cD2qzWDUv1FJx5nOOrPl/DYq9RE2JAhJZM9+yo47ENcP7vvJJGHMqH+zm+mRJZk dRWKCFiv4duei8u9is6L05oFO7qJj+iULO4k62H9qO7f6D/mFCNREMqJqGsOtqGYjVmQ /6hyDYpEDajGS7NNIBeVZ4HLVZnCkho/6wSsD4+6WRYT9NhZisd4E5RKTgCwp/Es6OHA B9o5pLSnS1U0Vwg8+/+VCDw8Mo3ZHk7o4DGimb/gV0dBLwUwEfaWOaFzu4XuJ+w5hqWC 0log== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789487120; x=1790091920; h=content-transfer-encoding:content-type: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 :content-type; bh=3kipTjYYzY2+Iu48hSzi8U4i0VTyyY+4HBGNnXJt6cQ=; b=IGpSL7PKWwep+P/gg0LY44x+bVDjN6dEhFxeIUIqgC/kSUpVBC81K9OSGAdIGBMa/c cg0MRDMOckbk+7tItjM9FYodNnk3yu0d6GD2hPdAtpgUT1Wx9dC8mRhrwMy8esuNlyqP kT+XkimrA7O2KxF+eMPmz1q2uq+2ptDbm28q8lT9+rv7ukQUtxfTXvQvcQyg9BlQrw38 w0Gj9u4zd/OYDz3UTBlLWE1rGyEO7xhG5z5PihX2rjGlEo0qItqFRidyuiH+gYH5txRo puEmyyuxyYMVrfYKqhDrndBfRgfI7e4iUtgiebLPHlTpt2ZiWKhzmnQooB1GDpJtQap2 zsQg== X-Gm-Message-State: AFuF++kUxfKoAf2ogEjgnWeLtMZ/FA/vJHgmqHjY1vMSU9BpemTPT3fJ ntv5k83x774W8xW4xMFOUvQ420JVDPEm157t8BGs07l3NjrJMkYz+3w7gdo0BU6FkKSqEYN7+33 gjboxju86fhppRE2P+7p8P7B7XUGFpnNZZNV+iWtcTXjcjHXm2paQkRpJSWzGr6eI4w== X-Gm-Gg: AYBFou3QjmR4O9Odx9YC6Ao+bT4MFUta0UjRtvWeAi8cELKcZvHqvrXMPGw1lMYD0Zi YdMBbKHHcceWhVeX9k0FNnGcrBdclQlMFRr1K0uYMvjaZjOqbKKV+Va1ZoAabsLzqUN3ENXrdZc 0GzDZ8du2MZhVReqLgAJWwvJLL/uNTypynEJppzVkowOJxNVU/TvKMlXWf0C7rIa6FDjbb3VIE1 Bqj4dNWdJEl78IQfQ88DibIll8ub6e0PrtJaO3AVw9hzqxVbH1yrJIW/GGdJM6QwkcU82NlGfp4 58BTDJBkJQ+ktffg0H/P47ARSEp8lWngBL5iFixpk2j9al5yOWAzTEMJAtZZtLpNvmUx12k67pc PRNiMO9upOowVh8wSMn/mOggRk6pGxRP3+AWNOyvmvEoJQZPt X-Received: by 2002:a17:902:fda5:b0:2d8:d4d0:7932 with SMTP id d9443c01a7336-2dd6c78fbdamr162095375ad.22.1789487120082; Tue, 15 Sep 2026 08:45:20 -0700 (PDT) X-Received: by 2002:a17:902:fda5:b0:2d8:d4d0:7932 with SMTP id d9443c01a7336-2dd6c78fbdamr162093995ad.22.1789487119336; Tue, 15 Sep 2026 08:45:19 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: ltaylorsimpson@gmail.com, Pierrick Bouvier , Brian Cain Subject: [PATCH 2/4] target/hexagon: stage the PC in the PC register, drop next_PC Date: Tue, 15 Sep 2026 08:45:00 -0700 Message-Id: <20260915154502.4106597-3-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260915154502.4106597-1-brian.cain@oss.qualcomm.com> References: <20260915154502.4106597-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Proofpoint-Spam-Info: AW1haW4tMjYwOTE1MDIzMCBTYWx0ZWRfX5kypyq7jMRvU CDy2WM7w5RJKgGhbpzFWoswwTidfXRRNLk/OY2vLuxe8kyznHjUMUT5ZALwpr4Nfcb5aiVyeSkX QiqkSl7lb27JJpilmok219/8hdRAoOc= X-Authority-Analysis: v=2.4 cv=I4Xw19gg c=1 sm=1 tr=0 ts=6aa96811 cx=c_pps a=cmESyDAEBpBGqyK7t0alAg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=DJpcGTmdVt4CTyJn9g5Z:22 a=EUspDBNiAAAA:8 a=Cu83Tbch-TdGEC5940AA:9 a=a8gBUa1Qp9YYmmNs:21 a=QEXdDO2ut3YA:10 a=1OuFwYUASf3TG4hYMiVC:22 X-Proofpoint-ORIG-GUID: WlYnV-3ql34fKF1oa8YD3invm1quB45M X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTE1MDIzMCBTYWx0ZWRfX9KIHpJiHQGOo /zV1Wve9YwcioAD8wZ5WR3rlCyY0SY18a2deIzM5E0/mX5n3saboGygj0bDWF3ecQN6dilOc0SK 1acg6IG9+r9D4BeVhh+jNcoaDJoyWH0LxgqeHDebGYxOT1K7OsNA7mCl0D2J69cAbkYxHfAMOvt ZKj1ugJOoq/pOQMq8Xgq6SmLwZOnLA1lSUrWSziZoFD7cVkRarCNmaf5XInkFvvIVcd1zn7SKB2 R1u3Bw49zauPlRi+zdum+0uyAZzLxKTaI10WAeDLQgYUHTM4L8qwKO9BVb35WJv+Kgv9cmEL6zW W3ogsBmwgg51izfYLpiw46MJEqP4SQI9zH4q0c8LvpSgWtAExY791cL46tR+5Jj1mbi8NvqlsVm tsw1P/Sg5dzC2VFJT5yp31BEsnfHfYTTwh2Dh4d1YpwINBXiUg9cmuT93fJSyvPv4If8AywpBcT 2Wzr7wKVP7VJX0OLHMQ== X-Proofpoint-GUID: WlYnV-3ql34fKF1oa8YD3invm1quB45M X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-09-15_04,2026-09-15_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 suspectscore=0 phishscore=0 clxscore=1015 priorityscore=1501 bulkscore=0 malwarescore=0 impostorscore=0 adultscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2609040000 definitions=main-2609150230 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1789487164788158500 Preload hex_gpr[HEX_REG_PC] with the next packet's address instead of staging it in a separate next_PC global; nothing reads the architectural PC mid-packet. Removes hex_next_PC, next_PC, and need_next_pc. Signed-off-by: Brian Cain Reviewed-by: Taylor Simpson --- target/hexagon/cpu.h | 1 - target/hexagon/translate.h | 2 -- target/hexagon/cpu.c | 1 - target/hexagon/genptr.c | 14 +++----------- target/hexagon/hex_mmu.c | 4 ++-- target/hexagon/machine.c | 1 - target/hexagon/op_helper.c | 6 +++--- target/hexagon/translate.c | 29 +++++++++++++++-------------- 8 files changed, 23 insertions(+), 35 deletions(-) diff --git a/target/hexagon/cpu.h b/target/hexagon/cpu.h index b1533680bd7..5e6772d050b 100644 --- a/target/hexagon/cpu.h +++ b/target/hexagon/cpu.h @@ -146,7 +146,6 @@ typedef struct CPUArchState { uint32_t k0_lock_count; uint64_t t_cycle_count; #endif - uint32_t next_PC; uint32_t imprecise_exception; target_ulong new_value_usr; =20 diff --git a/target/hexagon/translate.h b/target/hexagon/translate.h index d8628383f1d..f353b6c2b20 100644 --- a/target/hexagon/translate.h +++ b/target/hexagon/translate.h @@ -76,7 +76,6 @@ typedef struct DisasContext { DECLARE_BITMAP(insn_qregs_read, NUM_QREGS); bool pre_commit; bool need_commit; - bool need_next_pc; TCGCond branch_cond; target_ulong branch_dest; bool is_tight_loop; @@ -315,7 +314,6 @@ extern TCGv hex_gpr[TOTAL_PER_THREAD_REGS]; extern TCGv hex_pred[NUM_PREGS]; extern TCGv hex_slot_cancelled; extern TCGv hex_new_value_usr; -extern TCGv hex_next_PC; extern TCGv hex_store_addr[STORES_MAX]; extern TCGv_i32 hex_store_width[STORES_MAX]; extern TCGv hex_store_val32[STORES_MAX]; diff --git a/target/hexagon/cpu.c b/target/hexagon/cpu.c index fad526ccfb5..505cd756c09 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -441,7 +441,6 @@ static void hexagon_cpu_reset_hold(Object *obj, ResetTy= pe type) env->k0_lock_state =3D HEX_LOCK_UNLOCKED; env->tlb_lock_count =3D 0; env->k0_lock_count =3D 0; - env->next_PC =3D 0; =20 env->t_sreg[HEX_SREG_HTID] =3D cpu->htid; env->threadId =3D cpu->htid; diff --git a/target/hexagon/genptr.c b/target/hexagon/genptr.c index 4e9a9670d54..1c4692b5668 100644 --- a/target/hexagon/genptr.c +++ b/target/hexagon/genptr.c @@ -728,22 +728,14 @@ static void gen_write_new_pc_addr(DisasContext *ctx, = TCGv addr, tcg_gen_brcondi_tl(cond, pred, 1, pred_false); } =20 - /* - * If gen_end_tb() will unconditionally overwrite PC with hex_next_PC - * (because this packet has a predicated COF that may not execute), - * write the branch target there instead of directly into the PC - * global, or the overwrite in gen_end_tb() would clobber it. - */ - TCGv pc_wr =3D ctx->need_next_pc ? hex_next_PC : hex_gpr[HEX_REG_PC]; - if (ctx->pkt.pkt_has_multi_cof) { /* If there are multiple branches in a packet, ignore the second o= ne */ - tcg_gen_movcond_tl(TCG_COND_NE, pc_wr, + tcg_gen_movcond_tl(TCG_COND_NE, hex_gpr[HEX_REG_PC], ctx->branch_taken, tcg_constant_tl(0), - pc_wr, addr); + hex_gpr[HEX_REG_PC], addr); tcg_gen_movi_tl(ctx->branch_taken, 1); } else { - tcg_gen_mov_tl(pc_wr, addr); + tcg_gen_mov_tl(hex_gpr[HEX_REG_PC], addr); } =20 if (cond !=3D TCG_COND_ALWAYS) { diff --git a/target/hexagon/hex_mmu.c b/target/hexagon/hex_mmu.c index d7acaae5ac8..2a5095a0f9c 100644 --- a/target/hexagon/hex_mmu.c +++ b/target/hexagon/hex_mmu.c @@ -184,11 +184,11 @@ void hex_tlb_lock(CPUHexagonState *env, target_ulong = PC) } env->tlb_lock_state =3D HEX_LOCK_WAITING; /* - * next_PC has already been advanced past this packet. Rewind it + * The PC has already been advanced past this packet. Rewind it * so that the thread re-executes the tlblock when it is woken by * the thread that releases the lock. */ - env->next_PC =3D PC; + env->gpr[HEX_REG_PC] =3D PC; CPUState *cs =3D env_cpu(env); cpu_interrupt(cs, CPU_INTERRUPT_HALT); } else { diff --git a/target/hexagon/machine.c b/target/hexagon/machine.c index bf4646f4a8b..250ff6a6460 100644 --- a/target/hexagon/machine.c +++ b/target/hexagon/machine.c @@ -17,7 +17,6 @@ const VMStateDescription vmstate_hexagon_cpu =3D { VMSTATE_UINT32_ARRAY(env.pred, HexagonCPU, NUM_PREGS), VMSTATE_UINT32_ARRAY(env.t_sreg, HexagonCPU, NUM_SREGS), VMSTATE_UINT32_ARRAY(env.greg, HexagonCPU, NUM_GREGS), - VMSTATE_UINT32(env.next_PC, HexagonCPU), VMSTATE_UINT32(env.tlb_lock_state, HexagonCPU), VMSTATE_UINT32(env.k0_lock_state, HexagonCPU), VMSTATE_UINT32(env.tlb_lock_count, HexagonCPU), diff --git a/target/hexagon/op_helper.c b/target/hexagon/op_helper.c index 07ba639449c..b58c9f07569 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -1306,11 +1306,11 @@ static void hex_k0_lock(CPUHexagonState *env, targe= t_ulong PC) } env->k0_lock_state =3D HEX_LOCK_WAITING; /* - * next_PC has already been advanced past this packet. Rewind it + * The PC has already been advanced past this packet. Rewind it * so that the thread re-executes the k0lock when it is woken by * the thread that releases the lock. */ - env->next_PC =3D PC; + env->gpr[HEX_REG_PC] =3D PC; cpu_interrupt(cs, CPU_INTERRUPT_HALT); cpu_loop_exit(cs); } else { @@ -1883,7 +1883,7 @@ void HELPER(setimask)(CPUHexagonState *env, uint32_t = tid, uint32_t imask) } qemu_log_mask(LOG_GUEST_ERROR, "setimask used with an invalid tid near PC: 0x%" - PRIx32 "\n", env->next_PC); + PRIx32 "\n", env->gpr[HEX_REG_PC]); } =20 void HELPER(sreg_write_masked)(CPUHexagonState *env, uint32_t reg, uint32_= t val) diff --git a/target/hexagon/translate.c b/target/hexagon/translate.c index fd1de87405c..96c2ba72fbd 100644 --- a/target/hexagon/translate.c +++ b/target/hexagon/translate.c @@ -54,7 +54,6 @@ static const AnalyzeInsn opcode_analyze[XX_LAST_OPCODE] = =3D { TCGv hex_gpr[TOTAL_PER_THREAD_REGS]; TCGv hex_pred[NUM_PREGS]; TCGv hex_slot_cancelled; -TCGv hex_next_PC; TCGv hex_new_value_usr; TCGv hex_store_addr[STORES_MAX]; TCGv_i32 hex_store_width[STORES_MAX]; @@ -181,16 +180,10 @@ static void gen_goto_tb(DisasContext *ctx, unsigned t= b_slot_idx, } } =20 -static bool need_next_PC(DisasContext *ctx); - static void gen_end_tb(DisasContext *ctx) { gen_exec_counters(ctx); =20 - if (ctx->need_next_pc) { - tcg_gen_mov_tl(hex_gpr[HEX_REG_PC], hex_next_PC); - } - if (ctx->branch_cond !=3D TCG_COND_NEVER) { if (ctx->branch_cond !=3D TCG_COND_ALWAYS) { TCGLabel *skip =3D gen_new_label(); @@ -401,7 +394,13 @@ static bool pkt_ends_tb(Packet *pkt) } =20 =20 -static bool need_next_PC(DisasContext *ctx) +/* + * True when the PC has to be preloaded with the address of the next packet + * before the packet runs: either a conditional change-of-flow leaves it + * untouched when the condition fails, or the packet ends the TB without + * any change-of-flow to advance it. + */ +static bool need_pc_preload(DisasContext *ctx) { Packet *pkt =3D &ctx->pkt; if (pkt->pkt_has_cof || ctx->pkt_ends_tb) { @@ -658,10 +657,13 @@ static void gen_start_packet(DisasContext *ctx) if (ctx->pkt.pkt_has_multi_cof) { tcg_gen_movi_tl(ctx->branch_taken, 0); } - ctx->pkt_ends_tb =3D pkt_ends_tb(&ctx->pkt); - ctx->need_next_pc =3D need_next_PC(ctx); - if (ctx->need_next_pc) { - tcg_gen_movi_tl(hex_next_PC, next_PC); + ctx->pkt_ends_tb =3D pkt_ends_tb(pkt); + /* + * Any change-of-flow in this packet overwrites the preloaded value, a= nd + * the k0lock/tlblock helpers rewind it when the lock is contested. + */ + if (need_pc_preload(ctx)) { + tcg_gen_movi_tl(hex_gpr[HEX_REG_PC], next_PC); } =20 /* Preload the predicated registers into get_result_gpr(ctx, i) */ @@ -1369,8 +1371,6 @@ void hexagon_translate_init(void) } hex_new_value_usr =3D tcg_global_mem_new(tcg_env, offsetof(CPUHexagonState, new_value_usr), "new_value_usr"); - hex_next_PC =3D tcg_global_mem_new(tcg_env, - offsetof(CPUHexagonState, next_PC), "next_PC"); =20 for (i =3D 0; i < NUM_PREGS; i++) { hex_pred[i] =3D tcg_global_mem_new(tcg_env, @@ -1393,6 +1393,7 @@ void hexagon_translate_init(void) hex_imprecise_exception =3D tcg_global_mem_new(tcg_env, offsetof(CPUHexagonState, imprecise_exception), "imprecise_excepti= on"); #endif + for (i =3D 0; i < STORES_MAX; i++) { snprintf(store_addr_names[i], NAME_LEN, "store_addr_%d", i); hex_store_addr[i] =3D tcg_global_mem_new(tcg_env, --=20 2.34.1 From nobody Sat Sep 26 23:03:03 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=1789487140; cv=none; d=zohomail.com; s=zohoarc; b=hIaC7dGtvyMPEJO6FtnhtaGwrfMMr9n1aVSR4gcwsdfl51C0r5ZBzRP8KFtUfVTObnXLM+FGsUtWIwnu6DcNwwlNTEfWLz4GqF/1/ErNPpEQSiA+aoJ+yzhoc92vRx/pUXNUykpRwNB4931ARbURGLjC9qBicqPgAK0lwrSF+uQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789487140; 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=7LUclPq73ItkMp6TT0MuqEJXwbcirnfAqTXXIroZpes=; b=AvWuAv0/rq+6ZLIvOF52lRjCGOiTP1g8Efv/hGBgRHQ14po1k/jJq6WO5pJbG3iwGiGkZ4aYIy34MH1AbOMheYu/5+Pky6jmMbn4zkNEzx98Mc0NZUIc7QquViytuuu5HZuBHKpE2PjzRlQMZVNdNU0sWzxzkNs/lmutz0AmTKs= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 178948714045066.28711062120237; Tue, 15 Sep 2026 08:45:40 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x6VLc-0003TC-2n; Tue, 15 Sep 2026 11:45:28 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x6VLa-0003Sx-Ed for qemu-devel@nongnu.org; Tue, 15 Sep 2026 11:45:26 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x6VLY-0000C1-AF for qemu-devel@nongnu.org; Tue, 15 Sep 2026 11:45:26 -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 68FFATgA4176129 for ; Tue, 15 Sep 2026 15:45:22 GMT Received: from mail-pl1-f200.google.com (mail-pl1-f200.google.com [209.85.214.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4gq3hc2434-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 15 Sep 2026 15:45:22 +0000 (GMT) Received: by mail-pl1-f200.google.com with SMTP id d9443c01a7336-2cec4226c70so62500805ad.1 for ; Tue, 15 Sep 2026 08:45: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 d9443c01a7336-2dd2cca264fsm72388495ad.11.2026.09.15.08.45.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 15 Sep 2026 08:45: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= 7LUclPq73ItkMp6TT0MuqEJXwbcirnfAqTXXIroZpes=; b=pF8J10AwxzqA4XhM Bt1ZseVKiJHM3yhDPpxZUAXIpliiQZwFB74sPmKN7/1jsQmgDTvS0WgvH+6vjoLZ J86wpE84bMqCbZms2fWH8W/Njlz4ixLGu7moLvVrXZZSgjYqqJOXAPlgEr5zMpCj EZ4OryKndAeLnr6DY0dY/oQ6P96zI5cwWYO6gCY5lUIPxmRCELnYeZwtaGK1aZIX FHI0kfix7vY0uKXOcvAgviH15aiwN/UKBYh9Z20qV8IcwR1CdSdmrtPINlv41AaT uyi7IVaPQLdNk0I4DAfMRwivKsM7OShGy7oTBTur+LbzJTnHNPvV48YnG9rxPjLA Oog/jA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1789487122; x=1790091922; darn=nongnu.org; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:from:to:cc:subject :date:message-id:reply-to:content-type; bh=7LUclPq73ItkMp6TT0MuqEJXwbcirnfAqTXXIroZpes=; b=EuRP/nHj07wL666y+cBB5VJh41TAYctWf2mqY3VbOOz5EJggJMOS9xBHVTc8f6lRva F8Cy1Mv3IjJgXDAdyOfQch6oW2Nhum5N5TGNPkD+MMspEENAIvjrHn+r6c4knHOoDsD+ LzWArv6xyY/5korTF9PtZbbMMYOgLOHDnBRkc0AnXf9OaDSkq4ZMk3aJN7hVjDDU64fF m7aMtZkUYDvdWVHvJveuUsFN/vTvI9o3lR2lklS/ADEhdzqp+LEpQM2UvEdbjtflYQ8V 4OUFoOUdWZFtIe+MbozlBop+omSmbtEu/giKER0NT0uUIxMZCTFgsWr9wU2a8Gd8ZmlT k0Ag== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789487122; x=1790091922; h=content-transfer-encoding:content-type: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 :content-type; bh=7LUclPq73ItkMp6TT0MuqEJXwbcirnfAqTXXIroZpes=; b=y1h/KPtl73VR5+ALrh/1vabNUgLyM9ZdjJqNDgol+A1fSsG3LeeX6fijcM3VdtskWW TT7zKAe1vJBy1Iv2GMTi/ezk0uDSrQu5PqwP6dUx7N/g8fq+LRzJwotyi8GxpAVq+h8y rm6LiI+CxJn7PITmDJzsncJvCD/TU4qh1PnOpR41KLjqvfrbXFJffemKR/kgoUfZn2yw j/piWYNxotNzpl+7sf4zLecJkB2eVeu0lYLevJ3/TESfCa6MbR4/ilhfq9PD2EfUD5JC i4xEMlpysMYeCMyiZsWg3UPbgpdC7g7Iho2abIJxWoBfs5zChHKoEBS8P/UwRch/9RDt ECTg== X-Gm-Message-State: AFuF++kmdZgfOhQH42ATIbshJar9a2a1+QtHkc1Dw7Yor3/CKQ2a0c6u 83UijuTVO+3iC1dobDdUl+qHbWbXqR7M35hS+yG1KYZNmVyzA+C6FTMdIGClda7lA/t1JHdKeBU m+HXBVQHIQDa0CNmwF18FVx6oCWkxcqXcp6sYQDQIjHaJ4T32dNqR+BH7Wzq8g7u2xA== X-Gm-Gg: AYBFou0cksxnPM3nq3GFjTzUohYGZ3TCo2a1vrjodXH1qc9VwNyYZAb79syoV+EDHX8 TxqptkiCiMrAvu7hbRCvRTOmTV5lwGo51B/685W3BeDHQSNgIcU/ZhTPgHm65TRdeSnHorifJQT pm0J30hvRp43Ji8gzAXNlbaBsgaOHDej909x5iDVb3qul2zXXAKTN1yGw7+6lO1MC6goKxjPZYN veh5FZKYPC1mMno+VfMABnUdepl57Fv29KHykMzPcTppPa47yXZuV6XeXjLjqFv9X8nAYWpU6SX H+y9jd670E820abcRCDif8R690sXcIV6MSO00Z/BPPLa69gKvXC1tHvag8wsjCvN5eWY1cTv5WA cI7NSmdIKx+EQlBDe7vcFGFcaePiU4LGfKADxS7YsUHzp6u7G X-Received: by 2002:a17:903:1b6d:b0:2dd:5363:3219 with SMTP id d9443c01a7336-2dd6c757186mr177976055ad.20.1789487121639; Tue, 15 Sep 2026 08:45:21 -0700 (PDT) X-Received: by 2002:a17:903:1b6d:b0:2dd:5363:3219 with SMTP id d9443c01a7336-2dd6c757186mr177975405ad.20.1789487121130; Tue, 15 Sep 2026 08:45:21 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: ltaylorsimpson@gmail.com, Pierrick Bouvier , Brian Cain Subject: [PATCH 3/4] target/hexagon: drop wait_next_pc Date: Tue, 15 Sep 2026 08:45:01 -0700 Message-Id: <20260915154502.4106597-4-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260915154502.4106597-1-brian.cain@oss.qualcomm.com> References: <20260915154502.4106597-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: Ca3rFIW3e3hMMFZcaQHCDTg1QvQEqQVm X-Proofpoint-Spam-Info: AW1haW4tMjYwOTE1MDIzMCBTYWx0ZWRfX5x6anCX7evlq 3qNOyXOHx3PTHJGymnV21MSC999YVHFpslg6Q5otHWIv/K4c+R3JJXSTUDGxUORmcOyfvNrwe1v nj2qLAcBINA+KMUvqyKCN80dG0LNe50= X-Authority-Analysis: v=2.4 cv=dcUVTnXe c=1 sm=1 tr=0 ts=6aa96812 cx=c_pps a=IZJwPbhc+fLeJZngyXXI0A==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yOCtJkima9RkubShWh1s:22 a=EUspDBNiAAAA:8 a=rrkOMQA9k9gtoENyNHUA:9 a=QEXdDO2ut3YA:10 a=uG9DUKGECoFWVXl0Dc02:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTE1MDIzMCBTYWx0ZWRfX4Y4I6Nk1S8Kc qot4/6uQKl+QMkIcKmlhLjYgfjMqz3MTNapedzYfZWZG2ZU8wFkI/jbQS4otyF/1zfGP60UyE5F blO/Gk4+M2hwxhBnRnlOyaVWPc6d1PsRmnpHGYHVNNySQUrXrBbFqpjB63uZdlZlGHezrpyUoYc kH8U4PCIvBSVdwGq+HsnCZ9bLoZnEKTeykODmYZkc+fUhGjY5bPQvownWyU/knXM0XHMdQ1kDNr frF2R7WUwIrvcE6VTyJ2dR1vd/xy/hYW6yWhHc5BIMkFlHtw1qbuyPXcFYzEEul4kvVhMzwO2Ue cytYwbNN5ojymlSvsKna5WJ1ZVpAZbD6gXDLWww/biT5/kKRUeAt6iWJtcO6gID73AzfXU5iKuc FtRXp/uzIPyuztr6APtmAGwKTqSKXr4d9+bIlERlL26lro/FALVBrIBcUcPVWhLyj9krXicEu8D FywOxvtcP5B11fy16GQ== X-Proofpoint-GUID: Ca3rFIW3e3hMMFZcaQHCDTg1QvQEqQVm X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-09-15_04,2026-09-15_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 bulkscore=0 impostorscore=0 malwarescore=0 phishscore=0 suspectscore=0 clxscore=1015 spamscore=0 lowpriorityscore=0 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2609040000 definitions=main-2609150230 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1789487142577158500 Read the live PC instead; it already holds the same value once the PC-staging removal in the previous commit landed. Signed-off-by: Brian Cain Reviewed-by: Taylor Simpson --- target/hexagon/cpu.h | 1 - target/hexagon/gen_tcg_sys.h | 2 +- target/hexagon/helper.h | 2 +- target/hexagon/cpu.c | 1 - target/hexagon/cpu_helper.c | 8 -------- target/hexagon/hex_interrupts.c | 4 +--- target/hexagon/hexswi.c | 2 +- target/hexagon/machine.c | 1 - target/hexagon/op_helper.c | 7 +++---- 9 files changed, 7 insertions(+), 21 deletions(-) diff --git a/target/hexagon/cpu.h b/target/hexagon/cpu.h index 5e6772d050b..8a2afdd6426 100644 --- a/target/hexagon/cpu.h +++ b/target/hexagon/cpu.h @@ -136,7 +136,6 @@ typedef struct CPUArchState { uint32_t t_sreg[NUM_SREGS]; =20 uint32_t greg[NUM_GREGS]; - uint32_t wait_next_pc; =20 /* This alias of CPUState.cpu_index is used by imported sources: */ uint32_t threadId; diff --git a/target/hexagon/gen_tcg_sys.h b/target/hexagon/gen_tcg_sys.h index af5032214c4..c9f6b41a877 100644 --- a/target/hexagon/gen_tcg_sys.h +++ b/target/hexagon/gen_tcg_sys.h @@ -80,7 +80,7 @@ #define fGEN_TCG_Y2_wait(SHORTCODE) \ do { \ RsV =3D RsV; \ - gen_helper_wait(tcg_env, tcg_constant_tl(ctx->pkt.pc)); \ + gen_helper_wait(tcg_env); \ } while (0) =20 #define fGEN_TCG_Y2_resume(SHORTCODE) \ diff --git a/target/hexagon/helper.h b/target/hexagon/helper.h index 71c8da4c46d..997d87e38e6 100644 --- a/target/hexagon/helper.h +++ b/target/hexagon/helper.h @@ -136,7 +136,7 @@ DEF_HELPER_3(sreg_write_masked, void, env, i32, i32) DEF_HELPER_3(setprio, void, env, i32, i32) DEF_HELPER_2(start, void, env, i32) DEF_HELPER_1(stop, void, env) -DEF_HELPER_2(wait, void, env, i32) +DEF_HELPER_1(wait, void, env) DEF_HELPER_2(resume, void, env, i32) DEF_HELPER_1(resched, void, env) DEF_HELPER_3(modify_ssr, void, env, i32, i32) diff --git a/target/hexagon/cpu.c b/target/hexagon/cpu.c index 505cd756c09..d760b986776 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -436,7 +436,6 @@ static void hexagon_cpu_reset_hold(Object *obj, ResetTy= pe type) #ifndef CONFIG_USER_ONLY memset(env->t_sreg, 0, sizeof(uint32_t) * NUM_SREGS); memset(env->greg, 0, sizeof(uint32_t) * NUM_GREGS); - env->wait_next_pc =3D 0; env->tlb_lock_state =3D HEX_LOCK_UNLOCKED; env->k0_lock_state =3D HEX_LOCK_UNLOCKED; env->tlb_lock_count =3D 0; diff --git a/target/hexagon/cpu_helper.c b/target/hexagon/cpu_helper.c index eea5f60b46c..ca8fb7f5e65 100644 --- a/target/hexagon/cpu_helper.c +++ b/target/hexagon/cpu_helper.c @@ -214,14 +214,6 @@ 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; diff --git a/target/hexagon/hex_interrupts.c b/target/hexagon/hex_interrupt= s.c index 0b714b73831..ab66d548a1e 100644 --- a/target/hexagon/hex_interrupts.c +++ b/target/hexagon/hex_interrupts.c @@ -349,14 +349,12 @@ static void hex_accept_int(CPUHexagonState *env, int = int_num) qemu_log_mask(CPU_LOG_INT, "%s: thread " TARGET_FMT_ld " resuming, exiting WAIT mode\n", __func__, env->threadId); - elr =3D env->wait_next_pc; clear_wait_mode(env); cs->halted =3D false; } else if (env->k0_lock_state =3D=3D HEX_LOCK_WAITING) { g_assert_not_reached(); - } else { - elr =3D env->gpr[HEX_REG_PC]; } + elr =3D env->gpr[HEX_REG_PC]; =20 if (int_should_dtg(env, int_num)) { int vic_group =3D int_num - 2; diff --git a/target/hexagon/hexswi.c b/target/hexagon/hexswi.c index 4705e915aea..ef1d558dfc4 100644 --- a/target/hexagon/hexswi.c +++ b/target/hexagon/hexswi.c @@ -936,7 +936,7 @@ void hexagon_cpu_do_interrupt(CPUState *cs) case HEX_EVENT_IMPRECISE: env->imprecise_exception =3D 0; if (get_exe_mode(env) =3D=3D HEX_EXE_MODE_WAIT) { - env->gpr[HEX_REG_PC] =3D env->wait_next_pc - 4; + env->gpr[HEX_REG_PC] -=3D 4; clear_wait_mode(env); } switch (env->cause_code) { diff --git a/target/hexagon/machine.c b/target/hexagon/machine.c index 250ff6a6460..627f89bc7fe 100644 --- a/target/hexagon/machine.c +++ b/target/hexagon/machine.c @@ -23,7 +23,6 @@ const VMStateDescription vmstate_hexagon_cpu =3D { VMSTATE_UINT32(env.k0_lock_count, HexagonCPU), VMSTATE_UINT32(env.threadId, HexagonCPU), VMSTATE_UINT32(env.cause_code, HexagonCPU), - VMSTATE_UINT32(env.wait_next_pc, HexagonCPU), VMSTATE_UINT64(env.t_cycle_count, HexagonCPU), VMSTATE_UINT32(env.imprecise_exception, HexagonCPU), =20 diff --git a/target/hexagon/op_helper.c b/target/hexagon/op_helper.c index b58c9f07569..83e05604861 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -1734,7 +1734,7 @@ static void set_wait_mode(CPUHexagonState *env) SET_SYSTEM_FIELD(env, HEX_SREG_MODECTL, MODECTL_W, thread_wait_mask); } =20 -static void hexagon_wait_thread(CPUHexagonState *env, uint32_t PC) +static void hexagon_wait_thread(CPUHexagonState *env) { CPUState *cs; =20 @@ -1761,7 +1761,6 @@ static void hexagon_wait_thread(CPUHexagonState *env,= uint32_t PC) return; } set_wait_mode(env); - env->wait_next_pc =3D PC + 4; =20 cpu_interrupt(cs, CPU_INTERRUPT_HALT); } @@ -1829,12 +1828,12 @@ void HELPER(resched)(CPUHexagonState *env) resched(env); } =20 -void HELPER(wait)(CPUHexagonState *env, uint32_t PC) +void HELPER(wait)(CPUHexagonState *env) { BQL_LOCK_GUARD(); =20 if (!fIN_DEBUG_MODE(env->threadId)) { - hexagon_wait_thread(env, PC); + hexagon_wait_thread(env); } } =20 --=20 2.34.1 From nobody Sat Sep 26 23:03:03 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=1789487139; cv=none; d=zohomail.com; s=zohoarc; b=B6lfocBj3OMwZvvlgv8CZ5+uQBMQWvlWJ8hrjf+NtvaLkIc/Ea5bKut2LLCD95gUFxrVW0fTAFFOpOhTy3cVnvnnE9qi+loPBNkWd+kQhcdf4ELyrdRu6UBjlD8EEVSlHtWxxbLQTZQyDbUB59ioCZy5ZsexdnAo/y6BnA+PLHI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789487139; 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=7BZ35X3MRHZnQ31PuSxL1Ay4xUc5y8jUet3luMY77VY=; b=UTeOMlujWiWMAiDy0xQkSaXvbwNyrw+Pr6DPJkBwi5DiXAuvt5YCi3xLVhkNIRuS5Co3suEvnp/dxGdTO12OaiSdXNTQIvZW+54RqPTbbCwIfLz+RydyN9ukmvBPzVINevvtineo1JgOwxI4S2wUY0wivJmMp8cAWY6zEqIL6+I= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1789487139482459.17513313440816; Tue, 15 Sep 2026 08:45:39 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x6VLk-0003UG-4h; Tue, 15 Sep 2026 11:45:36 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x6VLd-0003Ta-FN for qemu-devel@nongnu.org; Tue, 15 Sep 2026 11:45:29 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x6VLb-0000Cv-UF for qemu-devel@nongnu.org; Tue, 15 Sep 2026 11:45:29 -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 68FFActx813981 for ; Tue, 15 Sep 2026 15:45:26 GMT Received: from mail-pj1-f71.google.com (mail-pj1-f71.google.com [209.85.216.71]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4gq6kc0w6j-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 15 Sep 2026 15:45:26 +0000 (GMT) Received: by mail-pj1-f71.google.com with SMTP id 98e67ed59e1d1-39512608fb1so10679916a91.1 for ; Tue, 15 Sep 2026 08:45: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 d9443c01a7336-2dd2cca264fsm72388495ad.11.2026.09.15.08.45.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 15 Sep 2026 08:45:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= 7BZ35X3MRHZnQ31PuSxL1Ay4xUc5y8jUet3luMY77VY=; b=J0mC0aiKAUud/pSG N7dgWbIocmz3j3wgDGVkhd997Z9MZND15aqyepDX2iw3zxqaHHwO2GIKB7Jd+Lpf kJVYo0hRonbeq21RugnFeXn7JV7tWKfBECkeRH1ibluKodUktydFCMT06JAYSO7f U2Am3keAfg8gN7ldEbRQALS+ZfVTtQK/Bmxx7q+6yAoPbrb+3s84HSSq9j+PuVaj kqUD4RrbfKzR2p0hJvBCIeA3CjvWWB/230T4Nd0RAjXh28oC7t1f/RJ8nESfFrdd aO9W1X3dLo4PTPQUsbAmyvbwxZdpGzMOIzjSiRSJYvROR4kzc0JGRX/iNIaqImiW 6wU8Bw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1789487126; x=1790091926; darn=nongnu.org; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:from:to:cc:subject :date:message-id:reply-to:content-type; bh=7BZ35X3MRHZnQ31PuSxL1Ay4xUc5y8jUet3luMY77VY=; b=DWDlBKVk+7VTpFJLP5qkdxs5bvtdurIebpcLtpogFWNb6AcHhiK+SprzGsT1CzGiJE QXeHkmqywfHTKbaWxlJhLjwO4WrXudmm5QBQ7ptqgkp5Obcj54BmFan22aVnckHvN157 /manXJRxqgwdBkqvQTe2Y/Zzq/KLtefAUjH5JeJ/ilzQ08+3vIOzwLIDbpjTR5dyBw5g EO0Cr+o/dg8g8GyXiCUjzS7xtA6ia1pI3U9dlz+/KzatFKmLUlLQWJNvN5tyUROvu7Yg tgMC7hV5fNmaBI254gaqMmDcDNzsS1tS8g6CIkdMWFucN/Xx7a6PaL8AQ+I2Fn1lW+7l ug8Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789487126; x=1790091926; h=content-transfer-encoding:content-type: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 :content-type; bh=7BZ35X3MRHZnQ31PuSxL1Ay4xUc5y8jUet3luMY77VY=; b=IUfLxzmkxk1l3DqQBVaNucbhncwC9eL61RNHaRdoNulWItSnDx/BcwpUHYiVcorwjs 9b/alKOge7bOixE2CPSm4+QmqKjFyv5pYz9NHnF1hjkYVjM49TF/gPAoo8SCXo10gWfO LrWs9pI9UHWgdXmmI7jxtyD70pvCnCOz0CPWFg8vV8Yu9WqUyUvivO0ptqjhmuFgaK6b fWVwfSCap0/qKw5ly9dRa1ytFFZQ1GeR2HGvpzU0gEilPaBDYwyuun7mbWdtnplCP/hm titydmJUn5yWxe8KPKp+1aHPhOlInhwuXbTbnErOOmDkeYi0bdQrebQ8az4qcPzZoDTl Z85A== X-Gm-Message-State: AFuF++n91zqPaMwUO0kPQm2gcUgsbhdayfGlMjgcJfUYr4AzBiScrUp3 Vycm+10hDRiZr2q7slmzeZGMkWzpGppi7ThjN3KFv7VPnuSJknyT5h4fsdaO/78hiqIiJiXOzI6 6yEQtq64AMGkcj8EQ9K0NvMJ7wXYcY3r+bBVGXG2QNkgRIEsHjZVieOfDEIzNsBvdZw== X-Gm-Gg: AYBFou0cdRhpDdUPpbgjDoKnR4H3jyB8ShZ3ZDIOyti+hDBngdI17JSjx/kFZ0Uv2rb pFt+/N8lkQkCgYTP9bK0eC0t/QEDONz11hgYfp/n9EjhJt+zmSUf9vXArIM8mnlLzpi0EdCBpV4 qaYFrGxw6jzcqlfI+SzpU+vQ8Xqw0WCslbz2TzImTAfeQJ3TFiKZhZSwoipmeiqjz89vH7FK2Xw dO2KQ70Qot3y4/GGyW9zJj60iMn5fYAaka5VcLla9mh5uU+Kyhpt7AK3AgwQTLZXH6Qyh+Aqv0r HS2Ul+fC6rObzspf1z+Dirc9ARB9pKF2GxkMYN8ytpsWxMyIjvQGU4U7mEwQZEbDTbe1E8PSLLW N15mjKmrhx+X4grN0Gf/2kEVlIZ+jTGPJrktVtmMvkIwkg6on X-Received: by 2002:a17:902:ce86:b0:2db:5f00:ff52 with SMTP id d9443c01a7336-2dd83881f8emr28286965ad.22.1789487125772; Tue, 15 Sep 2026 08:45:25 -0700 (PDT) X-Received: by 2002:a17:902:ce86:b0:2db:5f00:ff52 with SMTP id d9443c01a7336-2dd83881f8emr28283295ad.22.1789487122575; Tue, 15 Sep 2026 08:45:22 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: ltaylorsimpson@gmail.com, Pierrick Bouvier , Brian Cain Subject: [PATCH 4/4] tests/functional/hexagon: add bestwait systest Date: Tue, 15 Sep 2026 08:45:02 -0700 Message-Id: <20260915154502.4106597-5-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260915154502.4106597-1-brian.cain@oss.qualcomm.com> References: <20260915154502.4106597-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Proofpoint-Spam-Info: AW1haW4tMjYwOTE1MDIzMCBTYWx0ZWRfXwtZXYdWBUlpc 9suQFj/ooZfR5Oq1sc4y4Ll+K8RzVvWA7wTgU6tcL90Vl/71uG2oBehxcFuHGKp+vQJzjiCqJe6 sXS0YteY76fls5bqm7Aparrj4aK3fG4= X-Proofpoint-GUID: rUEfTYLvC9uHQ-40Mrv-PsVjF1W9LowV X-Authority-Analysis: v=2.4 cv=ZINCCn7b c=1 sm=1 tr=0 ts=6aa96816 cx=c_pps a=UNFcQwm+pnOIJct1K4W+Mw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=Um2Pa8k9VHT-vaBCBUpS:22 a=EUspDBNiAAAA:8 a=G6xO-O9Vq6nTrtAJ6VoA:9 a=QEXdDO2ut3YA:10 a=uKXjsCUrEbL0IQVhDsJ9:22 X-Proofpoint-ORIG-GUID: rUEfTYLvC9uHQ-40Mrv-PsVjF1W9LowV X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTE1MDIzMCBTYWx0ZWRfX1Cnv12gj/3mS 7jHvbIBmoGEmGYyMSMkAn/IMnDosx8s0lCiUgymhl4zxWMfGii/jPbDkwLsjGSEk1H1/i5bCwqg FvqzWx8hzfdDf97S7v8likxnsxittEcB2w4gLDbTa7orFstG4la2zqoKJS30efXNxX1pAwJW7uH C6FLHxLWK4ArFfeG3bJLaJLsz3hozpIs5MtfFTzLRtEzsZdz9L1WBjHM+L6N5tKJife5SBMfMeN /iA9FgCRUqGEZ8/wzu5EYUDo1ismDqEbw5mepG/uGRZoEpbmcnP9Ip/TN6NCbgA8+hZvU9EXBO6 4bJMzb4ezHeofPMVDB7IworKbh+p2kM9Z5TYXeiZ2glCr6BP2TwWoaKvaqRudgtlEVt68gtpjFo Sd3d4rJ6w51JW0wvQntDwbh+wW6rfIEYqQucHaH4CPeNRArO3/f+S60AZJlhadgIdb3pgBTcgOy 7WVPBugdDtBtvR43lFg== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-09-15_04,2026-09-15_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 spamscore=0 clxscore=1015 lowpriorityscore=0 impostorscore=0 adultscore=0 bulkscore=0 phishscore=0 priorityscore=1501 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2609040000 definitions=main-2609150230 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1789487140487158500 Signed-off-by: Brian Cain Acked-by: Taylor Simpson --- tests/functional/hexagon/test_systests.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tests/functional/hexagon/test_systests.py b/tests/functional/h= exagon/test_systests.py index 2779efa9172..15c6d22acfa 100755 --- a/tests/functional/hexagon/test_systests.py +++ b/tests/functional/hexagon/test_systests.py @@ -93,6 +93,9 @@ def test_semihost(self): def test_dtg_interrupt(self): self.run_exit_zero("dtg_interrupt") =20 + def test_bestwait(self): + self.run_exit_zero("bestwait") + def test_mmu_multi_tlb(self): self.run_exit_zero("mmu_multi_tlb") =20 --=20 2.34.1