From nobody Sun Apr 12 04:22:14 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1770951445; cv=none; d=zohomail.com; s=zohoarc; b=BJ1ildNBokRZB7oM6VL7hQ4/neJ8LcpJ5FlL98jm6SnM3WEeyGDisFy+OUD4tdJuGlmTBKOPrFOGdhWYefZzBVA8Pg7yIR3ubs42pIIkjONbmqXf2qkYl79X7Uw9T8dSoW2ygkGAsYh7DI3nILKw36DK4mtA6TPGdEQf9t0QcQc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770951445; 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=52a52quB+EV04dt3+SopD5+MKUMQjmvEO2kX71lappA=; b=ef+ICwcUHXWr1XS4LjV2OTXo7CMXxONpQMa1oxPQ52gjcD2KEHC0PD2IeJXecyb0OI5zz3dfIxs8SM2QCH+7Qq81YBJb20QiwnItyTp6QGN+1Zg/EtU4CNduQLZaXngvXOyNE8Y5LoaTnIa4fJTKf9phwesJPsOgWzMZ7n5Wk5o= 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 1770951445705487.3802999541549; Thu, 12 Feb 2026 18:57:25 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vqjLh-0006F5-0Q; Thu, 12 Feb 2026 21:56:05 -0500 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 1vqjLb-0006Cn-MN for qemu-devel@nongnu.org; Thu, 12 Feb 2026 21:55:59 -0500 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 1vqjLY-0005Dx-9d for qemu-devel@nongnu.org; Thu, 12 Feb 2026 21:55:59 -0500 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 61CLRYwL332319 for ; Fri, 13 Feb 2026 02:55:53 GMT Received: from mail-dy1-f197.google.com (mail-dy1-f197.google.com [74.125.82.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4c9cyab81e-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 13 Feb 2026 02:55:53 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-2ba8013a9e3so581979eec.0 for ; Thu, 12 Feb 2026 18:55:53 -0800 (PST) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2ba9dbd5d3esm4500943eec.10.2026.02.12.18.55.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 12 Feb 2026 18:55:50 -0800 (PST) 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= 52a52quB+EV04dt3+SopD5+MKUMQjmvEO2kX71lappA=; b=LT15paIBkoaINqtK A/cvYdb/CmpO9CpqL/e3q5sPsQTghHmtT1qxNhpujJ8IIihCr4tDPVhmx+0SUwDa 3a/Y13kVukBxVHth5Wvz1tsB4kzzDjKHaK1cT1WyN6uxhZUdxt5pWYlawcvl7i+j Mx21eHFyHEb35mhlYm6CRPFTZebwEH5zDnAXx8VigQHZrtQTY7y97AFbMQpO9Bin if8rPIxFwUR8IU0QbcN+uzAj4fh1r+FT8GpSVEdkMzDJkii9N5Kxnl5Oynia6YIE sd4b/nj1T1vovutnV39ogkbBeVu0iFLU9KePxisPlEK95EoXjZM3Orbn3+vRo/HS cmBfKA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1770951352; x=1771556152; 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=52a52quB+EV04dt3+SopD5+MKUMQjmvEO2kX71lappA=; b=DO3CVwSZoJmR1hyMNG7YT9QXc5QWLs6eHh75UTu6XCErpHyvNUB29HhwRaZbftYb9l Ph1K5CvrD5UcVYQEKIUu7ewcXS+8BwMNLVDsC8mA3+3Non114/I/DH3CuphVtUxt8hMF kZlxvd1kadekzbZFtvMRPUbekTlXsPtgV/uSDoPzgmSoMNNGZ7t5XjjFT2mcmDJglqpY vRb4Jzei64j11BZcnfIeUC2sWr43WDKcIHzJ0ak8qJcBacADszdlAGXqPcHXExxiR4Fx V+B1HPIS5wh8QeszUbP/wlpcXnVX2lhjWBgXF0ONU2Cl3qPpZ9U3IZZX/5qX5rs3rtRx gVGA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1770951352; x=1771556152; 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=52a52quB+EV04dt3+SopD5+MKUMQjmvEO2kX71lappA=; b=TJju43vLEnG+ImPC1MH4eTXeNzNe3s/a722leMNKvu0FhjGWGFZc3V7Q8rKlQWG2ze U7qlZTEgil6J4wdeBFmrEGTzNdVmzy7svJ08brVAlLHlUBxl+nDQhm6sxTRuvA2zhYYB fKH3jLiNugMljhtr07e0q5numYNC29Rc/1mbwYye0xYfj32/km/K/g6pePbC8aVQ5TYd aI4PvjZ34Qjek+OeCoUhYoxpt4sCIRUKhNdf1GICJdJfq0h+ArRhhzFOWbsQx0FyNBw2 0slGphxmVPxGFcey/7t2r9EpzNVakkeRsKMef2god8RBbIL7ImGki8T0ub3GpZ5p817p 4k1w== X-Gm-Message-State: AOJu0YwMWAGMqwXbBO1R8f2kZq0ztvozWnCv8pbKT9a7RH6CLrXxa63p AEn34Y/aDsccTSB7LukHSyuZN3TcVJ/HVzziwC48po1d4YR73d9a87tpKLUk7ktXadoWWXKGrTx TJReLpL6JwNADRhsIs6CDJdWvgbxhcR4fiG9tTCTis8X3lZiBdI+Ht6eSqcfeaXVaEA== X-Gm-Gg: AZuq6aI3Kanf6w+K8LBBlqBKfyFb9n+qHXcTeTSdbVCaO47fCp1n1SZexjgQkK3PvbZ aZdVq9diEcNFg+yeEyc8SMLdzijoeIyxgpx00QtjT+10usI1xxcPoor7IkYf7E7e1mTSywHQiOj hgoKN+dZ8B6apSZrlEcfrrcIBXclaoleJ9NllEO4j/loCdMt57ruKk6HZlkyMTgJ/6TGJWBxX5a imG5WZmPCPVcIjFICK4hVXdQ9Dh94kRq7k7JnAYrv15wyVUDHhFkbFZepYdNuz4/I62CPIL7r0n IpWj/Qg+34dWiskW+X3nt93S+dakFDBeS3W14Tn88ReYYgf0SVO06O1+eaBuAFOhXH2fLEbY3S4 rpcjR/rXkPJVFGgqXhRDuFpJPhVC6hnaZE2OQ+oD5zebhaPt4YqxLjGwJvxq7q26FK3bXeA== X-Received: by 2002:a05:7301:3808:b0:2ba:a4dc:5c21 with SMTP id 5a478bee46e88-2babc53a854mr149335eec.27.1770951352256; Thu, 12 Feb 2026 18:55:52 -0800 (PST) X-Received: by 2002:a05:7301:3808:b0:2ba:a4dc:5c21 with SMTP id 5a478bee46e88-2babc53a854mr149327eec.27.1770951351687; Thu, 12 Feb 2026 18:55:51 -0800 (PST) From: Brian Cain To: qemu-devel@nongnu.org, peter.maydell@linaro.org Cc: brian.cain@oss.qualcomm.com, ltaylorsimpson@gmail.com, Pierrick Bouvier , Laurent Vivier Subject: [PULL 1/7] target/hexagon: Fix invalid duplex decoding Date: Thu, 12 Feb 2026 18:55:38 -0800 Message-Id: <20260213025544.2497992-2-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260213025544.2497992-1-brian.cain@oss.qualcomm.com> References: <20260213025544.2497992-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: PsUDmJr_qy_MfTiT9nw_EfkGFBkuUv92 X-Authority-Analysis: v=2.4 cv=OrBCCi/t c=1 sm=1 tr=0 ts=698e92b9 cx=c_pps a=Uww141gWH0fZj/3QKPojxA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=HzLeVaNsDn8A:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=Mpw57Om8IfrbqaoTuvik:22 a=GgsMoib0sEa3-_RKJdDe:22 a=p0WdMEafAAAA:8 a=KKAkSRfTAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=OCWrEZw6VeUBrM89gJgA:9 a=QEXdDO2ut3YA:10 a=PxkB5W3o20Ba91AHUih5:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-ORIG-GUID: PsUDmJr_qy_MfTiT9nw_EfkGFBkuUv92 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMjEzMDAyMCBTYWx0ZWRfX39/WJ5Ri8TS6 7aUWC3NT+9m5+4Tn4pVHfEKDqVirNsWelTlSyLEzhjemkcJWVYur50UC+4S/AuUhxFwWbgZ9DKM OCMcV2asfekgR0VV+Scy3fzwAK+S2tcKaw/PLpua6/pscHLvYcHlBRdhGGZKyjF/hvQroUdVrYL 2VZloyqHUS8fKvsIpvn2v6kgLdHadkL79zXt/AzpxwvIToXkOUwoEH0eJiT8mrnumdd+i0SVXZq JRVXL7oMiH3iTCAlS+7sHRV/s2mTH7nHBIqCH4QReznWDdCFSgoNpjqDLvc80eUFqa7c6W29JK1 6h875NtV9SrEmUFfN61rFpmCMSSHigmEyBdRuuWnGxKUt0bXwzRRjMHWclWZ8KMdRZlCJLNdSM5 NTibg5kJYBQprJ1UNGSk9TGTyz1UQdG2KQ7nQ2NsLmBEXyAtD7dLwobVq1++s2kv2aLD7CW41QJ 9w6q0FwRTFsIeZXwZYg== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-02-12_05,2026-02-12_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 bulkscore=0 suspectscore=0 spamscore=0 impostorscore=0 malwarescore=0 phishscore=0 lowpriorityscore=0 priorityscore=1501 clxscore=1015 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2601150000 definitions=main-2602130020 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1770951446956154100 When decoding a duplex instruction, if the slot0 sub-instruction fails to decode after slot1 succeeds, QEMU was leaving the packet in a partially-decoded state. This allowed invalid duplex encodings (where one sub-instruction doesn't match any valid pattern) to be executed incorrectly. Fix by resetting the decoder state when slot0 fails, returning an empty instruction that triggers an exception. Add gen_exception_decode_fail() for raising exceptions when decode fails before ctx->next_PC is initialized. This keeps gen_exception_end_tb() semantics unchanged (it continues to use ctx->next_PC for the exception PC after successful decode). Resolves: https://gitlab.com/qemu-project/qemu/-/issues/3291 Reviewed-by: Pierrick Bouvier Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- linux-user/hexagon/cpu_loop.c | 4 ++ target/hexagon/decode.c | 13 ++++- target/hexagon/translate.c | 18 ++++++- tests/tcg/hexagon/invalid-encoding.c | 81 ++++++++++++++++++++++++++++ tests/tcg/hexagon/Makefile.target | 1 + 5 files changed, 113 insertions(+), 4 deletions(-) create mode 100644 tests/tcg/hexagon/invalid-encoding.c diff --git a/linux-user/hexagon/cpu_loop.c b/linux-user/hexagon/cpu_loop.c index 1941f4c9c1..c0e1098e3f 100644 --- a/linux-user/hexagon/cpu_loop.c +++ b/linux-user/hexagon/cpu_loop.c @@ -64,6 +64,10 @@ void cpu_loop(CPUHexagonState *env) force_sig_fault(TARGET_SIGBUS, TARGET_BUS_ADRALN, env->gpr[HEX_REG_R31]); break; + case HEX_CAUSE_INVALID_PACKET: + force_sig_fault(TARGET_SIGILL, TARGET_ILL_ILLOPC, + env->gpr[HEX_REG_PC]); + break; case EXCP_ATOMIC: cpu_exec_step_atomic(cs); break; diff --git a/target/hexagon/decode.c b/target/hexagon/decode.c index b5ece60450..69ba1ec96c 100644 --- a/target/hexagon/decode.c +++ b/target/hexagon/decode.c @@ -509,8 +509,14 @@ decode_insns(DisasContext *ctx, Insn *insn, uint32_t e= ncoding) insn->iclass =3D iclass_bits(encoding); return 2; } + /* + * Slot0 decode failed after slot1 succeeded. This is an inval= id + * duplex encoding (both sub-instructions must be valid). + */ + ctx->insn =3D --insn; } - g_assert_not_reached(); + /* Invalid duplex encoding - return 0 to signal failure */ + return 0; } } =20 @@ -674,7 +680,10 @@ int decode_packet(DisasContext *ctx, int max_words, co= nst uint32_t *words, encoding32 =3D words[words_read]; end_of_packet =3D is_packet_end(encoding32); new_insns =3D decode_insns(ctx, insn, encoding32); - g_assert(new_insns > 0); + if (new_insns =3D=3D 0) { + /* Invalid instruction encoding */ + return 0; + } /* * If we saw an extender, mark next word extended so immediate * decode works diff --git a/target/hexagon/translate.c b/target/hexagon/translate.c index e88e19cc1a..7fe8b35351 100644 --- a/target/hexagon/translate.c +++ b/target/hexagon/translate.c @@ -195,7 +195,21 @@ static void gen_exception_end_tb(DisasContext *ctx, in= t excp) tcg_gen_movi_tl(hex_gpr[HEX_REG_PC], ctx->next_PC); gen_exception_raw(excp); ctx->base.is_jmp =3D DISAS_NORETURN; +} =20 +/* + * Generate exception for decode failures. Unlike gen_exception_end_tb, + * this is used when decode fails before ctx->next_PC is initialized. + */ +static void gen_exception_decode_fail(DisasContext *ctx, int nwords, int e= xcp) +{ + target_ulong fail_pc =3D ctx->base.pc_next + nwords * sizeof(uint32_t); + + gen_exec_counters(ctx); + tcg_gen_movi_tl(hex_gpr[HEX_REG_PC], fail_pc); + gen_exception_raw(excp); + ctx->base.is_jmp =3D DISAS_NORETURN; + ctx->base.pc_next =3D fail_pc; } =20 static int read_packet_words(CPUHexagonState *env, DisasContext *ctx, @@ -935,7 +949,7 @@ static void decode_and_translate_packet(CPUHexagonState= *env, DisasContext *ctx) =20 nwords =3D read_packet_words(env, ctx, words); if (!nwords) { - gen_exception_end_tb(ctx, HEX_CAUSE_INVALID_PACKET); + gen_exception_decode_fail(ctx, 0, HEX_CAUSE_INVALID_PACKET); return; } =20 @@ -950,7 +964,7 @@ static void decode_and_translate_packet(CPUHexagonState= *env, DisasContext *ctx) gen_commit_packet(ctx); ctx->base.pc_next +=3D pkt.encod_pkt_size_in_bytes; } else { - gen_exception_end_tb(ctx, HEX_CAUSE_INVALID_PACKET); + gen_exception_decode_fail(ctx, nwords, HEX_CAUSE_INVALID_PACKET); } } =20 diff --git a/tests/tcg/hexagon/invalid-encoding.c b/tests/tcg/hexagon/inval= id-encoding.c new file mode 100644 index 0000000000..010a5eb741 --- /dev/null +++ b/tests/tcg/hexagon/invalid-encoding.c @@ -0,0 +1,81 @@ +/* + * Test that invalid instruction encodings are properly rejected. + * + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include +#include +#include +#include +#include +#include + +static void *resume_pc; + +static void handle_sigill(int sig, siginfo_t *info, void *puc) +{ + ucontext_t *uc =3D (ucontext_t *)puc; + + if (sig !=3D SIGILL) { + _exit(EXIT_FAILURE); + } + + uc->uc_mcontext.r0 =3D SIGILL; + uc->uc_mcontext.pc =3D (unsigned long)resume_pc; +} + +/* + * Each test function: + * - Sets r0 to something other than SIGILL + * - Stores the resume address into resume_pc + * - Executes the invalid encoding + * - The handler sets r0 =3D SIGILL and resumes after the faulting packet + * - Returns the value in r0 + */ + +/* + * Invalid duplex encoding (issue #3291): + * - Word 0: 0x0fff6fff =3D immext(#0xfffbffc0), parse bits =3D 01 + * - Word 1: 0x600237b0 =3D duplex with: + * - slot0 =3D 0x17b0 (invalid S2 subinstruction encoding) + * - slot1 =3D 0x0002 (valid SA1_addi) + * - duplex iclass =3D 7 (S2 for slot0, A for slot1) + * + * Since slot0 doesn't decode to any valid S2 subinstruction, this packet + * should be rejected and raise SIGILL. + */ +static int test_invalid_duplex(void) +{ + int sig; + + asm volatile( + "r0 =3D #0\n" + "r1 =3D ##1f\n" + "memw(%1) =3D r1\n" + ".word 0x0fff6fff\n" /* immext(#0xfffbffc0), parse=3D01 */ + ".word 0x600237b0\n" /* duplex: slot0=3D0x17b0 (invalid) */ + "1:\n" + "%0 =3D r0\n" + : "=3Dr"(sig) + : "r"(&resume_pc) + : "r0", "r1", "memory"); + + return sig; +} + +int main() +{ + struct sigaction act; + + memset(&act, 0, sizeof(act)); + act.sa_sigaction =3D handle_sigill; + act.sa_flags =3D SA_SIGINFO; + assert(sigaction(SIGILL, &act, NULL) =3D=3D 0); + + assert(test_invalid_duplex() =3D=3D SIGILL); + + puts("PASS"); + return EXIT_SUCCESS; +} diff --git a/tests/tcg/hexagon/Makefile.target b/tests/tcg/hexagon/Makefile= .target index e5182c01d8..16669e04a8 100644 --- a/tests/tcg/hexagon/Makefile.target +++ b/tests/tcg/hexagon/Makefile.target @@ -51,6 +51,7 @@ HEX_TESTS +=3D scatter_gather HEX_TESTS +=3D hvx_misc HEX_TESTS +=3D hvx_histogram HEX_TESTS +=3D invalid-slots +HEX_TESTS +=3D invalid-encoding HEX_TESTS +=3D unaligned_pc =20 run-and-check-exception =3D $(call run-test,$2,$3 2>$2.stderr; \ --=20 2.34.1 From nobody Sun Apr 12 04:22:14 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1770951446; cv=none; d=zohomail.com; s=zohoarc; b=m80ng+paCdVIYtvPxlbVkysj7WCMQQAsmFRqw9l+UqFFRL0ydPrkPZrdGhhWUj1RL77ptBuiMAv++3CM4QhFAfC1d+Y1WNNaFDan+DVVssz6vgXEf6RZzOdraXhDqqnzEfVQy7GfOg0wbd29AgBU08sUFVQI5uTAyojSNP7kD7c= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770951446; 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=GexMtmgfGvMqUlr405tGcNusaInSecWFUKDx3/DCuI8=; b=IrCn6csHypgdT8MACYe0sXLi6Vk7R2ZFLEiBX6UTuwiC5+mNI/kLyKEQqeqqgYBbtU4x6yRO96LkEBTtguTqvCSNlZylrLLRpc18a5V2LrSZt1HAr0ltHQTLxCJzMBClncRE7vi4CGuddbYCjgIbzINZe3lzvffgQaq+jYlFOHk= 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 1770951446404104.85841901962453; Thu, 12 Feb 2026 18:57:26 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vqjLd-0006Du-5M; Thu, 12 Feb 2026 21:56:01 -0500 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 1vqjLZ-0006CO-Vm for qemu-devel@nongnu.org; Thu, 12 Feb 2026 21:55:58 -0500 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 1vqjLY-0005Dz-9Z for qemu-devel@nongnu.org; Thu, 12 Feb 2026 21:55:57 -0500 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 61CIlNsr455058 for ; Fri, 13 Feb 2026 02:55:54 GMT Received: from mail-dy1-f200.google.com (mail-dy1-f200.google.com [74.125.82.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4c9mev1g2p-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 13 Feb 2026 02:55:54 +0000 (GMT) Received: by mail-dy1-f200.google.com with SMTP id 5a478bee46e88-2b6b9c1249fso741710eec.1 for ; Thu, 12 Feb 2026 18:55:53 -0800 (PST) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2ba9dbd5d3esm4500943eec.10.2026.02.12.18.55.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 12 Feb 2026 18:55:52 -0800 (PST) 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= GexMtmgfGvMqUlr405tGcNusaInSecWFUKDx3/DCuI8=; b=BJ9DLfW5ECWU8CGO 5MQn6NqpB6809mvPFDLD6uDYyKhHSNcNsZdTbkr/HJ/uEDkEH3uCg5djPIjZ/Gv9 VTPdwHjFZII1QHcBk8spvVnzNgX3cPsInHyNHGbzKmngFNTqjcG5DFbd7z1SPmwK SsIyKn/Y65CA8g3KiO1/cls/b1+DkV8df9wOwT/jTDtQ1w7zP1U7JfXjX/TwB1uP BR8Pvj3CKWSVy7a0iCYxwDvP/OqUz2nKhAvmO3Q719dAM5ng9uUZacOEyRcRHh+N Etn/QvH+uDMTciwrp2HMNrLsE9/8n590sD+zKQmydQ0YTiwL9ZA0Z3qByCNLrHcD A4Akrg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1770951353; x=1771556153; 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=GexMtmgfGvMqUlr405tGcNusaInSecWFUKDx3/DCuI8=; b=Ci3QsItrx72wE6HEmJA4Pop3w9mkwY5FpIB9UO6U0DP7W6Eml9YDmSrlZeYQZ4wh/S +QIEtcz1JPRkdlvWC7ZvuvwHQ590WxnJeRZM60PQq6bOrShgdDih787paeBnJMpJk7b0 QEQeKKRAE3iknmAWq2K6hF1ovTYPPiL3CfpPWy6625hFboUsXBURwdhuCebipi3A9zuX Ha3AbG9Hu8UAeh+wUh5M2USDgBhNX+fxqqVJtJxb3DLh+slt7qf6mgH9d7EMaklfcbjY w6a1xuqh4Ih6u4qZXgi8RJ5CNPdgqhw3ZQxP0gqcTvPcSpfcS4W6WJAtTE5zT5BVPs+G Q2Ng== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1770951353; x=1771556153; 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=GexMtmgfGvMqUlr405tGcNusaInSecWFUKDx3/DCuI8=; b=LyRUGntXEuK8CtRx7wKTx2jJrx2JBoRweZMdwRUCKwvlvQGFhnwMzf7zlpDKa6J+oO fdBoUpJhnkseWIBjlzNpykRsAYYFKIP4pmVLr/ixcge7vMO2H79Ips2YOMm0N4Aed8qR LarI/ZTs35lgrYdA14643/i+zdDKWdx0VbJVIow8qyjhfLW4fmWuKjbI1wcbCK56WYxv RXZJJM8eX/u8zWdB3xAaicK/HoD0ceNYijSZyn/qCdooNW/C+tGU9Z3iKnCPcVnLsFoJ 6FqSC1jWXCu8hXNLzDpmERT4cblfGC+HXqz5VvSej3LoJ6IMdbjt5s3/Abw7kaHwpjWP iIeg== X-Gm-Message-State: AOJu0Yypnel2OgE/vxDhhaoZEZ8bTVDgicUknkYZcZPSzmgIKv3QOHO/ p2SpRqBwXj6T6HWX7HkEaZFsgIcsClh2tQA7FFNjw7ZVXyEKAIe2q1F/kCjmSKxg/fntwKDRnUh IzSMRgHK3HebdWsIso5ZrRNVMltGzBQAwmCoBdkVfYh2BIp4O4ZiTDgefhvX5MiODeQ== X-Gm-Gg: AZuq6aK9Owf+xP5cuC4VrTox+z6M8iie2KAU1XutwiabkSdOX2MiYEs+PewGzWK1AVP owMpWBsYyGG1lIHC+H6eHNnLp8cVB89NWUvJ+EAvxHDP+6sgQgAPFqXIyXf34pkZUBGlTtl6tcb I8OSQSjHYuGiRBjCBaxLGth73a6Z2Frff1gTXq+lBFaaqj3DFr43+jOiEOOVxfwd3k1N2QOtIBk pF7SMCRk3PFBh7IO3gTeHQTB5m8Gpmpj5/PQwQuE+GaDbVRWp0xuGl7xPOADpIw6gP5zP7isiQb BhHD0dErtg9N7vLt8ReDSigtyhowCNveWOdkObJqCNLa4mAtAQ5TgXPuHijgsxArkTcUo1pfybT XlsWgChdh8q+FTIW5Bt39kWZujYBOoAqYndv80Lr0rl8L66R7X6DR1C9cuVBU8UK5/yRjoA== X-Received: by 2002:a05:7301:1695:b0:2ba:68d6:47b6 with SMTP id 5a478bee46e88-2babc4a9f6emr125435eec.35.1770951352910; Thu, 12 Feb 2026 18:55:52 -0800 (PST) X-Received: by 2002:a05:7301:1695:b0:2ba:68d6:47b6 with SMTP id 5a478bee46e88-2babc4a9f6emr125426eec.35.1770951352404; Thu, 12 Feb 2026 18:55:52 -0800 (PST) From: Brian Cain To: qemu-devel@nongnu.org, peter.maydell@linaro.org Cc: brian.cain@oss.qualcomm.com, ltaylorsimpson@gmail.com, Pierrick Bouvier Subject: [PULL 2/7] target/hexagon: Return decode failure for invalid non-duplex encodings Date: Thu, 12 Feb 2026 18:55:39 -0800 Message-Id: <20260213025544.2497992-3-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260213025544.2497992-1-brian.cain@oss.qualcomm.com> References: <20260213025544.2497992-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=Zq7g6t7G c=1 sm=1 tr=0 ts=698e92ba cx=c_pps a=PfFC4Oe2JQzmKTvty2cRDw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=HzLeVaNsDn8A:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=Mpw57Om8IfrbqaoTuvik:22 a=GgsMoib0sEa3-_RKJdDe:22 a=KKAkSRfTAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=D67r-eMCZ0zeLs--bqkA:9 a=QEXdDO2ut3YA:10 a=6Ab_bkdmUrQuMsNx7PHu:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-ORIG-GUID: _gKRVDT57z6q848fbKTd6LZnv2wh7JqA X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMjEzMDAyMSBTYWx0ZWRfX6P14VE62liv7 JtBoXi7dTjKt4sEwcMKJuwvzhbqJBp6NaUJBXqUpk8B9ZuOlOjgoKIBbFg58pMhJs0qTXryy7Vm vhzkKsGJOpGJ9TM3QI6oS1X6VQuyjzu9UwCvPcQCDAsxTXB3g++vV1JoE5Q38uI7taGWUuhEIWp zAyWNMrxxYJC7LgF/dw5EYIM5kGUjrS6QR8wXsTLDM42asQB9n0bpjltrX2J03SH4E0ySlwBW5l KH7lcrC81rWsbDVuF3UyGyR5wgZTo1cCdyuu8/6vKYMKS6kuNosKkZJw1nnvAx4/Zj6LJ34AFAb V/29Z7gOtllOehIPFnx6NMdKlsnYCR5r4vur1RWo+LObPBTjVgB+2TMZM18oR91/xObhuya/7UG vlRBnwRF2huuEW/gVhDZBImbuxsPl++7Ed2vm5+pgGcrdE0fGWDQsPbmLUAJL3n/SntOOElIOBL CHtQbaKFtReTc5YqFuA== X-Proofpoint-GUID: _gKRVDT57z6q848fbKTd6LZnv2wh7JqA X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-02-12_05,2026-02-12_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 lowpriorityscore=0 adultscore=0 priorityscore=1501 impostorscore=0 suspectscore=0 malwarescore=0 phishscore=0 bulkscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2601150000 definitions=main-2602130021 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1770951448700158500 When a non-duplex encoding (parse_bits !=3D 0) fails both decode_normal() and decode_hvx(), the decoder hit an unreachable. Instead, handle the decode failure and raise an exception. Reviewed-by: Pierrick Bouvier Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/decode.c | 3 ++- tests/tcg/hexagon/invalid-encoding.c | 25 +++++++++++++++++++++++++ 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/target/hexagon/decode.c b/target/hexagon/decode.c index 69ba1ec96c..33ad60c5b4 100644 --- a/target/hexagon/decode.c +++ b/target/hexagon/decode.c @@ -489,7 +489,8 @@ decode_insns(DisasContext *ctx, Insn *insn, uint32_t en= coding) insn->iclass =3D iclass_bits(encoding); return 1; } - g_assert_not_reached(); + /* Invalid non-duplex encoding */ + return 0; } else { uint32_t iclass =3D get_duplex_iclass(encoding); unsigned int slot0_subinsn =3D get_slot0_subinsn(encoding); diff --git a/tests/tcg/hexagon/invalid-encoding.c b/tests/tcg/hexagon/inval= id-encoding.c index 010a5eb741..639d7f2495 100644 --- a/tests/tcg/hexagon/invalid-encoding.c +++ b/tests/tcg/hexagon/invalid-encoding.c @@ -65,6 +65,30 @@ static int test_invalid_duplex(void) return sig; } =20 +/* + * Invalid non-duplex encoding: + * The encoding 0xffffc000 has parse bits [15:14] =3D 0b11, making it a + * non-duplex instruction and packet end. The remaining bits do not match + * any valid normal or HVX instruction encoding, so this should raise SIGI= LL. + */ +static int test_invalid_nonduplex(void) +{ + int sig; + + asm volatile( + "r0 =3D #0\n" + "r1 =3D ##1f\n" + "memw(%1) =3D r1\n" + ".word 0xffffc000\n" + "1:\n" + "%0 =3D r0\n" + : "=3Dr"(sig) + : "r"(&resume_pc) + : "r0", "r1", "memory"); + + return sig; +} + int main() { struct sigaction act; @@ -75,6 +99,7 @@ int main() assert(sigaction(SIGILL, &act, NULL) =3D=3D 0); =20 assert(test_invalid_duplex() =3D=3D SIGILL); + assert(test_invalid_nonduplex() =3D=3D SIGILL); =20 puts("PASS"); return EXIT_SUCCESS; --=20 2.34.1 From nobody Sun Apr 12 04:22:14 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1770951426; cv=none; d=zohomail.com; s=zohoarc; b=gHrCndJ1QfTGgZ9l8iiXnKg7N+iPpSgxngDz4Eb5UlxaDOri3MBOXUQK7hq1m8Y2FlBsItzD3FdGDSdF6sNX93OdmADIxa4En0l9P5pmZIWDU4uBaf8S5pb6C2jjL3S68Q7hJ+IHO5WJ0AkjdYUalu4sRGyS0O43KuxPdhskTWc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770951426; 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=GPUiSXKwen3lJ7VamxwDEFzXupLyXqvuwOfovAsxzxc=; b=DAwfI+tDK1sCPZ8/aogJ64wVx9BOCZs7URuO3nxHo8wiit8BEzh60kMcvXV5T9VxR39ChfhQVyii0PMFGlCJqX+B23IUGXCrjRNTLV9aYBiOERGY5plMoblqYnMRZE182QzTkBRqaD+WFgpdWyCadrdM+WP73ZMy8rREAdQbz/Y= 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 1770951426386946.1458080517687; Thu, 12 Feb 2026 18:57:06 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vqjLd-0006Dv-Ar; Thu, 12 Feb 2026 21:56:01 -0500 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 1vqjLb-0006Ci-Gr for qemu-devel@nongnu.org; Thu, 12 Feb 2026 21:55:59 -0500 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 1vqjLY-0005E5-9k for qemu-devel@nongnu.org; Thu, 12 Feb 2026 21:55:59 -0500 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 61CKRCar421513 for ; Fri, 13 Feb 2026 02:55:55 GMT Received: from mail-dy1-f197.google.com (mail-dy1-f197.google.com [74.125.82.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4c9cy4b6r2-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 13 Feb 2026 02:55:55 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-2ba87c0e198so476920eec.1 for ; Thu, 12 Feb 2026 18:55:54 -0800 (PST) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2ba9dbd5d3esm4500943eec.10.2026.02.12.18.55.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 12 Feb 2026 18:55:52 -0800 (PST) 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= GPUiSXKwen3lJ7VamxwDEFzXupLyXqvuwOfovAsxzxc=; b=TyneOP3/JwCDvtjY XrDQmrNyPdyd+uAucy/5rhpdNeX20/dPnMbVuPr5nn6bqrXirP3BUmVr5iW5HH20 R444cgDVzd51yc4xScHy5wws0sg3quv41KcIaRt+g4nPHOTR9I3gCUcQgrId3H56 LEeD67hfT5A4YZuqewNHH65dJUVEY9TGQQiFCJ3/4T2mPYM5e27lO32gq9uDWA79 0y+5bm1qtlLMJzXTqAZZ7Z/q3oBvo2gUDnUvVdeFWNIsMtiZ4H4bnrufpwB+B+UQ ri7fP0tli3AdvIwqtOgNKGZOz7U3K3kfdoO+HMoZo27relf9bn7QyJuyypX5j1Du 019Yfg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1770951354; x=1771556154; 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=GPUiSXKwen3lJ7VamxwDEFzXupLyXqvuwOfovAsxzxc=; b=FQafOjEiAc3aX+YmMX1RiLH9FYwPZ72fIP5uQk295ipyojHOTQlbElDuJvZLRp/hFC o0EKRJlmDC/m8HLvon6aQNRsD1+jpnE7/LcOpse3yTsXSL3cS/SLCqgaxb+O/nUIqL3W jxQAxEpwHwxEJSWrHgzSaJCtolLP30aLqd0QCh8UGcurDxapkNtOSQtG2uB1rc8g7WJI PutNYPKc+dVx7WUoxZt2u4j5HmFjRdH6y33MNNN2d9HLi7qCSXYBR8x43WDm2jn/FfsE 82K4tPEmvOtRzJJ420aya0sd5iR8zwmoMju3+lFewVaPSyCrMCMHPzSsVkddnERIBFsK wyIg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1770951354; x=1771556154; 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=GPUiSXKwen3lJ7VamxwDEFzXupLyXqvuwOfovAsxzxc=; b=cXSE+iKNNc3FSt8kGxCjs2CB9o5k6XZT65hgbMk+nGyUKGOvc20OkWo61GaIGIUqvq vm8WmZIx3yiGsYepvPhwLOQNY6E//9x9X0fM2vlG4ydMOq6pHpe5L0eeJAlTjxvIX6A6 tRhyQoaJ8M2F3p8HJL4CIDqSjJOHhL/DlKoiIMvq+0MpKD+c+4aIbEdyMmtLtdp8sdig tE5U/oGwyVN9COGshuiOZEkBsCfImA0iQXZmhk5eUug5NLIlmI9Hos87O21BhKs3Frbz 8GHIe7UVJfD2nn7cKe5DfcjEXP+onGnYHuUiMNlSdbh62l9GBClig0iF7HNJVU5lzT68 wDUA== X-Gm-Message-State: AOJu0YxVRVs2DPQOKAR8vXmT1+NT0s5HH09gTW8xdkSnc/JHpK10QL5b jIf+sCvGtctlKhQ10KHVlWD+ylI9mGCT+STR6Ycq0s7TsBWhzxm0osZ2m5cM/KOzUolTTbfXAQp ePYJirV/pc1CKN+24HRF3zzAnBGYgxR23zrqZ4jFjAnXXfqG+e87KTZFwTnIJT1LHLg== X-Gm-Gg: AZuq6aIh4llgssco8HqyzUKLQVVw29IhEY0YV6LHdRldiFPJtXqJPmHr+RqdeJJFOdd hl8L41O1AMjMjhGngzaAZFmKt0mFXV2v7kaN/k4LLn7elZF0qH/MDY0i2XGF+rDYKoCQ21H1MX5 t03kQgLdhAA/8hnUitoueSSxZk9I4ALg9+fN30JMYUjXWDevCp4rTuyMLP+0xss3sKaVv8PKiRd pUOeRFmydlUEnP9iFRD7qRMVhlAEMh9JK0Iq4qxmI453nh3GdbQ/6o6zPew7b3f4PMFeBbVcUW7 ydOQf4xxuZdasxCQnHmrlpz6AxEtsRvZWbLephuDSFaipUt+w0vxi2cfTWiXEzuwiJiornhX3Je Drd8YkMGLKDjGJEx4PI6Sk9X6IsR+CDfnvikVl/6qoegkJ0tkeXX9rX2WhgNsgESKk4ejMg== X-Received: by 2002:a05:7300:5709:b0:2ab:ca55:89c8 with SMTP id 5a478bee46e88-2baba1546edmr396430eec.43.1770951353774; Thu, 12 Feb 2026 18:55:53 -0800 (PST) X-Received: by 2002:a05:7300:5709:b0:2ab:ca55:89c8 with SMTP id 5a478bee46e88-2baba1546edmr396413eec.43.1770951353212; Thu, 12 Feb 2026 18:55:53 -0800 (PST) From: Brian Cain To: qemu-devel@nongnu.org, peter.maydell@linaro.org Cc: brian.cain@oss.qualcomm.com, ltaylorsimpson@gmail.com, Pierrick Bouvier Subject: [PULL 3/7] tests/tcg/hexagon: Handle SIGILL internally in invalid-slots test Date: Thu, 12 Feb 2026 18:55:40 -0800 Message-Id: <20260213025544.2497992-4-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260213025544.2497992-1-brian.cain@oss.qualcomm.com> References: <20260213025544.2497992-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: FPVU7INK1uRaG87HkUCnUe_ZxbGR3GsT X-Proofpoint-GUID: FPVU7INK1uRaG87HkUCnUe_ZxbGR3GsT X-Authority-Analysis: v=2.4 cv=XvX3+FF9 c=1 sm=1 tr=0 ts=698e92bb cx=c_pps a=Uww141gWH0fZj/3QKPojxA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=HzLeVaNsDn8A:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=Mpw57Om8IfrbqaoTuvik:22 a=GgsMoib0sEa3-_RKJdDe:22 a=mDV3o1hIAAAA:8 a=pGLkceISAAAA:8 a=KKAkSRfTAAAA:8 a=EUspDBNiAAAA:8 a=F0Jt1ehG-eUF7qKHwFUA:9 a=QEXdDO2ut3YA:10 a=PxkB5W3o20Ba91AHUih5:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMjEzMDAyMSBTYWx0ZWRfX6c1R+nnDYmRR j1GZ/JsnMg+vL0rX+7SK1N9mHJx3UOpOMQadDy5Jv26ICtq3Wm3XOJOdw/kHbYq3lDuIJ6gUnDg toDidYS6u1gGT08ZECaFl3bISvDa2vjrQWHUB1jmKxDenjhiV3wPluC5OX+A6XDzEuqrBD3xzOy 1bWokSkJ7l0F4GDFhWAQXOIny5XHttjeTbh1mqhz6IPkNmO8h8mQnXuWFFingVDT9WyKtvfpcGx P8PcieSVUGqjUYxI2TwdMXjOWh7jS5dXX4zxFf3fDx3tbVB5R+l31BRu8EEjUxzfjlJvqdJvvDv Ws+fJjJ95zpVkFT4Bm3Ki/5nHslnFB1qZFWUZ0cWOCSH1hF4Mk0Eisea9ELnat9gKc2aQaf7IJT 0elyWeoPWjoqpr8689nF+8qSmTcNSdHlDrl0k2sL5TZturpjysTK+u3s5AgEY97576ppgUoa1j+ Zs+PRh+NXoDKr1vDilQ== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-02-12_05,2026-02-12_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 priorityscore=1501 malwarescore=0 adultscore=0 phishscore=0 bulkscore=0 lowpriorityscore=0 impostorscore=0 clxscore=1015 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2601150000 definitions=main-2602130021 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1770951428644158500 Rewrite invalid-slots.c to catch and verify SIGILL using a sigaction handler that modifies the ucontext, matching the pattern used by invalid-encoding.c. Reviewed-by: Taylor Simpson Reviewed-by: Pierrick Bouvier Signed-off-by: Brian Cain --- tests/tcg/hexagon/invalid-slots.c | 76 ++++++++++++++++++++++++------- tests/tcg/hexagon/Makefile.target | 6 --- 2 files changed, 59 insertions(+), 23 deletions(-) diff --git a/tests/tcg/hexagon/invalid-slots.c b/tests/tcg/hexagon/invalid-= slots.c index 366ce4f42f..607027f314 100644 --- a/tests/tcg/hexagon/invalid-slots.c +++ b/tests/tcg/hexagon/invalid-slots.c @@ -1,29 +1,71 @@ /* - * Copyright(c) 2023 Qualcomm Innovation Center, Inc. All Rights Reserved. + * Test that invalid slot assignments are properly rejected. * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, see . + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. + * SPDX-License-Identifier: GPL-2.0-or-later */ =20 +#include +#include +#include +#include +#include +#include + +static void *resume_pc; + +static void handle_sigill(int sig, siginfo_t *info, void *puc) +{ + ucontext_t *uc =3D (ucontext_t *)puc; + + if (sig !=3D SIGILL) { + _exit(EXIT_FAILURE); + } + + uc->uc_mcontext.r0 =3D SIGILL; + uc->uc_mcontext.pc =3D (unsigned long)resume_pc; +} + char mem[8] __attribute__((aligned(8))); =20 -int main() +/* + * Invalid packet with 2 instructions at slot 0: + * - Word 0: 0xa1804100 =3D memw(r0) =3D r1 + * - Word 1: 0x28032804 =3D { r3 =3D #0; r4 =3D #0 } + * + * This should raise SIGILL due to the invalid slot assignment. + */ +static int test_invalid_slots(void) { + int sig; + asm volatile( + "r0 =3D #0\n" + "r1 =3D ##1f\n" + "memw(%1) =3D r1\n" "r0 =3D #mem\n" - /* Invalid packet (2 instructions at slot 0): */ ".word 0xa1804100\n" /* { memw(r0) =3D r1; */ ".word 0x28032804\n" /* r3 =3D #0; r4 =3D #0 } */ - : : : "r0", "r3", "r4", "memory"); - return 0; + "1:\n" + "%0 =3D r0\n" + : "=3Dr"(sig) + : "r"(&resume_pc) + : "r0", "r1", "r3", "r4", "memory"); + + return sig; +} + +int main() +{ + struct sigaction act; + + memset(&act, 0, sizeof(act)); + act.sa_sigaction =3D handle_sigill; + act.sa_flags =3D SA_SIGINFO; + assert(sigaction(SIGILL, &act, NULL) =3D=3D 0); + + assert(test_invalid_slots() =3D=3D SIGILL); + + puts("PASS"); + return EXIT_SUCCESS; } diff --git a/tests/tcg/hexagon/Makefile.target b/tests/tcg/hexagon/Makefile= .target index 16669e04a8..d64aeba090 100644 --- a/tests/tcg/hexagon/Makefile.target +++ b/tests/tcg/hexagon/Makefile.target @@ -54,12 +54,6 @@ HEX_TESTS +=3D invalid-slots HEX_TESTS +=3D invalid-encoding HEX_TESTS +=3D unaligned_pc =20 -run-and-check-exception =3D $(call run-test,$2,$3 2>$2.stderr; \ - test $$? -eq 1 && grep -q "exception $(strip $1)" $2.stderr) - -run-invalid-slots: invalid-slots - $(call run-and-check-exception, 0x15, $@, $(QEMU) $(QEMU_OPTS) $<) - HEX_TESTS +=3D test_abs HEX_TESTS +=3D test_bitcnt HEX_TESTS +=3D test_bitsplit --=20 2.34.1 From nobody Sun Apr 12 04:22:14 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1770951432; cv=none; d=zohomail.com; s=zohoarc; b=kaYgp46Azz1K5Wnoa+GlhqLPBknNGBN4lD+1iNMRPGgTsyPIyPpYpQT7duiPcXtOEFw3PwSrl5Q5d3ThZxtCEuf+jjoPjN29dJ0ykZKPdTlJO64/I+g2P0XD5Z+RBhgRA7L038Cou2xMR3qhREDMj+Xip/yJsL4Hh832FmDviOc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770951432; 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=n7Go3tk4WSZ+1jylyNVjbQpHZ7JvBxKDrlJJ9sik3hk=; b=Y8+ntqkCNKEapDCaFd6OJA3mOmKW5pzomdYNiATNz4K15lZk3DkG0heoSOXwNPZDyeWFjQuq3QhlfdyFwXzF4SdqV+v2prEQVCkb1qf4FRoHUVO5uBZ5P5wmA1RXRVhNEwibB83/42J0c9nDZAEZFlLXlkmt4RXS2rrLzbqq/+A= 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 1770951432772190.70861138764735; Thu, 12 Feb 2026 18:57:12 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vqjLh-0006FC-Ei; Thu, 12 Feb 2026 21:56:05 -0500 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 1vqjLc-0006D2-23 for qemu-devel@nongnu.org; Thu, 12 Feb 2026 21:56:00 -0500 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 1vqjLZ-0005E9-2y for qemu-devel@nongnu.org; Thu, 12 Feb 2026 21:55:59 -0500 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 61D1dFlW053350 for ; Fri, 13 Feb 2026 02:55:56 GMT Received: from mail-dy1-f200.google.com (mail-dy1-f200.google.com [74.125.82.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4c9jgba12a-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 13 Feb 2026 02:55:56 +0000 (GMT) Received: by mail-dy1-f200.google.com with SMTP id 5a478bee46e88-2ba728aa1f9so3468379eec.0 for ; Thu, 12 Feb 2026 18:55:55 -0800 (PST) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2ba9dbd5d3esm4500943eec.10.2026.02.12.18.55.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 12 Feb 2026 18:55:53 -0800 (PST) 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= n7Go3tk4WSZ+1jylyNVjbQpHZ7JvBxKDrlJJ9sik3hk=; b=KRB7kn1B4vg/A7OC 2Zt/eh5VUUbi23bw15lQIT8Msvk2Kw8YuYZOFSs2ENPvWYfwfhvVXGPLKIfF9oHm D3B1Xlw2s2iFPu97oXHu1dUq+8b3NYa64ud+TmjEm6dtlYLLQRx/lNMNvJqWyz3+ y+Ub6QcMU1Icx5E2SPE6aqS8vW866IFdw3V9l4AH5dzwGkCiq8KrzO4KEBWubni7 raPAYiKcye3mlHF1MQfrnuEiHz1SSunibOC6/dgxsnyhsKodaPIlowfKEvOfSbzH fwwJ/5gaRgk2cgrMTINjfU+/uqBLxTrc8oNpRizYbObvQQUZpAu9J0ETh6oZK9LV qmL9PQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1770951355; x=1771556155; 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=n7Go3tk4WSZ+1jylyNVjbQpHZ7JvBxKDrlJJ9sik3hk=; b=U+6vzDWM1bZxSdDtXeXy4wJgv3gncohPBvq6ztYws+l/Mtj0r2CneBaZC+wzIeV88h Dc/pwAEN1ObExKdx4BbgF8XVh5qwCESwEtjVgQCOUFELux1gR1X4H0aOCouoo6ZQ+imT R+AxXJilMS6pNcWF/iIvdEGoTc/GEtFTApxCZ9FRXqVk4OS0IRUiZdDH0H/QgHck17d8 IBEVUVIVCZMtOzzd2CuCOPZo/8KBaincTTSdRsj4rYSsvWE7pm0M26kN8iNncvYUHV+3 J/0CVTcOYt1d5hT3w/+ddBldFlJhRyqFM91qrb4Eowd5OW4WTeIPlF94ieMGHRpHNPDf J1+Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1770951355; x=1771556155; 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=n7Go3tk4WSZ+1jylyNVjbQpHZ7JvBxKDrlJJ9sik3hk=; b=ck1elH1teUuxGGuhcCmEf+LeGtRuXCQVmMwen48c2+REHnOxuKzuwLOTBhMaSw4UWN I6OusMsDx6EA2RJCFXV949Bem/8oWttRZ1rHl/cxnKbkEzBndakMVzDEsYck8LPPlPuC fXH1EEECgjCKRs07KPWCdEsWClh4xPzoQdv8ntJRvwo7mpSwe4GeHXOVBZ7xpD0HFH76 xIzb3MtVW76j19tZRIN5GjqbrOOE1Wd7SVI6NbVFRYgjGtrW9xDo7yndFHq/BeVyT6Rl vjc/l9qP3tqBCuPJBjCzAqmDXfhNvpp8NVn2qN/hKlBPjFIe8wN9AUN+91WSqRl97McL O48Q== X-Gm-Message-State: AOJu0YzYXV8ks+Awcgs0+8NVU7Om9V3nsPEN/sSMlaEzk3ZhaOaIj99R Mwaws68qoUsRIhtCqCgYp9SZ/1YeJ453Yuh4FcW62pq9l1oBYvDE4Zwls3ZPV/36bjulb7fJceZ snrSQwCPWF8RU/XVWqVtDM02qHjCidY4HVAddNku0yseMo4wfO7HGCR17x7aDi2CSMw== X-Gm-Gg: AZuq6aJ4fabmv98Jh67Q+Iw3mo6t90unAXRcBxP+9jr7e8zxUBmkepsllJr4Z6ox0Pt PquwNudM2rCW3fUZUZRc39ba0QbQe2MM5Zi76m5J+dJ3MXPIMqSjPw2mM0rX9HMvHAqVL1SCefY PX6vftw3z/FQuy9s3kTAWS6Qehm+yyeHf6Z5y9Zl84Ydm69jReLsfULk/IJgpWZ5w8+w1OKOgyv Se6rq0ZdcVqyrPqtUj2MRi1O4ijqEKBb//+14ib8qdk0C72BAro43jGw2ao/AgWanW4LgJnW2ig 5zobD4HuRotNxg4QFNGbirJdzoEztRDo2owhW3FjYcbTLTNsOkbKmIerbLWufUodGQjQ2rccYDy i3VtM6GT/6NG+PaJe7qlS/27WtmpPMZ3pR0DygufuzMJTNPDde9zwuP5EnrOKyuFNTlV2Nw== X-Received: by 2002:a05:7301:6501:b0:2ba:8018:cc53 with SMTP id 5a478bee46e88-2babc48f5b0mr139619eec.35.1770951354781; Thu, 12 Feb 2026 18:55:54 -0800 (PST) X-Received: by 2002:a05:7301:6501:b0:2ba:8018:cc53 with SMTP id 5a478bee46e88-2babc48f5b0mr139605eec.35.1770951354151; Thu, 12 Feb 2026 18:55:54 -0800 (PST) From: Brian Cain To: qemu-devel@nongnu.org, peter.maydell@linaro.org Cc: brian.cain@oss.qualcomm.com, ltaylorsimpson@gmail.com, Laurent Vivier , Pierrick Bouvier Subject: [PULL 4/7] target/hexagon: Detect register write conflicts Date: Thu, 12 Feb 2026 18:55:41 -0800 Message-Id: <20260213025544.2497992-5-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260213025544.2497992-1-brian.cain@oss.qualcomm.com> References: <20260213025544.2497992-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: AW1haW4tMjYwMjEzMDAyMSBTYWx0ZWRfX9XC21CmAcRdF s+EHS5gVM/6Q9LmQgUTrhzJCPnno0Q+zmNgttwPNKWjdhmIMCgVi42SvSjV+0NothAPwOpX5BWr iE9wLkVBkXBt5BtoKUdSH+3FSltfopxSOunrtnQfJRc89szB2gu4KffAmwY9Ae3s2xuLm0psPAT T1jotMB2bVTuZICauttVHAV4MTBzscZ9gkJLooU2Gqy28pkRaIL2bYp5sWmE617sE8/d9kmU9Y+ 5ouRcZibGVjAvKK4wu8dNno8U76qSRO4IIfTjX5BPNfbCfQ1IkDM9IzfD6NL4sJAPcEBdV7HWCY imqy+3ObR2JfaZjaKtlbuxMTLnaLBnAp4TYzO3I2Ins9nWHAXBAJU2IxBOI1jbXSYmu0FgGY8YV 48viTrYH5ogxy6q8xuFctAfCijzeDN8mwyDjZLjbkY+EcI678l8+NhWl9PJYf+1nPs2E3O3Sf3r y40caNfz2SfmcsadlpA== X-Authority-Analysis: v=2.4 cv=ArzjHe9P c=1 sm=1 tr=0 ts=698e92bc cx=c_pps a=PfFC4Oe2JQzmKTvty2cRDw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=HzLeVaNsDn8A:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=Mpw57Om8IfrbqaoTuvik:22 a=GgsMoib0sEa3-_RKJdDe:22 a=p0WdMEafAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=L9v48Lz0QHfXa9mlzjUA:9 a=QEXdDO2ut3YA:10 a=6Ab_bkdmUrQuMsNx7PHu:22 X-Proofpoint-ORIG-GUID: 8vDZLhbAI5_UToLV6EH2VkBEtVKrrS8l X-Proofpoint-GUID: 8vDZLhbAI5_UToLV6EH2VkBEtVKrrS8l X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-02-12_05,2026-02-12_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 priorityscore=1501 adultscore=0 malwarescore=0 phishscore=0 clxscore=1015 lowpriorityscore=0 bulkscore=0 suspectscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2601150000 definitions=main-2602130021 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1770951434874154100 A conflict exists when any GPR is written by multiple instructions and at least one write is unconditional. This catches (1) two unconditional writes to the same GPR and (2) an unconditional write combined with a predicated write. Add HEX_CAUSE_REG_WRITE_CONFLICT and map it to SIGILL. Resolves: https://gitlab.com/qemu-project/qemu/-/issues/2696 Reviewed-by: Taylor Simpson Signed-off-by: Brian Cain --- target/hexagon/cpu_bits.h | 1 + target/hexagon/insn.h | 4 + linux-user/hexagon/cpu_loop.c | 1 + target/hexagon/decode.c | 54 +++++++++ target/hexagon/translate.c | 10 +- tests/tcg/hexagon/multiple-writes.c | 169 ++++++++++++++++++++++++++++ target/hexagon/gen_trans_funcs.py | 10 ++ tests/tcg/hexagon/Makefile.target | 1 + 8 files changed, 248 insertions(+), 2 deletions(-) create mode 100644 tests/tcg/hexagon/multiple-writes.c diff --git a/target/hexagon/cpu_bits.h b/target/hexagon/cpu_bits.h index ff596e2a94..19beca81c0 100644 --- a/target/hexagon/cpu_bits.h +++ b/target/hexagon/cpu_bits.h @@ -34,6 +34,7 @@ enum hex_cause { HEX_CAUSE_FETCH_NO_UPAGE =3D 0x012, HEX_CAUSE_INVALID_PACKET =3D 0x015, HEX_CAUSE_INVALID_OPCODE =3D 0x015, + HEX_CAUSE_REG_WRITE_CONFLICT =3D 0x01d, HEX_CAUSE_PC_NOT_ALIGNED =3D 0x01e, HEX_CAUSE_PRIV_NO_UREAD =3D 0x024, HEX_CAUSE_PRIV_NO_UWRITE =3D 0x025, diff --git a/target/hexagon/insn.h b/target/hexagon/insn.h index 5d59430da9..835b1c954e 100644 --- a/target/hexagon/insn.h +++ b/target/hexagon/insn.h @@ -41,6 +41,8 @@ struct Instruction { uint32_t new_value_producer_slot:4; int32_t new_read_idx; int32_t dest_idx; + bool dest_is_pair; + bool dest_is_gpr; bool has_pred_dest; =20 bool part1; /* @@ -72,6 +74,8 @@ struct Packet { bool pkt_has_hvx; Insn *vhist_insn; =20 + bool pkt_has_write_conflict; + Insn insn[INSTRUCTIONS_MAX]; }; =20 diff --git a/linux-user/hexagon/cpu_loop.c b/linux-user/hexagon/cpu_loop.c index c0e1098e3f..5711055aff 100644 --- a/linux-user/hexagon/cpu_loop.c +++ b/linux-user/hexagon/cpu_loop.c @@ -65,6 +65,7 @@ void cpu_loop(CPUHexagonState *env) env->gpr[HEX_REG_R31]); break; case HEX_CAUSE_INVALID_PACKET: + case HEX_CAUSE_REG_WRITE_CONFLICT: force_sig_fault(TARGET_SIGILL, TARGET_ILL_ILLOPC, env->gpr[HEX_REG_PC]); break; diff --git a/target/hexagon/decode.c b/target/hexagon/decode.c index 33ad60c5b4..00d4a79a95 100644 --- a/target/hexagon/decode.c +++ b/target/hexagon/decode.c @@ -655,6 +655,55 @@ decode_set_slot_number(Packet *pkt) return has_valid_slot_assignment(pkt); } =20 +/* + * Check for GPR write conflicts in the packet. + * A conflict exists when a register is written by more than one instructi= on + * and at least one of those writes is unconditional. + * + * TODO: handle the more general case of any + * packet w/multiple-register-write operands. + */ +static bool pkt_has_write_conflict(Packet *pkt) +{ + DECLARE_BITMAP(all_dest_gprs, 32) =3D { 0 }; + DECLARE_BITMAP(wreg_mult_gprs, 32) =3D { 0 }; + DECLARE_BITMAP(uncond_wreg_gprs, 32) =3D { 0 }; + DECLARE_BITMAP(conflict, 32); + + for (int i =3D 0; i < pkt->num_insns; i++) { + Insn *insn =3D &pkt->insn[i]; + int dest =3D insn->dest_idx; + + if (dest < 0 || !insn->dest_is_gpr) { + continue; + } + + int rnum =3D insn->regno[dest]; + bool is_uncond =3D !GET_ATTRIB(insn->opcode, A_CONDEXEC); + + if (test_bit(rnum, all_dest_gprs)) { + set_bit(rnum, wreg_mult_gprs); + } + set_bit(rnum, all_dest_gprs); + if (is_uncond) { + set_bit(rnum, uncond_wreg_gprs); + } + + if (insn->dest_is_pair) { + if (test_bit(rnum + 1, all_dest_gprs)) { + set_bit(rnum + 1, wreg_mult_gprs); + } + set_bit(rnum + 1, all_dest_gprs); + if (is_uncond) { + set_bit(rnum + 1, uncond_wreg_gprs); + } + } + } + + bitmap_and(conflict, wreg_mult_gprs, uncond_wreg_gprs, 32); + return !bitmap_empty(conflict, 32); +} + /* * decode_packet * Decodes packet with given words @@ -674,6 +723,10 @@ int decode_packet(DisasContext *ctx, int max_words, co= nst uint32_t *words, =20 /* Initialize */ memset(pkt, 0, sizeof(*pkt)); + for (i =3D 0; i < INSTRUCTIONS_MAX; i++) { + pkt->insn[i].dest_idx =3D -1; + pkt->insn[i].new_read_idx =3D -1; + } /* Try to build packet */ while (!end_of_packet && (words_read < max_words)) { Insn *insn =3D &pkt->insn[num_insns]; @@ -737,6 +790,7 @@ int decode_packet(DisasContext *ctx, int max_words, con= st uint32_t *words, /* Invalid packet */ return 0; } + pkt->pkt_has_write_conflict =3D pkt_has_write_conflict(pkt); } decode_fill_newvalue_regno(pkt); =20 diff --git a/target/hexagon/translate.c b/target/hexagon/translate.c index 7fe8b35351..0234bbf15d 100644 --- a/target/hexagon/translate.c +++ b/target/hexagon/translate.c @@ -943,7 +943,7 @@ static void gen_commit_packet(DisasContext *ctx) static void decode_and_translate_packet(CPUHexagonState *env, DisasContext= *ctx) { uint32_t words[PACKET_WORDS_MAX]; - int nwords; + int nwords, words_read; Packet pkt; int i; =20 @@ -954,8 +954,14 @@ static void decode_and_translate_packet(CPUHexagonStat= e *env, DisasContext *ctx) } =20 ctx->pkt =3D &pkt; - if (decode_packet(ctx, nwords, words, &pkt, false) > 0) { + words_read =3D decode_packet(ctx, nwords, words, &pkt, false); + if (words_read > 0) { pkt.pc =3D ctx->base.pc_next; + if (pkt.pkt_has_write_conflict) { + gen_exception_decode_fail(ctx, words_read, + HEX_CAUSE_REG_WRITE_CONFLICT); + return; + } gen_start_packet(ctx); for (i =3D 0; i < pkt.num_insns; i++) { ctx->insn =3D &pkt.insn[i]; diff --git a/tests/tcg/hexagon/multiple-writes.c b/tests/tcg/hexagon/multip= le-writes.c new file mode 100644 index 0000000000..8686317fdc --- /dev/null +++ b/tests/tcg/hexagon/multiple-writes.c @@ -0,0 +1,169 @@ +/* + * Test detection of multiple writes to the same register. + * + * Ported from the system test (tests/tcg/hexagon/system/multiple_writes.c= ). + * In linux-user mode, duplicate GPR writes are detected at translate time + * and raise SIGILL when at least one conflicting write is unconditional. + * Purely predicated duplicate writes (e.g., complementary if/if-not) are + * legal and are not flagged statically. + * + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include +#include +#include +#include +#include +#include + +static void *resume_pc; + +static void handle_sigill(int sig, siginfo_t *info, void *puc) +{ + ucontext_t *uc =3D (ucontext_t *)puc; + + if (sig !=3D SIGILL) { + _exit(EXIT_FAILURE); + } + + uc->uc_mcontext.r0 =3D SIGILL; + uc->uc_mcontext.pc =3D (unsigned long)resume_pc; +} + +/* + * Unconditional pair write overlapping a single write: + * { r1:0 =3D add(r3:2, r3:2); r1 =3D add(r0, r1) } + * R1 is written by both instructions. This is invalid and must raise SIG= ILL. + */ +static int test_static_pair_overlap(void) +{ + int sig; + + asm volatile( + "r0 =3D #0\n" + "r1 =3D ##1f\n" + "memw(%1) =3D r1\n" + ".word 0xd30242e0\n" /* r1:0 =3D add(r3:2, r3:2), parse=3D01 */ + ".word 0xf300c101\n" /* r1 =3D add(r0, r1), parse=3D11 (end) */ + "1:\n" + "%0 =3D r0\n" + : "=3Dr"(sig) + : "r"(&resume_pc) + : "r0", "r1", "memory"); + + return sig; +} + +/* + * Two predicated writes under complementary predicates: + * { if (p0) r0 =3D r2; if (!p0) r0 =3D r3 } + * This is architecturally valid: only one write executes at runtime. + * Must NOT raise SIGILL; the result should reflect the executed branch. + */ +static int test_legal_predicated(void) +{ + int result; + + asm volatile( + "r0 =3D #0\n" + "r1 =3D ##1f\n" + "memw(%1) =3D r1\n" + "r2 =3D #7\n" + "r3 =3D #13\n" + "p0 =3D cmp.eq(r2, r2)\n" + "{\n" + " if (p0) r0 =3D r2\n" + " if (!p0) r0 =3D r3\n" + "}\n" + "1:\n" + "%0 =3D r0\n" + : "=3Dr"(result) + : "r"(&resume_pc) + : "r0", "r1", "r2", "r3", "p0", "memory"); + + return result; +} + +/* + * Mixed: unconditional + predicated writes to the same register: + * { if (p0) r1 =3D add(r0, #0); if (!p0) r1 =3D add(r0, #0); + * r1 =3D add(r0, #0) } + * The unconditional write always conflicts with the predicated writes. + * Must raise SIGILL. + */ +static int test_mixed_writes(void) +{ + int sig; + + asm volatile( + "r0 =3D #0\n" + "r1 =3D ##1f\n" + "memw(%1) =3D r1\n" + "p0 =3D cmp.eq(r0, r0)\n" + ".word 0x7e204021\n" /* if (p0) r1 =3D add(r0, #0), parse=3D01 */ + ".word 0x7ea04021\n" /* if (!p0) r1 =3D add(r0, #0), parse=3D01 */ + ".word 0x7800c021\n" /* r1 =3D add(r0, #0), parse=3D11 (end) */ + "1:\n" + "%0 =3D r0\n" + : "=3Dr"(sig) + : "r"(&resume_pc) + : "r0", "r1", "p0", "memory"); + + return sig; +} + +/* + * Zero encoding (issue #2696): + * The encoding 0x00000000 decodes as a duplex with parse bits + * [15:14] =3D 0b00: + * slot1: SL1_loadri_io R0 =3D memw(R0+#0x0) + * slot0: SL1_loadri_io R0 =3D memw(R0+#0x0) + * + * Both sub-instructions write R0 unconditionally, which is an invalid + * packet. This tests what happens when we jump to zeroed memory. + * Must raise SIGILL. + */ +static int test_zero(void) +{ + int sig; + + asm volatile( + "r0 =3D #0\n" + "r1 =3D ##1f\n" + "memw(%1) =3D r1\n" + ".word 0x00000000\n" + "1:\n" + "%0 =3D r0\n" + : "=3Dr"(sig) + : "r"(&resume_pc) + : "r0", "r1", "memory"); + + return sig; +} + +int main() +{ + struct sigaction act; + + memset(&act, 0, sizeof(act)); + act.sa_sigaction =3D handle_sigill; + act.sa_flags =3D SA_SIGINFO; + assert(sigaction(SIGILL, &act, NULL) =3D=3D 0); + + /* Legal: complementary predicated writes must not raise SIGILL */ + assert(test_legal_predicated() =3D=3D 7); + + /* Illegal: unconditional pair + single overlap must raise SIGILL */ + assert(test_static_pair_overlap() =3D=3D SIGILL); + + /* Illegal: unconditional + predicated writes to same reg must SIGILL = */ + assert(test_mixed_writes() =3D=3D SIGILL); + + /* Illegal: zero encoding =3D duplex with duplicate dest R0 */ + assert(test_zero() =3D=3D SIGILL); + + puts("PASS"); + return EXIT_SUCCESS; +} diff --git a/target/hexagon/gen_trans_funcs.py b/target/hexagon/gen_trans_f= uncs.py index 45da1b7b5d..19c1f9fdea 100755 --- a/target/hexagon/gen_trans_funcs.py +++ b/target/hexagon/gen_trans_funcs.py @@ -91,6 +91,8 @@ def gen_trans_funcs(f): new_read_idx =3D -1 dest_idx =3D -1 dest_idx_reg_id =3D None + dest_is_pair =3D "false" + dest_is_gpr =3D "false" has_pred_dest =3D "false" for regno, (reg_type, reg_id, *_) in enumerate(regs): reg =3D hex_common.get_register(tag, reg_type, reg_id) @@ -104,6 +106,12 @@ def gen_trans_funcs(f): if dest_idx_reg_id is None or reg_id < dest_idx_reg_id: dest_idx =3D regno dest_idx_reg_id =3D reg_id + dest_is_pair =3D ("true" + if isinstance(reg, hex_common.Pair) + else "false") + dest_is_gpr =3D ("true" + if reg_type =3D=3D "R" + else "false") if reg_type =3D=3D "P" and reg.is_written() and not reg.is_rea= d(): has_pred_dest =3D "true" =20 @@ -129,6 +137,8 @@ def gen_trans_funcs(f): f.write(code_fmt(f"""\ insn->new_read_idx =3D {new_read_idx}; insn->dest_idx =3D {dest_idx}; + insn->dest_is_pair =3D {dest_is_pair}; + insn->dest_is_gpr =3D {dest_is_gpr}; insn->has_pred_dest =3D {has_pred_dest}; """)) f.write(textwrap.dedent(f"""\ diff --git a/tests/tcg/hexagon/Makefile.target b/tests/tcg/hexagon/Makefile= .target index d64aeba090..f86f02bb31 100644 --- a/tests/tcg/hexagon/Makefile.target +++ b/tests/tcg/hexagon/Makefile.target @@ -52,6 +52,7 @@ HEX_TESTS +=3D hvx_misc HEX_TESTS +=3D hvx_histogram HEX_TESTS +=3D invalid-slots HEX_TESTS +=3D invalid-encoding +HEX_TESTS +=3D multiple-writes HEX_TESTS +=3D unaligned_pc =20 HEX_TESTS +=3D test_abs --=20 2.34.1 From nobody Sun Apr 12 04:22:14 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1770951426; cv=none; d=zohomail.com; s=zohoarc; b=H+71JCW9xU8xyiS9KO0a5X6hu7avLLo91uO8X4es6xhGd0bGQ7REMhD2ApVt9R+X+hkKg0fqgqkTcD4yTaVA2ywZctBJs37zbA2Hf8YykhGTVhQ8yKLeaKX9RYF/ZhNAYetAsBKbxz0YP6QZAeHgu4ei0m3RWi3GmOxY+3PGqiY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770951426; 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=UmJN7sMOhHqxmdmNsVNkifaBwRL8+z3dpwVBg6xpEFE=; b=d+cNBMMiQNt11QU7e7pn/lQlRBhwGVKsYUFljIE1oL+EDnCoEMiS1Qpx79PJS3x0A8vkwJVNGy5dtEL/PIkjpOFXwa+BuuRLBWhBOyfPFRJps+rfbo5IifHU4FlFAyWLQiX6ZLlDk7kDMJoDngzFEHJ5cAIswU8Jtxr7EL1ZPO4= 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 1770951426684643.1536601082468; Thu, 12 Feb 2026 18:57:06 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vqjLg-0006Ek-EE; Thu, 12 Feb 2026 21:56:04 -0500 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 1vqjLc-0006D5-91 for qemu-devel@nongnu.org; Thu, 12 Feb 2026 21:56:00 -0500 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 1vqjLa-0005EE-Ei for qemu-devel@nongnu.org; Thu, 12 Feb 2026 21:56:00 -0500 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 61CIlMtm455051 for ; Fri, 13 Feb 2026 02:55:57 GMT Received: from mail-dy1-f199.google.com (mail-dy1-f199.google.com [74.125.82.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4c9mev1g2u-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 13 Feb 2026 02:55:56 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-2ba9ef13a4bso1825100eec.1 for ; Thu, 12 Feb 2026 18:55:56 -0800 (PST) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2ba9dbd5d3esm4500943eec.10.2026.02.12.18.55.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 12 Feb 2026 18:55:54 -0800 (PST) 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=UmJN7sMOhHqxmdmNsVNkifaBwRL8+z3dpwVBg6xpEFE=; b=F9 eTbw7ZyyL4ll45dfmIsTSAUTAyLZfvZdjpnW51vXI2Lc/ZUWPmg7mOoHXg3FdsO2 uXkI6xqp0pm3s87CciwEBAcM4Ldhw+CgnCIq4w4ywNeiYUNykVrgq8aTcAoiF8Fg e3YJXR/NQ2JFrvNYRRTIk0X1+dJMeYxYvsFMyGbuZqj3utMjoTKjL6vClA9k34yq HBMM8+dDjIQk+/s53cmugyR/FSUDomBwL/GBBD60rOpxOnoj9QkYuBw7mWdcneIS WPKJ7FLrJks0kmYvT0BJvgzJ5oyjC8dhrLQgnl76njlnGoXqhRn2cMzEFhkGSKDg UTtateKp3be7qynJ2bcg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1770951356; x=1771556156; 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=UmJN7sMOhHqxmdmNsVNkifaBwRL8+z3dpwVBg6xpEFE=; b=RdZFH0ElZBiNMO/2l2DS2Drp58O3n+nCY8xcdalunoQeHCr5gFm4jMlLxt8VL1UDz2 /J2FiMMNRmijSziuJs8XRKamookNTKhDKvUofNd+iMIDK3ewKQ3j3vedtn0l1A1Lumz9 DwYdwYQ2ZzDdpPDrbOdUAGFdaaYcGb0hyNXtNYxuS5PvBFnwpyeLzARKHRIVCYk8DSTZ D7Ndt0N5QJ+3mcSNxobfrGZubag6ErOM075WyI5C6ZlWmI4+GZHMueRmpzD/k1QFvWG/ PnASxhfUUqIy+coVnZMfJxeM0+OYT6AyQSwUKHJFpbXEPSe8dfQNIeALop0vvuRL2wJk veZA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1770951356; x=1771556156; 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=UmJN7sMOhHqxmdmNsVNkifaBwRL8+z3dpwVBg6xpEFE=; b=JSqfrvoP9wisiwYyB2NBL199u4CFn0XQke7+Lf/yQFizRAbi73Y5RLw2qcs99RaF5C tXLKBUO1r9LwOaqS9bsmNzo7N8TZmUKPenJW2NAP0ffN0CT1x2+Zu/Dv4BvLs71kVTzt 2ugZOI4EUO4LB47x1x9ZTZH+ccJDzGNvsEqvO86Vwv+LZa1wG2zTmHw2iN9M5x9aZIfh PvLVpaBycBNe04KvO4KfuXMZezGVXMpbilbyy1ZvvEoRCfdi42pg2gI/D74oXD0j4U0B kj+Rg9TQetLh8vKHfzpNnP1bnSc57WoP5MvqKPHsLHCwyCzhQyC5dTS8gkr1wV6sXF8a +YAw== X-Gm-Message-State: AOJu0YyrIp7o3W7wWkTO1lRLLKFoQxNI0Gt/7I+HJ43qQMWSe6GUN2ba j8qnKqS6/xxej6f6sxW78O16JT7LTMKaPKCmRybeiZlnzUuea0li1LTKAfXs9dqyx3kgzSUcc7t tVlnvOXc4HBnTMz9WmfHjRuJlLR+T3DMBVFUckvMP2tc4xh/v/+TKI70pK5ILh02LYQ== X-Gm-Gg: AZuq6aKhKETVp/Tr24L34UCyv6BWZPbTpsHyDUbUPzCizO4LBdwOPanviyAb+Jmy1sG 1pZgfiAHKF32VS6JYKYa8yklWthVFfzLvrB0LgZC87gz19BfbzydktWDREe+dVPVQBK1FThPb+H uzn2RKFRTGJ8v2rE+6Ule+FbWodG//rZRrMy/9LPnJaGV2nCF00qPqD5LIk2IzHX/fgDKzGiubP 1tRbwbywunzdKgp0g5xjp2YNwa8iuz/NTSop3pHhzVWsml7gFeUac3/KBu2hPYosZFJZJ+lwfDB LjnACI/2zJzwL6MLXH+JSL9ATEwK9XLksYgQwIl+0nGI5TZXNGPjX0USqiVCyMdbGT291rxzz1a VwyAi6ISpIk2Mac/xR8gvbntRWeeWGedUIaNyWK/R1NIEJlDOl3nL2w5cF+/opwGq0WwcKQ== X-Received: by 2002:a05:7301:6788:b0:2b8:6896:d0e6 with SMTP id 5a478bee46e88-2babc05e6bemr146022eec.7.1770951355603; Thu, 12 Feb 2026 18:55:55 -0800 (PST) X-Received: by 2002:a05:7301:6788:b0:2b8:6896:d0e6 with SMTP id 5a478bee46e88-2babc05e6bemr146015eec.7.1770951355021; Thu, 12 Feb 2026 18:55:55 -0800 (PST) From: Brian Cain To: qemu-devel@nongnu.org, peter.maydell@linaro.org Cc: brian.cain@oss.qualcomm.com, ltaylorsimpson@gmail.com, Anton Johansson , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 5/7] target/hexagon: Widen MemLog::width to 32 bits Date: Thu, 12 Feb 2026 18:55:42 -0800 Message-Id: <20260213025544.2497992-6-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260213025544.2497992-1-brian.cain@oss.qualcomm.com> References: <20260213025544.2497992-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Authority-Analysis: v=2.4 cv=Zq7g6t7G c=1 sm=1 tr=0 ts=698e92bc cx=c_pps a=cFYjgdjTJScbgFmBucgdfQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=HzLeVaNsDn8A:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=Mpw57Om8IfrbqaoTuvik:22 a=GgsMoib0sEa3-_RKJdDe:22 a=EUspDBNiAAAA:8 a=KKAkSRfTAAAA:8 a=r64yU45xFHXUIA317_0A:9 a=QEXdDO2ut3YA:10 a=scEy_gLbYbu1JhEsrz4S:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-ORIG-GUID: EPa7Jcr_KwcS9taqce7_xHSCFoPjK_PM X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMjEzMDAyMSBTYWx0ZWRfX8uHdh+Lko267 qLmMV4OSfyaqXQiYWWnYYH/o2evT37+qI08Qe/SFc1ooSFZ/NFjDgWSr4vr/qabWASA1oQutjoM 1OQBP4yGVNheRa4O6ZBJoN0dxSPAFFZQ9+hrvNxQYMWc0d0t6fv+dsuZdSIDwOoQqwWu9WWfwFR fnJxbDnrULsVmacGBnBU0yJ/TbmafnXT37ACyaTTPlONpNrzmpTDjUKafZlBxwctCohAdLh8um7 SZ+nj88legKkrtmmGpD30XZ/DuckuyUqLQwBBA3lownPoEnzjAXCttVo1qlCHj1EaNBkDO+EfGV B4PhYu3QFajdPbpeERX6vuJXebV5UYEGGtOc7tda2NTlqrAIH2uAOUc8lzRJNgcBM8g4rYSaQ1/ WS5ZwQpdF8VT2L4Cq/5iV53GpbkhFTTLfoC3LlzWhnsYvWNMcyifpq6laumD3QWOEsE9djqltzw n92ONd8n5+fpQazPxmw== X-Proofpoint-GUID: EPa7Jcr_KwcS9taqce7_xHSCFoPjK_PM X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-02-12_05,2026-02-12_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 lowpriorityscore=0 adultscore=0 priorityscore=1501 impostorscore=0 suspectscore=0 malwarescore=0 phishscore=0 bulkscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2601150000 definitions=main-2602130021 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1770951429347154100 Content-Type: text/plain; charset="utf-8" From: Anton Johansson MemLog::width is a uint8_t value mapped to a TCGv (32 bit), the only reason this currently works is because MemLog::width is padded to 32 bits. Widen the field to uint32_t and fix the size of the TCGv operations as well. Use uint32_t when referencing and passing around the field, as valid values are asserted in commit_store(). Reviewed-by: Brian Cain Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Anton Johansson -- Changes in v3: - Added reviewed-by Changes in v2: - Removed truncation to uint8_t, valid values of 1,2,4,8 are checked in commit_store() already. Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Brian Cain --- target/hexagon/cpu.h | 2 +- target/hexagon/genptr.h | 2 +- target/hexagon/op_helper.h | 4 ++-- target/hexagon/translate.h | 2 +- target/hexagon/genptr.c | 6 +++--- target/hexagon/op_helper.c | 8 ++++---- target/hexagon/translate.c | 4 ++-- 7 files changed, 14 insertions(+), 14 deletions(-) diff --git a/target/hexagon/cpu.h b/target/hexagon/cpu.h index 656b7dc044..85afd59277 100644 --- a/target/hexagon/cpu.h +++ b/target/hexagon/cpu.h @@ -46,7 +46,7 @@ =20 typedef struct { target_ulong va; - uint8_t width; + uint32_t width; uint32_t data32; uint64_t data64; } MemLog; diff --git a/target/hexagon/genptr.h b/target/hexagon/genptr.h index 228d7f1d7d..45ee038ca9 100644 --- a/target/hexagon/genptr.h +++ b/target/hexagon/genptr.h @@ -24,7 +24,7 @@ =20 extern const SemanticInsn opcode_genptr[]; =20 -void gen_store32(TCGv vaddr, TCGv src, int width, uint32_t slot); +void gen_store32(TCGv vaddr, TCGv src, uint32_t width, uint32_t slot); void gen_store1(TCGv_env cpu_env, TCGv vaddr, TCGv src, uint32_t slot); void gen_store2(TCGv_env cpu_env, TCGv vaddr, TCGv src, uint32_t slot); void gen_store4(TCGv_env cpu_env, TCGv vaddr, TCGv src, uint32_t slot); diff --git a/target/hexagon/op_helper.h b/target/hexagon/op_helper.h index 66119cf3d4..e8fdabddb3 100644 --- a/target/hexagon/op_helper.h +++ b/target/hexagon/op_helper.h @@ -20,8 +20,8 @@ =20 /* Misc functions */ void log_store64(CPUHexagonState *env, target_ulong addr, - int64_t val, int width, int slot); + int64_t val, uint32_t width, int slot); void log_store32(CPUHexagonState *env, target_ulong addr, - target_ulong val, int width, int slot); + target_ulong val, uint32_t width, int slot); =20 #endif diff --git a/target/hexagon/translate.h b/target/hexagon/translate.h index a0102b6cbd..b37cb49238 100644 --- a/target/hexagon/translate.h +++ b/target/hexagon/translate.h @@ -272,7 +272,7 @@ extern TCGv hex_pred[NUM_PREGS]; extern TCGv hex_slot_cancelled; extern TCGv hex_new_value_usr; extern TCGv hex_store_addr[STORES_MAX]; -extern TCGv hex_store_width[STORES_MAX]; +extern TCGv_i32 hex_store_width[STORES_MAX]; extern TCGv hex_store_val32[STORES_MAX]; extern TCGv_i64 hex_store_val64[STORES_MAX]; extern TCGv hex_llsc_addr; diff --git a/target/hexagon/genptr.c b/target/hexagon/genptr.c index 36968549d5..9eb21da6f3 100644 --- a/target/hexagon/genptr.c +++ b/target/hexagon/genptr.c @@ -387,10 +387,10 @@ static TCGv gen_slotval(DisasContext *ctx) } #endif =20 -void gen_store32(TCGv vaddr, TCGv src, int width, uint32_t slot) +void gen_store32(TCGv vaddr, TCGv src, uint32_t width, uint32_t slot) { tcg_gen_mov_tl(hex_store_addr[slot], vaddr); - tcg_gen_movi_tl(hex_store_width[slot], width); + tcg_gen_movi_i32(hex_store_width[slot], width); tcg_gen_mov_tl(hex_store_val32[slot], src); } =20 @@ -430,7 +430,7 @@ void gen_store4i(TCGv_env tcg_env, TCGv vaddr, int32_t = src, uint32_t slot) void gen_store8(TCGv_env tcg_env, TCGv vaddr, TCGv_i64 src, uint32_t slot) { tcg_gen_mov_tl(hex_store_addr[slot], vaddr); - tcg_gen_movi_tl(hex_store_width[slot], 8); + tcg_gen_movi_i32(hex_store_width[slot], 8); tcg_gen_mov_i64(hex_store_val64[slot], src); } =20 diff --git a/target/hexagon/op_helper.c b/target/hexagon/op_helper.c index bfeadd65fc..368391bb84 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -52,7 +52,7 @@ G_NORETURN void HELPER(raise_exception)(CPUHexagonState *= env, uint32_t excp) } =20 void log_store32(CPUHexagonState *env, target_ulong addr, - target_ulong val, int width, int slot) + target_ulong val, uint32_t width, int slot) { env->mem_log_stores[slot].va =3D addr; env->mem_log_stores[slot].width =3D width; @@ -60,7 +60,7 @@ void log_store32(CPUHexagonState *env, target_ulong addr, } =20 void log_store64(CPUHexagonState *env, target_ulong addr, - int64_t val, int width, int slot) + int64_t val, uint32_t width, int slot) { env->mem_log_stores[slot].va =3D addr; env->mem_log_stores[slot].width =3D width; @@ -69,7 +69,7 @@ void log_store64(CPUHexagonState *env, target_ulong addr, =20 static void commit_store(CPUHexagonState *env, int slot_num, uintptr_t ra) { - uint8_t width =3D env->mem_log_stores[slot_num].width; + uint32_t width =3D env->mem_log_stores[slot_num].width; target_ulong va =3D env->mem_log_stores[slot_num].va; =20 switch (width) { @@ -363,7 +363,7 @@ static void probe_store(CPUHexagonState *env, int slot,= int mmu_idx, bool is_predicated, uintptr_t retaddr) { if (!is_predicated || !(env->slot_cancelled & (1 << slot))) { - size1u_t width =3D env->mem_log_stores[slot].width; + uint32_t width =3D env->mem_log_stores[slot].width; target_ulong va =3D env->mem_log_stores[slot].va; probe_write(env, va, width, mmu_idx, retaddr); } diff --git a/target/hexagon/translate.c b/target/hexagon/translate.c index 0234bbf15d..2fdc956bf9 100644 --- a/target/hexagon/translate.c +++ b/target/hexagon/translate.c @@ -55,7 +55,7 @@ TCGv hex_pred[NUM_PREGS]; TCGv hex_slot_cancelled; TCGv hex_new_value_usr; TCGv hex_store_addr[STORES_MAX]; -TCGv hex_store_width[STORES_MAX]; +TCGv_i32 hex_store_width[STORES_MAX]; TCGv hex_store_val32[STORES_MAX]; TCGv_i64 hex_store_val64[STORES_MAX]; TCGv hex_llsc_addr; @@ -1123,7 +1123,7 @@ void hexagon_translate_init(void) store_addr_names[i]); =20 snprintf(store_width_names[i], NAME_LEN, "store_width_%d", i); - hex_store_width[i] =3D tcg_global_mem_new(tcg_env, + hex_store_width[i] =3D tcg_global_mem_new_i32(tcg_env, offsetof(CPUHexagonState, mem_log_stores[i].width), store_width_names[i]); =20 --=20 2.34.1 From nobody Sun Apr 12 04:22:14 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1770951427; cv=none; d=zohomail.com; s=zohoarc; b=fiLJN3Iauf5jTTG3/43/97aKYGbjBvgKJbpUD09WcJgdWK7M8djNa84MZZKoeM4OTtaw3zM5NJJtEiFuk0x7MqyY2SHIAwJgrBxaaLxxZV0t1np8KwBkpu8RsUdhzSzPZbS/Ju1wjzLhyDdj/Vo+RSYuwcGeWNQEKa7noLZol/E= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770951427; 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=Ny9pYL1+zg0oqnEh7/1eyI+NbtaSPqENfMw5U+VnW+E=; b=Pi/FaYlS6b62Cz/iJIkVKGtd3ieONwccMVzsTGFhoaH5+2iIWKLCT6USDjVF7gNX+cZpforq15HrrkLNoUHMe28yl7HyXlAr99nrk0YqTH43SArjB9OxCwoVC1VahQOE+DOYYNbCc9qjw8f0ppdWAs2YZiDEXlXu1LeBkSw2mhI= 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 1770951427871839.5604673289404; Thu, 12 Feb 2026 18:57:07 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vqjLg-0006Eo-Ed; Thu, 12 Feb 2026 21:56:04 -0500 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 1vqjLb-0006D1-Ux for qemu-devel@nongnu.org; Thu, 12 Feb 2026 21:56:00 -0500 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 1vqjLa-0005EP-Ez for qemu-devel@nongnu.org; Thu, 12 Feb 2026 21:55:59 -0500 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 61D2jX7j2093498 for ; Fri, 13 Feb 2026 02:55:57 GMT Received: from mail-dy1-f200.google.com (mail-dy1-f200.google.com [74.125.82.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4c9k6y1spk-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 13 Feb 2026 02:55:57 +0000 (GMT) Received: by mail-dy1-f200.google.com with SMTP id 5a478bee46e88-2ba6ad2ca1fso3942229eec.1 for ; Thu, 12 Feb 2026 18:55:57 -0800 (PST) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2ba9dbd5d3esm4500943eec.10.2026.02.12.18.55.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 12 Feb 2026 18:55:55 -0800 (PST) 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= Ny9pYL1+zg0oqnEh7/1eyI+NbtaSPqENfMw5U+VnW+E=; b=hRXed2A55KrKTacW 2dZ/JEdqGtlJxDET2Unst1FiY/cG9EhXP2f0//Ym2n8FDCHGyTscFDp+BgLkB0MC lv6VUDDfIegwsdIzttGLvh/bJVeyB1SNJQErTOpeQZKc/AadpE1JBqj8cPyr+ztB wi+BVPoMaKu9Klwqreuf+k2eZERR7ZEHRCxSQKes2oX5pC3FsdN46iTu4D0B/lZR OmLQ2qb5f+CCejQnbWpFP4r0RR4O9AiBdoZMV9oQQRDiqBzDalo2IFYaAmocIDK/ lCgQqAwlYJnOI3zjg7Ft8SHc8PLhhlzG/TyQWAUj6LA5bS/bMIte3bbAiOSGMZ9H 1OGbNQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1770951356; x=1771556156; 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=Ny9pYL1+zg0oqnEh7/1eyI+NbtaSPqENfMw5U+VnW+E=; b=ZqLJFzGA8NVOK/udQ26XPHuL7nZKBptZNl+GFv72QNtvE3OCzRE0s8fM1PqLkjEz1D p3IUMX1i70dKZu07S+QzZGh0G0LHHx4gFPLJxJDM5SGvhwAVv2lUskmOjEujGnfkyiC1 eTbiWnbGC5Fal69wJ3W3DSwC3s4e8AmHcj0CxDp8HEx7MEtbQMZAd2aIYS/dUUDlq2FX 2Fn9hQiClCAtkqKMWWA2la8T9q0VvCsLmp32k3vWl1HAw7BnXcYeVq/SST+StEVZubBS g1advsb3w+k108hP9fsq/ZS+czkX0z+GsVzMeyHSF14hTctMnw36aoIFzTL/Hz8FmJuL o5Ag== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1770951356; x=1771556156; 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=Ny9pYL1+zg0oqnEh7/1eyI+NbtaSPqENfMw5U+VnW+E=; b=admtixODs0h8IjpcbfiS/rWJCRq+7tT5XTHfvvFF3F661jrhrC004Pq9TCs85U5shW k9/PfR901CrWUJnFDNVGmQ/dVnwXkV0NzLxv6WEihlAgrGKBQBc2FrRWPNKVPVJN7vCx aFyQenxbTgcL45zeljmz5wdG55iNNwP7JAF48hXN+QEGYZzQcJa314rpKPCp8B4wD5j/ QhtOYVGxEZZpkrpNeM6TCWgUbAYxZ4QLyEkCQnXMAdnIwjVGbvsF4u3BnS34LnyCZgVX kc3kwlKH8IgEJ8GV+gptgt6WDHYrg3BsdYgezAN7w/0pem+6VDG+3FyZZ8gN6bv+ZqOr lInA== X-Gm-Message-State: AOJu0Yw3wX4Y80RRx7ylbeZsdIR2W17JurpEM1oiQXaC5l9bxzG+Wcj4 wEvA/ClfGW86jA3TEtDdR8BqvPgfgHBNlaKVl+kjp0EOFto8hcdWzu4CSr7j5xkJOziF7itMuDp XD1sQb2dH0rEOqtKOQCjJa/G8074UG1wAKA8mYyzBQ8Alrec3w7T2eqkkLbQsE6vDHg== X-Gm-Gg: AZuq6aIB8SVYr5y4EM4LkM12NMjYuQPktJQMcZ1zqM+BJhKCzSMxjDAlhUHrBF6v8LU 8wrSWw8TZe2Q389IKJNje1jr/DC3oqwNRvPse0Ci3SPnElIXwfE4La7FNpIW6l+HtBP3vjbBhe0 DH7zkp6/9/xx7J8R9RdR87bd/huc0FIlx1uLB+amPjE4sc+CCE5ED9EpRUBm0z+JQb05nZXDVfe 1zW1t1Qh+qUMxnGn6Xvok5ByAI+nzjbk86S68bsjPLFHACU9fCvJa2bPRgZKiE4LOC4QQDR7jHn ihQv42fHbLbKDsxExMLlztHGp0RP7G5Duyfne3zTMGB3YDVI4i2+AaDDKMtVFFexeeE48Lv0eJX vYIONiwdsSM05yNEwhaxurdx1kkqLiUTaDfeIjuGxmQwMADkIZl1Pm3W3aKec9RR0uOblHw== X-Received: by 2002:a05:7301:1296:b0:2ba:a2fa:84c3 with SMTP id 5a478bee46e88-2babc44f43emr167701eec.28.1770951356321; Thu, 12 Feb 2026 18:55:56 -0800 (PST) X-Received: by 2002:a05:7301:1296:b0:2ba:a2fa:84c3 with SMTP id 5a478bee46e88-2babc44f43emr167691eec.28.1770951355814; Thu, 12 Feb 2026 18:55:55 -0800 (PST) From: Brian Cain To: qemu-devel@nongnu.org, peter.maydell@linaro.org Cc: brian.cain@oss.qualcomm.com, ltaylorsimpson@gmail.com, Marco Liebel Subject: [PULL 6/7] target/hexagon: Remove unused EXT_IDX enum Date: Thu, 12 Feb 2026 18:55:43 -0800 Message-Id: <20260213025544.2497992-7-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260213025544.2497992-1-brian.cain@oss.qualcomm.com> References: <20260213025544.2497992-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=NsTcssdJ c=1 sm=1 tr=0 ts=698e92bd cx=c_pps a=PfFC4Oe2JQzmKTvty2cRDw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=HzLeVaNsDn8A:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=Mpw57Om8IfrbqaoTuvik:22 a=GgsMoib0sEa3-_RKJdDe:22 a=EUspDBNiAAAA:8 a=pGLkceISAAAA:8 a=DONroWUodXjVzxm-Au4A:9 a=QEXdDO2ut3YA:10 a=6Ab_bkdmUrQuMsNx7PHu:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMjEzMDAyMSBTYWx0ZWRfXx088cWlfo5x6 ek9RuCRE1xA9rpR7Jwz5Agu4NOX6sUJs/z5Y3vNufpy5OAj+/j7NUHnEToiOaXw5VtS/H/lvVNK D9klZdng6yr3AVRSqeTXGsenlJBTqpvkleQlszF3iwa3jR6uaV299fMVvCN8AN6OwruXKu2O2fV MXMFVr9QD5wrjN2HON4GxjgtyRb5mCOwLHUshUJY9MYA2iFjV8nd30lU82LOX3f6+IcYtx9DQor E4lI1MwCzSZpmFVAMVvWislGVZx5p2kD7f7Bo2cXNcayHkm6i7NK2xB3QNAwxmoFQnuwcni/qGu oCd4bV9YrfZbe3cWFeFR7GfKwGStYolfNo0MEtUHma3TUydwRYjfGTT27eRFzECNsauhBMXamVD gS4w0r7V7ClwjAPgjobjK4L6tb64bHpvSSP/5fiNvQb1S6WJb2T0I6yHrQME7lWEQ/fIKZTXAO6 FMX/jtFJZL8PVmWBxDQ== X-Proofpoint-GUID: Rm1cbXKLUFXP1sxX--8yj98qbUBS3tpy X-Proofpoint-ORIG-GUID: Rm1cbXKLUFXP1sxX--8yj98qbUBS3tpy X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-02-12_05,2026-02-12_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 impostorscore=0 spamscore=0 suspectscore=0 priorityscore=1501 lowpriorityscore=0 adultscore=0 phishscore=0 malwarescore=0 clxscore=1015 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2601150000 definitions=main-2602130021 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1770951430527158500 From: Marco Liebel The EXT_IDX_noext, EXT_IDX_mmvec, and XX_LAST_EXT_IDX enum constants are defined but never referenced anywhere in the codebase. Signed-off-by: Marco Liebel Reviewed-by: Taylor Simpson Reviewed-by: Brian Cain Signed-off-by: Brian Cain --- target/hexagon/decode.c | 8 -------- 1 file changed, 8 deletions(-) diff --git a/target/hexagon/decode.c b/target/hexagon/decode.c index 00d4a79a95..dbc9c630e8 100644 --- a/target/hexagon/decode.c +++ b/target/hexagon/decode.c @@ -26,14 +26,6 @@ =20 #define fZXTN(N, M, VAL) ((VAL) & ((1LL << (N)) - 1)) =20 -enum { - EXT_IDX_noext =3D 0, - EXT_IDX_noext_AFTER =3D 4, - EXT_IDX_mmvec =3D 4, - EXT_IDX_mmvec_AFTER =3D 8, - XX_LAST_EXT_IDX -}; - /* * Certain operand types represent a non-contiguous set of values. * For example, the compound compare-and-jump instruction can only access --=20 2.34.1 From nobody Sun Apr 12 04:22:14 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1770951407; cv=none; d=zohomail.com; s=zohoarc; b=j7NFUwf+elDMDw1L9/jVPeLORQtUjvc094aL2bnvRV3s39foD5xIUkGock3c50UoXrezxg3bFU76hf67PPri0JxEQAWX5FqVLRXxQkE9AN4yvrweUnFssm8CNDlox+Q1euoc7d5EgO7W0zzj54UXu6m4n1fK7MG+o6j5F8dZLC8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770951407; 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=ibV6fOnqSKgyOpsaYe0KplZLjceXIU2EkevCzp1E/VI=; b=aQ4GUnu7qL6QtS521HqcCnl4GducC7rh+yfhNeaaFrSvZ6XcceGO5MKnZgLU26VkPiI5guQXY4p5O55UHitB1fV4DJBJrORnDYVE6cXBgcRKTH70tem/6MsXg0L54ysh8PeLUpKnboJs7uGNv1lL89uecYB7RDz5o0Xtv5qawYw= 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 1770951407955698.3016666437446; Thu, 12 Feb 2026 18:56:47 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vqjLj-0006GG-4H; Thu, 12 Feb 2026 21:56:07 -0500 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 1vqjLc-0006DC-Kl for qemu-devel@nongnu.org; Thu, 12 Feb 2026 21:56:00 -0500 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 1vqjLb-0005EX-5L for qemu-devel@nongnu.org; Thu, 12 Feb 2026 21:56:00 -0500 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 61CIlNss455058 for ; Fri, 13 Feb 2026 02:55:58 GMT Received: from mail-dy1-f198.google.com (mail-dy1-f198.google.com [74.125.82.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4c9mev1g2x-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 13 Feb 2026 02:55:58 +0000 (GMT) Received: by mail-dy1-f198.google.com with SMTP id 5a478bee46e88-2ba7e98178fso566189eec.0 for ; Thu, 12 Feb 2026 18:55:58 -0800 (PST) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2ba9dbd5d3esm4500943eec.10.2026.02.12.18.55.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 12 Feb 2026 18:55:56 -0800 (PST) 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= ibV6fOnqSKgyOpsaYe0KplZLjceXIU2EkevCzp1E/VI=; b=RZAlo35FKpW88OEr nqYKSbGIWOJhkdrwsmsTSYY6LITKHUZiRqXgvjsjkyra+9UP+r4w7/owU5k37xjj qvyLscFOF2bcBbX9v9WSeIpfrjuJ8QpZBw0B6Ov7yRW2wnsQN9UaONjV+MIeZIu2 Aapy+js6GLZvB/uvWKY0mpDv9uRTCqsxANBRH3tdzGT3Ac18xb6H+dyNSynf4rOO hRn/r/IZeRw2UQ+RAw5uxXEK7S6TuPk8gPBC3PrSbBv1WuGuV0HOdDtBrJLSj25k JbZcq0q+1MamG2Zl3y1kcR0XJDm5rC18QPAjO0g5kebjWB0oaRSVSoIsvNp0G6hs 3K9X9A== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1770951357; x=1771556157; 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=ibV6fOnqSKgyOpsaYe0KplZLjceXIU2EkevCzp1E/VI=; b=g7OqUVmcD/d/NRMPR0/dcTCGUgJo5J32cEwkS8r+AaeGfM3mkEOuO6TaCplO539Nk+ TeCtoVNszCOBEui7/CEAAvZYIgx7SO1fXJi18h8A3CjE7Ng1fZvZGABo8SvXTQ+FTB2L TRl4ekZIwReCz/A9vVwsN+K+fDm6BJyE3tfnIpAbH+7aBuUS6aDL2853XLtkvxPRPbxR VaO3lj8G8rSt3rowjhZD5PY78nkzyiwVLd2LEdCyRTM+OJDA5kwwyrThgCDknifFJjGs xBs9ADcuWfpAmhBjCIjlfhNIuT0DwKyNJKaDoDPar2uMOUVBQOCUrkzHmOq0zrtYbVsF oYdQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1770951357; x=1771556157; 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=ibV6fOnqSKgyOpsaYe0KplZLjceXIU2EkevCzp1E/VI=; b=kyZfC4r1cNWHQzKhpoJ7QE8Xxkuk5FpLh9vsbciGPuvm0XJpGO7/ed2TionhMStbtn lNNsdjXaBhnzzaMLBXPsa67yAosza/GjD21eaZ5ISAToC6dG/H8gF5fab+5N+6ta5QPn Rxyq287Z+gq/cQlEPoX4M1US2Plaa63Zn7fjTXBu7EaUTy93TEU/Cqendfxh59co89H7 rtHKafFBgXIEba0THZggurzpjgJvMbPaO7orJctv1ku8PdcC7alMTNuiv4ts335IKqQV TWNZOtHZqmFRFZXQIzm9i0J822UGrlG8wMFMoCK7Wswg6bwzHxJBy6p4qHmDaOYNcGWE 7xOA== X-Gm-Message-State: AOJu0YyYsQ6qguj5KsUQUfBVTJHSGiQUZZNW9AWLVSLg4jW9qxmDzmuP uYcPKmrXxbnKsnS1zLHGWD7IWC+JPeV6GU65pLsMOdJXQKz23UfjfivcpUaiFlRqB+C5u7YXsV9 w9dy54R4Qy07ZvK2QuYRdtf8CROZeRxVrOqe8SjY8hue8pU4Zf5/fyqc5iR/kEkkoZw== X-Gm-Gg: AZuq6aIsWi41GN3Ter7OWBd0VcRUr7FvztrKO6mEB+XyceMcNp5Dv5rnX5AccioNRZc CDx6sPGR0l8/7skO5I3YfJuU55CXcEhbUWllYj0vLv9PKl0a30ROYD1Yrl3OxFNq5BZIpksY5Sp rTNou6rW9eGmtXgG8yx6munlI/hma0PMsnajmN+e+wxsKDHWDXtIfsmu6i+CEVM9s7wWUicpzcF 425pg74THDEA2j55O/LHSiO061/4cQQXp3Ck7S+0rA9s8L1cSlDsxEyqNH/6PLxxr3x0U3gvBrf wOBB6EgtvPE9pqwru9208orH3LwKElDPVMPxWW9GEK4f4/WF3VbM7uVpyQLEtXIy4jY7Iv+YXvf OVzx/kSnTunj7pbSIGSxsnrrqIVzBiSxLM1s9ceI4PBZ7qIfGdA93BnlrRGd11+raxk6K/A== X-Received: by 2002:a05:7300:818c:b0:2b0:4c5f:c05c with SMTP id 5a478bee46e88-2babc3a6588mr135231eec.4.1770951357085; Thu, 12 Feb 2026 18:55:57 -0800 (PST) X-Received: by 2002:a05:7300:818c:b0:2b0:4c5f:c05c with SMTP id 5a478bee46e88-2babc3a6588mr135221eec.4.1770951356516; Thu, 12 Feb 2026 18:55:56 -0800 (PST) From: Brian Cain To: qemu-devel@nongnu.org, peter.maydell@linaro.org Cc: brian.cain@oss.qualcomm.com, ltaylorsimpson@gmail.com, Marco Liebel Subject: [PULL 7/7] target/hexagon: Remove unused is_finite() Date: Thu, 12 Feb 2026 18:55:44 -0800 Message-Id: <20260213025544.2497992-8-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260213025544.2497992-1-brian.cain@oss.qualcomm.com> References: <20260213025544.2497992-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=Zq7g6t7G c=1 sm=1 tr=0 ts=698e92be cx=c_pps a=wEP8DlPgTf/vqF+yE6f9lg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=HzLeVaNsDn8A:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=Mpw57Om8IfrbqaoTuvik:22 a=GgsMoib0sEa3-_RKJdDe:22 a=EUspDBNiAAAA:8 a=pGLkceISAAAA:8 a=3MbPwEZUIfkocZ0tF-YA:9 a=QEXdDO2ut3YA:10 a=bBxd6f-gb0O0v-kibOvt:22 X-Proofpoint-ORIG-GUID: bJ-MwoI-Mcc_d287zY-xtrVvjdi0TRCx X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMjEzMDAyMSBTYWx0ZWRfX5hO5aXYvaVI+ e3lL0Dh47OxXcPIKHFfbiplaJCE8FMrHeeNSIxrwHQ5tc0Q63v0QQcteXVgXIKsVFpAk+/witjz acjL+x40I6mDql9q43Ry2fKH4bhSaKXKZePoia6bIc0Yr5j5CsjPI/PtXbNpFcyU/DI5+Bzwbd/ +ll16pJ75MVFZrc1NRvc5+p0s3hDwCxTh9JBmy3149vYlj2LlA0pT8cl5r+F/Pxjt0lM3xZIlZp F8AVrlou0JecsyXnRvvgD10SY4gG1uM2tRmnVVzwo3J8PJh6IAWokgB/llm9A7mYED+gemiNCZ2 ORVCnBHfrq30UoxZrcDtsdukT475dp+6QDcMCXiDI7AsFUXh9iweBuJ6Y/v8tJ3b3Eh+sRactjl m9qvC14aLmwk9b3RDqyGnl3XzUaZvOwdGnLTfC575NYcGP1e8lviSrmQxrJNefgcxVeO/xWZP3o 9wu7D4LSA6UCo0wLV4g== X-Proofpoint-GUID: bJ-MwoI-Mcc_d287zY-xtrVvjdi0TRCx X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-02-12_05,2026-02-12_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 lowpriorityscore=0 adultscore=0 priorityscore=1501 impostorscore=0 suspectscore=0 malwarescore=0 phishscore=0 bulkscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2601150000 definitions=main-2602130021 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1770951408558158500 From: Marco Liebel is_finite() is defined but never called anywhere in the codebase. Signed-off-by: Marco Liebel Reviewed-by: Taylor Simpson Reviewed-by: Brian Cain Signed-off-by: Brian Cain --- target/hexagon/fma_emu.h | 5 ----- 1 file changed, 5 deletions(-) diff --git a/target/hexagon/fma_emu.h b/target/hexagon/fma_emu.h index fed054b609..910530fff8 100644 --- a/target/hexagon/fma_emu.h +++ b/target/hexagon/fma_emu.h @@ -18,11 +18,6 @@ #ifndef HEXAGON_FMA_EMU_H #define HEXAGON_FMA_EMU_H =20 -static inline bool is_finite(float64 x) -{ - return !float64_is_any_nan(x) && !float64_is_infinity(x); -} - int32_t float64_getexp(float64 f64); static inline uint32_t float32_getexp_raw(float32 f32) { --=20 2.34.1