From nobody Sat Feb 7 05:56:59 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; 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=none dis=none) header.from=nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1766326811; cv=none; d=zohomail.com; s=zohoarc; b=NUdfZeT+YR1vQgxg2IkT8wQUc+qtxcttG0zimJMT5Vmlb+uPrVjv6HuNw7VJJwt2FRH07bsBLHDJhuCPo9uI12vjm5iQwu5fcNpMh5dulqNztNddIJ4n4KYLC+98MUythW8EkIWKYMDXc0IdE0vWZwkycrOMA9BoHMuc+2Oid1E= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1766326811; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:Reply-To:Sender:Subject:Subject:To:To:Message-Id; bh=WQ98TkzobVimMQoi/lkf046CuMEdeeKPobxJL4R4MVg=; b=akIol1PbB8CogIJfLMRaZt1YYgXoKsVz1fM9YzTlflBkF6sGhb63eca30kyUIPwfIg+oiFxn1i2Hi32IxmXeRbkEN5exhYtsJheHdFbBmCtRKQmY62VLrY3qqgVE3luuMfFdTb9lTaOs3hPHKNUj/W49VSwhpE4qdNc3ns08Bo4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; 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=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1766326811645862.4651346658333; Sun, 21 Dec 2025 06:20:11 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vXKHW-0002Zt-80; Sun, 21 Dec 2025 09:19:34 -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 1vXKHN-0002Zc-Mf for qemu-devel@nongnu.org; Sun, 21 Dec 2025 09:19:26 -0500 Received: from rev.ng ([94.130.142.21]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vXKHK-00008p-St for qemu-devel@nongnu.org; Sun, 21 Dec 2025 09:19:25 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=rev.ng; s=dkim; h=Content-Transfer-Encoding:MIME-Version:Message-ID:Date:Subject:Cc: To:From:Sender:Reply-To:Content-Type:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: In-Reply-To:References:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive:List-Unsubscribe:List-Unsubscribe-Post: List-Help; bh=WQ98TkzobVimMQoi/lkf046CuMEdeeKPobxJL4R4MVg=; b=s9QAXuoGtxWEPX0 Amgiv5wG/LAhR+xSOJxX+EnU6TMggtqNLeQY3ez3IsPaT3sUreb021Dr/ujUABTDShZIpsd+k8AZw gugp547a6GsYGQv1oeZW+9JhCJuE3BossepJ/pN72QQ2dNY1E49iXhK/RsdQ0jhE+JBkm5v7kDomk rs=; To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, Anton Johansson Subject: [PATCH] target/hexagon: Widen MemLog::width to 32 bits Date: Sun, 21 Dec 2025 15:22:32 +0100 Message-ID: <20251221142232.22738-1-anjo@rev.ng> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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 (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=94.130.142.21; envelope-from=anjo@rev.ng; helo=rev.ng X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_PASS=-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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-to: Anton Johansson From: Anton Johansson via Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1766326813516158500 Content-Type: text/plain; charset="utf-8" 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 uint8_t when passing around the field as an immediate to retain previous truncation behaviour. Signed-off-by: Anton Johansson Reviewed-by: Brian Cain --- target/hexagon/cpu.h | 2 +- target/hexagon/op_helper.h | 4 ++-- target/hexagon/translate.h | 2 +- target/hexagon/genptr.c | 6 +++--- target/hexagon/op_helper.c | 4 ++-- target/hexagon/translate.c | 4 ++-- 6 files changed, 11 insertions(+), 11 deletions(-) diff --git a/target/hexagon/cpu.h b/target/hexagon/cpu.h index 43a854f517..9d3df84ee6 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/op_helper.h b/target/hexagon/op_helper.h index 66119cf3d4..ff65a94d57 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, uint8_t width, int slot); void log_store32(CPUHexagonState *env, target_ulong addr, - target_ulong val, int width, int slot); + target_ulong val, uint8_t width, int slot); =20 #endif diff --git a/target/hexagon/translate.h b/target/hexagon/translate.h index d251e2233f..9e8f54edb5 100644 --- a/target/hexagon/translate.h +++ b/target/hexagon/translate.h @@ -271,7 +271,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 cecaece4ae..9c66ca181a 100644 --- a/target/hexagon/genptr.c +++ b/target/hexagon/genptr.c @@ -401,10 +401,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, uint8_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 @@ -444,7 +444,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 e2e80ca7ef..823307696d 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, uint8_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, uint8_t width, int slot) { env->mem_log_stores[slot].va =3D addr; env->mem_log_stores[slot].width =3D width; diff --git a/target/hexagon/translate.c b/target/hexagon/translate.c index 8fce219c0d..6151bdd4a6 100644 --- a/target/hexagon/translate.c +++ b/target/hexagon/translate.c @@ -51,7 +51,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; @@ -1079,7 +1079,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.51.0