From nobody Sun Apr 26 08:13:17 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=1776998253; cv=none; d=zohomail.com; s=zohoarc; b=U87X3sXHCdhw7Y4xMCa2X8SgUxQFzqXEA0nFQI3xNF9rMUjRsTrGe7Tx6J0hk0pGyJ0sZdyD9HhCj/794BRzC6vQwkm/NInUvJCmlKTifcQa6Vcs13BArQpLbLXDdrZs1QWzynXWELZfQbARP82t6rstxN6DmnRbScAjNsFSX6Q= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1776998253; 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=oByYefPobt+hcemOQ65toT/WbilTH5wPecxvjLplOqQ=; b=nFcMtXk9E8LK2WWQTX7bIrBXJXmioT4UyK0CjGDAX6b3Kclpg26CtbghSYYPDbBT5sthWhv/+9HaYggKtU4ky7uRURLNZ0jtfNIwe6vE8Ultkq3y571yX5RK2pxTvn/m+M9OzhTWq6A3cfCK3P4bCaO2nW93STv7Dah0ERkgkpU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1776998253216338.501865949676; Thu, 23 Apr 2026 19:37:33 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wG6P2-0006jy-LI; Thu, 23 Apr 2026 22:36:24 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wG6P0-0006jT-QL for qemu-devel@nongnu.org; Thu, 23 Apr 2026 22:36:22 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wG6Oy-0008I2-Km for qemu-devel@nongnu.org; Thu, 23 Apr 2026 22:36:22 -0400 Received: from pps.filterd (m0279863.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 63O0UiEK154571 for ; Fri, 24 Apr 2026 02:36:18 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 4dqpf629gd-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 24 Apr 2026 02:36:18 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-2e60238adb1so16086473eec.0 for ; Thu, 23 Apr 2026 19:36:18 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2e539fa6134sm31240868eec.3.2026.04.23.19.36.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 23 Apr 2026 19:36:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= oByYefPobt+hcemOQ65toT/WbilTH5wPecxvjLplOqQ=; b=eN7x2Cxn2DsKTSk7 lp7Xr7MTuU4vnmtNdeDfeidbKsBz1Uq0ApjIfgCxfkQUh2H9dnbhHsu56q/2ROnV W+DwCcexSkh1CFy4LIQuzvTar2KIneMyeuVNj5Mw9+Grp9QMHPcnYB2/UwZC+zRT W7g3FWiihSgftYpS5EpSkxmjtZLibpFAcMTTvF3wI4DZDW84BLY4KwRkhC6ocsx9 5ckSiDLGMtKflfnYkZv9I/E8koXv11oo8L9hK9fLh6Q5TkMrQFN0K7Jg8yctwPjv 7Bl4IKD5nj2rhig6nnBexrtNyOSevR9T+x17hhPJgLX2/bFMoIekyW7QWxRBhINg OKEHaA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1776998178; x=1777602978; 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=oByYefPobt+hcemOQ65toT/WbilTH5wPecxvjLplOqQ=; b=LzZL9G2oU4Q7Y0vS4kMkb9UEmTlxo/ClQq1BUtoyERDDJjiRcls3iFE9c4Qvg+euiF 5xrPxXVtz0Adbp5QCPhemXP4KwyF+jCWFiWQkhsH1XVUJGDRllqbqiqVCHYoIlOvJErq ER708qhujYZ9/y2hoMwVbmzGLopyBVRMVNsUMQhJ4h8oh8Qo2EXMuiDiMDQyhfqj+tvc GnDPHApwyyJ7Zxvue2uPrzNBqJnnlW2xEtrdE01N5bYZqWrf9Zugu9DjaVicwIMuLEeH IcqGx0ME/1wn+eqGVIxPRNCI+5VLYs3hcVSHkbfwsDA8hDOcJE9UTHvoVekBA6DSefi6 2Zeg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776998178; x=1777602978; 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=oByYefPobt+hcemOQ65toT/WbilTH5wPecxvjLplOqQ=; b=J9CuCTRfPsblvSUFkTadneBg5X67Ike8fPe/WTrhDzyD4DFyZdgo33QGXJVT474zhA 76Lzfu+WQZx1gmx7XXs39oGiEvN6cQsuW61oTDpD3fyxAmJa6pRC9QBbaRUXBur0jEuL QgvjUXqmgLIEFl28M5cjjYrZGYrFKdoPHrmiiC8QiBTSbqmHxIhKNVJT78de9iD2/1Yf dmVT/jOhpFdkpN5dEfb6EtOcX/N01xIFr3tUDEtca1yEoOgD8SmCHzoO/SA7N3zQfMWt tRKFJLhabsEGLs1YIu5QbCxs4W+JQOhh7r2h5lV4tPOpR8lHe91E6IbjXbUMcOUp77Gz z0HA== X-Gm-Message-State: AOJu0YykmW1qkyKCzl5SNDVs2wtSfqCRKQh2ZhrklYhgMzrBUiccDhqY FB6ssWeLc2uhTVwbDQUI+GGYMxtjzIiA4ykvyw3GHeMQlkhpZyiRDiY/l9/+MzUDMJM+nYZw5T4 BYiTlvMzHMGUTTiFanABMw1dXOKMrRETtm0DLRS1MN9Rz6XQq43zFEOx15Oipujeijg== X-Gm-Gg: AeBDieuF53mYCH9gfbix8TV1+k7YsrKmgWGTjPjupa4QzO74KTZtD+4XEn6v+WGmQyN 3FB/aavizAtHhj95JUzv/+ju7ai52pAGgxt019bmqhEolb2ZNTSrdVpp9N+P1m9mvSLwg7MXM23 S34zo/tufU2aVNhMpIDh5A0fhNJlPa/qQaKR879OEzHxKVOnStychMPItHumg8PaEqHbFamwopX uHMvv9U/CJMoVunvHIG3vKVFHdIAKZSADJWFRp68oNzkhf6i5nQ3/Nn+D1jH6YMZMlwce3yObL3 13LUodWKNqQdplWpYq+RTtfqizQDc+yuf55ZSTS29allK+gkP1rrtK9Naz2jpqDojdQ4IwWMJi0 spNAOZ86P9QdQtD703+/vazdLsRA22S+OFLiuexdRr1JzXQR1b61qblLL0AjdliesKN7/vtxWpf /dk4Ir X-Received: by 2002:a05:7301:6587:b0:2ea:6361:8981 with SMTP id 5a478bee46e88-2ea63618b8bmr10546376eec.22.1776998177775; Thu, 23 Apr 2026 19:36:17 -0700 (PDT) X-Received: by 2002:a05:7301:6587:b0:2ea:6361:8981 with SMTP id 5a478bee46e88-2ea63618b8bmr10546365eec.22.1776998177258; Thu, 23 Apr 2026 19:36:17 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Taylor Simpson , Matheus Tavares Bernardino , Anton Johansson , Pierrick Bouvier Subject: [PULL 1/9] Hexagon (target/hexagon) Properly handle Hexagon CPU version Date: Thu, 23 Apr 2026 19:35:58 -0700 Message-Id: <20260424023606.2556830-2-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260424023606.2556830-1-brian.cain@oss.qualcomm.com> References: <20260424023606.2556830-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=Iocutr/g c=1 sm=1 tr=0 ts=69ead722 cx=c_pps a=Uww141gWH0fZj/3QKPojxA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yOCtJkima9RkubShWh1s:22 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=kO7NYY--Zd9gfOQAb1oA:9 a=QEXdDO2ut3YA:10 a=PxkB5W3o20Ba91AHUih5:22 X-Proofpoint-ORIG-GUID: 8tfChXzFOW5o3VhYfRu839aXxj8imIeQ X-Proofpoint-GUID: 8tfChXzFOW5o3VhYfRu839aXxj8imIeQ X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDI0MDAyMCBTYWx0ZWRfX5rJey1EOLnhI 72OKajPPjSLuOh0u/Ld7/MnVtczpWdgN5LO8Ft9Ur1RyycsOzR85nri73CnprMJBGLa3TOdN+7m SN/5subbI7E0JpNd9il9L0iZDbEfBy+LKH7zjTYbeeMmgUUVzYCtx4kS1DJTA6iDc0pdWVjJiOf LW5WG6kUyAmEwbBP+grGdebZcvh/aE/9K4uLe1ENH1kkZe7Cwy2BhczCUfvWNDRiGWhRYBSSnrS AXRmBby2n9QHPNUOP94wL6/KB4iTllc1vmve1GjTBXaF5c/AmiUQkhisxTkQDMCVRhskSGEkl+i Stx6JbAPdtQCD0oPqg4q286resLdBZudhxY+TQEhoF45mE2MuITRZruZ/CxarM30bfExsa/66zJ CRi44Zev27CrqmhDE7scMR4FW8Up8vuPrGKQxBf7xz6eZRFbs/0JFeiBFzGWSHqg2Wdcjtu3PJ+ 5X0bYaKgUUywVHqUbMA== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-04-23_03,2026-04-21_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 malwarescore=0 phishscore=0 bulkscore=0 spamscore=0 suspectscore=0 priorityscore=1501 lowpriorityscore=0 clxscore=1015 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604200000 definitions=main-2604240020 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1776998255184154100 From: Taylor Simpson Add the following CPU versions that were previously missing v5 v55 v60 v61 v62 v65 Create a CPUHexagonDef struct to represent the definition of a core Currently contains an enum with the known Hexagon CPU versions Add a field to HexagonCPUClass to note the Hexagon definition Co-authored-by: Matheus Tavares Bernardino Co-authored-by: Brian Cain Signed-off-by: Taylor Simpson Reviewed-by: Anton Johansson Signed-off-by: Brian Cain --- target/hexagon/cpu-qom.h | 27 +++++++++++++++++++++++ target/hexagon/cpu.h | 2 ++ target/hexagon/cpu.c | 46 ++++++++++++++++++++++++---------------- 3 files changed, 57 insertions(+), 18 deletions(-) diff --git a/target/hexagon/cpu-qom.h b/target/hexagon/cpu-qom.h index 0b149bd5fea..6e1bb040704 100644 --- a/target/hexagon/cpu-qom.h +++ b/target/hexagon/cpu-qom.h @@ -11,11 +11,38 @@ =20 #include "hw/core/cpu.h" =20 +typedef enum { + HEX_VER_NONE =3D 0x00, + HEX_VER_V5 =3D 0x04, + HEX_VER_V55 =3D 0x05, + HEX_VER_V60 =3D 0x60, + HEX_VER_V61 =3D 0x61, + HEX_VER_V62 =3D 0x62, + HEX_VER_V65 =3D 0x65, + HEX_VER_V66 =3D 0x66, + HEX_VER_V67 =3D 0x67, + HEX_VER_V68 =3D 0x68, + HEX_VER_V69 =3D 0x69, + HEX_VER_V71 =3D 0x71, + HEX_VER_V73 =3D 0x73, + HEX_VER_ANY =3D 0xff, +} HexagonVersion; + +typedef struct { + HexagonVersion hex_version; +} HexagonCPUDef; + #define TYPE_HEXAGON_CPU "hexagon-cpu" =20 #define HEXAGON_CPU_TYPE_SUFFIX "-" TYPE_HEXAGON_CPU #define HEXAGON_CPU_TYPE_NAME(name) (name HEXAGON_CPU_TYPE_SUFFIX) =20 +#define TYPE_HEXAGON_CPU_V5 HEXAGON_CPU_TYPE_NAME("v5") +#define TYPE_HEXAGON_CPU_V55 HEXAGON_CPU_TYPE_NAME("v55") +#define TYPE_HEXAGON_CPU_V60 HEXAGON_CPU_TYPE_NAME("v60") +#define TYPE_HEXAGON_CPU_V61 HEXAGON_CPU_TYPE_NAME("v61") +#define TYPE_HEXAGON_CPU_V62 HEXAGON_CPU_TYPE_NAME("v62") +#define TYPE_HEXAGON_CPU_V65 HEXAGON_CPU_TYPE_NAME("v65") #define TYPE_HEXAGON_CPU_V66 HEXAGON_CPU_TYPE_NAME("v66") #define TYPE_HEXAGON_CPU_V67 HEXAGON_CPU_TYPE_NAME("v67") #define TYPE_HEXAGON_CPU_V68 HEXAGON_CPU_TYPE_NAME("v68") diff --git a/target/hexagon/cpu.h b/target/hexagon/cpu.h index 85afd592778..f99647dfb61 100644 --- a/target/hexagon/cpu.h +++ b/target/hexagon/cpu.h @@ -117,6 +117,8 @@ typedef struct HexagonCPUClass { =20 DeviceRealize parent_realize; ResettablePhases parent_phases; + + const HexagonCPUDef *hex_def; } HexagonCPUClass; =20 struct ArchCPU { diff --git a/target/hexagon/cpu.c b/target/hexagon/cpu.c index ffd14bb4678..23ac91e7b47 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -27,13 +27,6 @@ #include "exec/gdbstub.h" #include "accel/tcg/cpu-ops.h" =20 -static void hexagon_v66_cpu_init(Object *obj) { } -static void hexagon_v67_cpu_init(Object *obj) { } -static void hexagon_v68_cpu_init(Object *obj) { } -static void hexagon_v69_cpu_init(Object *obj) { } -static void hexagon_v71_cpu_init(Object *obj) { } -static void hexagon_v73_cpu_init(Object *obj) { } - static ObjectClass *hexagon_cpu_class_by_name(const char *cpu_model) { ObjectClass *oc; @@ -377,11 +370,21 @@ static void hexagon_cpu_class_init(ObjectClass *c, co= nst void *data) cc->tcg_ops =3D &hexagon_tcg_ops; } =20 -#define DEFINE_CPU(type_name, initfn) \ - { \ - .name =3D type_name, \ - .parent =3D TYPE_HEXAGON_CPU, \ - .instance_init =3D initfn \ +static void hexagon_cpu_class_base_init(ObjectClass *c, const void *data) +{ + HexagonCPUClass *mcc =3D HEXAGON_CPU_CLASS(c); + /* Make sure all CPU models define a HexagonCPUDef */ + g_assert(!object_class_is_abstract(c) && data !=3D NULL); + mcc->hex_def =3D data; +} + +#define DEFINE_CPU(type_name, version) \ + { \ + .name =3D type_name, \ + .parent =3D TYPE_HEXAGON_CPU, \ + .class_data =3D &(const HexagonCPUDef) { \ + .hex_version =3D version, \ + } \ } =20 static const TypeInfo hexagon_cpu_type_infos[] =3D { @@ -394,13 +397,20 @@ static const TypeInfo hexagon_cpu_type_infos[] =3D { .abstract =3D true, .class_size =3D sizeof(HexagonCPUClass), .class_init =3D hexagon_cpu_class_init, + .class_base_init =3D hexagon_cpu_class_base_init, }, - DEFINE_CPU(TYPE_HEXAGON_CPU_V66, hexagon_v66_cpu_init), - DEFINE_CPU(TYPE_HEXAGON_CPU_V67, hexagon_v67_cpu_init), - DEFINE_CPU(TYPE_HEXAGON_CPU_V68, hexagon_v68_cpu_init), - DEFINE_CPU(TYPE_HEXAGON_CPU_V69, hexagon_v69_cpu_init), - DEFINE_CPU(TYPE_HEXAGON_CPU_V71, hexagon_v71_cpu_init), - DEFINE_CPU(TYPE_HEXAGON_CPU_V73, hexagon_v73_cpu_init), + DEFINE_CPU(TYPE_HEXAGON_CPU_V5, HEX_VER_V5), + DEFINE_CPU(TYPE_HEXAGON_CPU_V55, HEX_VER_V55), + DEFINE_CPU(TYPE_HEXAGON_CPU_V60, HEX_VER_V60), + DEFINE_CPU(TYPE_HEXAGON_CPU_V61, HEX_VER_V61), + DEFINE_CPU(TYPE_HEXAGON_CPU_V62, HEX_VER_V62), + DEFINE_CPU(TYPE_HEXAGON_CPU_V65, HEX_VER_V65), + DEFINE_CPU(TYPE_HEXAGON_CPU_V66, HEX_VER_V66), + DEFINE_CPU(TYPE_HEXAGON_CPU_V67, HEX_VER_V67), + DEFINE_CPU(TYPE_HEXAGON_CPU_V68, HEX_VER_V68), + DEFINE_CPU(TYPE_HEXAGON_CPU_V69, HEX_VER_V69), + DEFINE_CPU(TYPE_HEXAGON_CPU_V71, HEX_VER_V71), + DEFINE_CPU(TYPE_HEXAGON_CPU_V73, HEX_VER_V73), }; =20 DEFINE_TYPES(hexagon_cpu_type_infos) --=20 2.34.1 From nobody Sun Apr 26 08:13:17 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=1776998264; cv=none; d=zohomail.com; s=zohoarc; b=k1PaEf40Q4ySBvpU4GAYUud71RF4C24xqwOWxAELRbkIUL/Pb4l6q8RSua14+R/L9Q6ra9nHfOes/z5FIVllLasLOlQQ1k4kJ3UWPw0/it9bk3NWbDIOT/sjIK3bodZ1AnaVIglmaENQwhFWFywJvlLl0YSWuPk+O4zVRUPPhTI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1776998264; 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=j2kp/jUn5Ky3qTZMPIfFLxVQK9jhybJ5P30/1L6hUHw=; b=R64cobxEKIrg/ybX8Y2wDNl87t//jyuNvMvDcPd6evT3o3ELms2u1Kxf8I9y1BIVcbSWOPXogcrpSE0W5DTo949dwuG6FzczwbKMiGrGYWVpAcVczAwbkDPkmD7ez9ZF4nACg6fpfDJfcgiMWkhRNkC9Niej1ObWqRTLPtX99GA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1776998264133169.97758373455338; Thu, 23 Apr 2026 19:37:44 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wG6P3-0006kd-JO; Thu, 23 Apr 2026 22:36:25 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wG6P2-0006jj-07 for qemu-devel@nongnu.org; Thu, 23 Apr 2026 22:36:24 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wG6Oy-0008JN-QN for qemu-devel@nongnu.org; Thu, 23 Apr 2026 22:36:23 -0400 Received: from pps.filterd (m0279862.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 63O0C1EL1204917 for ; Fri, 24 Apr 2026 02:36:19 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 4dqggnbx4v-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 24 Apr 2026 02:36:19 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-2dd1c74508cso11943078eec.0 for ; Thu, 23 Apr 2026 19:36:19 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2e539fa6134sm31240868eec.3.2026.04.23.19.36.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 23 Apr 2026 19:36:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= j2kp/jUn5Ky3qTZMPIfFLxVQK9jhybJ5P30/1L6hUHw=; b=PKHroozwhMsRYV8i HWVOygDYCFnRQTlA5l4BOaLmDBiAdrTTPGrcfdIwYkpn+mlVqYk5JCoZxntwLlbQ QnMBqFCuuhf7h02ZNlyr1Oi8Q90f0g3Sq73hD4KHQMhMmK1Z+2pLcYFcrxsCorSn HUT/KlP3zxZIxq77/x/N4rBAfExJXF/BmKj55IrDMSGs7PgVwiWisclo9MgeGvH5 lEWQdgi+sdwO/n31atXRUS55IX14v6vxFw9+0ufDv/3qmtQqlrhp3EcHOsSVpQP3 LWhKPJQyw+8NY227XnXJ27sYE+iCW5HXXEzr+NTthXOshJtRevkq6hgT1jHOcuqE f1716g== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1776998179; x=1777602979; 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=j2kp/jUn5Ky3qTZMPIfFLxVQK9jhybJ5P30/1L6hUHw=; b=GkBWAMUvgrtqZZolj/w+qWWyf4m7EPxWTkW0xq1RTc8fdBdBhWvB0whWju7m+tzEQY 5vy5swK0H7Ym+qE/o4Mr53WhyfHKDk0kRPoJ7ZzlNsItHs7s1Hqg0IaveTmAG+EYpO+8 btpMc13LuuY8YcT5tvvCkxU8PBuB2jAf9D5LX2T2YUA7ImfG7WOXyZw74OXJKnsEED4z P+VFpfP71Y2jSfGggKXrhqf0TuajjTaeYX9krSG0O+XU3r5rnQosB0JT5V6aAxD4x5Ki cVrk6KS8Kh35y4IZyBIjlPqIsRmrA1mLJhsY1Oy0FjbWFRLqEFGVi/IZ8Y8/v5fz31dU apPg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776998179; x=1777602979; 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=j2kp/jUn5Ky3qTZMPIfFLxVQK9jhybJ5P30/1L6hUHw=; b=DPoeetr27tBFGzUpsK/9Zwo3BT5D4sC3zGz/vcrSLwytVS59h4vQ9Ia45oHVoH/Q54 O7bsVoGeO0gnPM7qvDLl/eaA7K3Ed/ceq87aKhO05OEK9DGnIv5FLPXG4MrUpJkBufP4 2Piv2+HYRbz1RarKUpMpJLRl0EvgI/Ebrgi34d4lXky+MS0wGnG6oxnJwqgi29V0r+lY ABGMu+hnVE0TWJqYXOJNDzigi+FTMlamGUBqU8W12cEmEiq7NCMYuA024xdRkEp4D2Sl iG3iHQWTQVedIVA+ngMfYwn9tARdrGk+af69ululXBL7DJEw5TgVGge10Rgq2krQt7MS AOeg== X-Gm-Message-State: AOJu0YwYf5QUzaOAb4zp+WQxivt1diJjcAcLan48XtbagFgVOgxUMI4H 5p7gcAj+X6fq+HKexnb8flFMeV/bVmS92dnvMFeI3UjoyTpHrj2R5lzWGzVrRejUZOeWYBaolc6 avxyfcXFuXduGGVPrPF0M0kRwtbXqN+tpKzQ+way55PrENs5wbxl7xF1wM0UCFVCQtg== X-Gm-Gg: AeBDieuISAT/AHsrxF6zFNZQFvlv2WpT5mceVLERN5qx9HmqyM49fSUeVL1p5qVN4W/ ZDB63uuuVazWkzdtM+07OXf5GoLVwULWak9BNRbBdyF43rk2w3f6EowDFcCdCdqIpKwpkoJSV7i cASZRQlLB5A0BIH723mb1e8rbdETU12zOfWWKsFcYeoj4h9QYrABtijF/zlC/xFq5DDdl3O5QrN u9hqKqWT2hYJAMiHiKdRPYM0QQ2S6ZDAasZIi4IqQdZpJnRbz3amE23CtvaqyRpqegEPp2je7m/ GLCtpsfJv9xU34FyBg+7h3goVoO30B//12A5Grk2G5j0Xep55VzhfKhEOJ9Q7lMlOTRKq4ErRbd v/r6R2oe6VzZGwmC2bUrrvCFCCWdK0MiH9Fa+UmMpBoKEi2wCjyCKfNtotqRpsxGHOR+odThC6U tv5Arj X-Received: by 2002:a05:7300:641b:b0:2d1:d434:d022 with SMTP id 5a478bee46e88-2e4521f9d92mr15964340eec.0.1776998178541; Thu, 23 Apr 2026 19:36:18 -0700 (PDT) X-Received: by 2002:a05:7300:641b:b0:2d1:d434:d022 with SMTP id 5a478bee46e88-2e4521f9d92mr15964330eec.0.1776998178036; Thu, 23 Apr 2026 19:36:18 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Taylor Simpson , Matheus Tavares Bernardino , Anton Johansson , Pierrick Bouvier , Laurent Vivier Subject: [PULL 2/9] Hexagon (linux-user/hexagon) Identify Hexagon version in ELF file Date: Thu, 23 Apr 2026 19:35:59 -0700 Message-Id: <20260424023606.2556830-3-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260424023606.2556830-1-brian.cain@oss.qualcomm.com> References: <20260424023606.2556830-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: YQJzqK61zRdQKN8s086l2l4drq09AZaV X-Authority-Analysis: v=2.4 cv=YZeNIQRf c=1 sm=1 tr=0 ts=69ead723 cx=c_pps a=cFYjgdjTJScbgFmBucgdfQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_K5XuSEh1TEqbUxoQ0s3:22 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=VbRvh4igG6xmFnRxfGQA:9 a=QEXdDO2ut3YA:10 a=scEy_gLbYbu1JhEsrz4S:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDI0MDAyMCBTYWx0ZWRfX8GTn2syvvCbj cTw2Fl92qEg3CygZ2pRPcoO2Bpg7d/6L4TbngOybufq68lrX1AWHA2NZLsVzRIyFpFpALvwku+s QB7OPKHTPBtakOya+QnKiIYb4E4ZvLuTU9Z0TIuMyt5CMspvrw11rd+wwVYfOeH16IkIyVwPXii eKy/6KylOo6HldKDsnWg0P8OIa6Bwbg9h05zjg4Spi4Nu2iyquaY5gfiTp3M0VTAVl2cESk/xId TKYEdIaEsuqdCyCZqSFQ5kXUKZkUym4yT3p9N7p5AdXgynMIqKMLEacWKCxchAal8YUC7CsOIxW GfhMiTRrVGRjPrJScqkQ6WZmc6luWkEe8lSMhQmSrWUxEWYbVuIW5bs7NT7IROkz9acyqvz9RLS IMAuOw5B4u1vsHaMA5ZTgXGwZnaSb32ogebqYTyWoke7V43HszQ5/sfubEaQRZwxwloFiafCtOT yZWLXcGifhVBp1CZRWw== X-Proofpoint-GUID: YQJzqK61zRdQKN8s086l2l4drq09AZaV X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-04-23_03,2026-04-21_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 adultscore=0 bulkscore=0 phishscore=0 suspectscore=0 malwarescore=0 impostorscore=0 priorityscore=1501 lowpriorityscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604200000 definitions=main-2604240020 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1776998266339158500 From: Taylor Simpson Return proper Hexagon CPU version from get_elf_cpu_model Co-authored-by: Matheus Tavares Bernardino Co-authored-by: Brian Cain Signed-off-by: Taylor Simpson Reviewed-by: Anton Johansson Signed-off-by: Brian Cain --- linux-user/hexagon/elfload.c | 43 ++++++++++++++++++++++-------------- 1 file changed, 26 insertions(+), 17 deletions(-) diff --git a/linux-user/hexagon/elfload.c b/linux-user/hexagon/elfload.c index d8b545032ab..39b02018145 100644 --- a/linux-user/hexagon/elfload.c +++ b/linux-user/hexagon/elfload.c @@ -10,23 +10,32 @@ const char *get_elf_cpu_model(uint32_t eflags) static char buf[32]; int err; =20 - /* For now, treat anything newer than v5 as a v73 */ - /* FIXME - Disable instructions that are newer than the specified arch= */ - if (eflags =3D=3D 0x04 || /* v5 */ - eflags =3D=3D 0x05 || /* v55 */ - eflags =3D=3D 0x60 || /* v60 */ - eflags =3D=3D 0x61 || /* v61 */ - eflags =3D=3D 0x62 || /* v62 */ - eflags =3D=3D 0x65 || /* v65 */ - eflags =3D=3D 0x66 || /* v66 */ - eflags =3D=3D 0x67 || /* v67 */ - eflags =3D=3D 0x8067 || /* v67t */ - eflags =3D=3D 0x68 || /* v68 */ - eflags =3D=3D 0x69 || /* v69 */ - eflags =3D=3D 0x71 || /* v71 */ - eflags =3D=3D 0x8071 || /* v71t */ - eflags =3D=3D 0x73 /* v73 */ - ) { + switch (eflags) { + case 0x04: + return "v5"; + case 0x05: + return "v55"; + case 0x60: + return "v60"; + case 0x61: + return "v61"; + case 0x62: + return "v62"; + case 0x65: + return "v65"; + case 0x66: + return "v66"; + case 0x67: + case 0x8067: /* v67t */ + return "v67"; + case 0x68: + return "v68"; + case 0x69: + return "v69"; + case 0x71: + case 0x8071: /* v71t */ + return "v71"; + case 0x73: return "v73"; } =20 --=20 2.34.1 From nobody Sun Apr 26 08:13:17 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=1776998282; cv=none; d=zohomail.com; s=zohoarc; b=hLI9e0tOax0VMJafq+PtbGpc9djqcdHOBmmh5dwFLffjKbg4djJ3yN3HBiaNg2umUoqSv5cDFR0T5FoLvJhOKNCIIo3Ci5hk+cBd4HLrgSF/PijXag9Y5OBPhf3kg2Mt3vUNa8Ch706styuFz1k+zXD+68eOfyMN+HHP6/QozIs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1776998282; 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=9Qq3yTydG2zA8fi3pUcOBjH4+Z/04c40PX8CcZNcxck=; b=WJip6lAKJYrgzJ5zBbOE6y1R6tsKJm6jz29NqQInOHQOfK2+nIUczDCb741QlwuxAAI31fL1UgJduWESLZxyQMkjR8aztTHIIcq6Jr+4SyuKUq70VIv8l23C7ItQWtPUsQVC7Afd7Majc1AwXrdGEtT2jCw5ZOgjOMQUT+jQv28= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1776998282594424.2705020336673; Thu, 23 Apr 2026 19:38:02 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wG6P7-0006ky-JZ; Thu, 23 Apr 2026 22:36:29 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wG6P2-0006jq-9z for qemu-devel@nongnu.org; Thu, 23 Apr 2026 22:36:24 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wG6P0-0008K9-AZ for qemu-devel@nongnu.org; Thu, 23 Apr 2026 22:36:24 -0400 Received: from pps.filterd (m0279868.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 63NHgG0m1533461 for ; Fri, 24 Apr 2026 02:36:21 GMT Received: from mail-dl1-f70.google.com (mail-dl1-f70.google.com [74.125.82.70]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4dqr26hvgx-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 24 Apr 2026 02:36:20 +0000 (GMT) Received: by mail-dl1-f70.google.com with SMTP id a92af1059eb24-12c8ccc7593so8059674c88.1 for ; Thu, 23 Apr 2026 19:36:20 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2e539fa6134sm31240868eec.3.2026.04.23.19.36.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 23 Apr 2026 19:36:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= 9Qq3yTydG2zA8fi3pUcOBjH4+Z/04c40PX8CcZNcxck=; b=Djjza6PN33SikYYi Q+B1e36z6FUGaGztOJdaPSrKJJ9YjsseCTe+l9rsdv7dBuDPxQJ/f7p2QHmwAnVu yVBmouYZvLP6us0nh2Om2p6A/DO9DUyoMfDdq+2FoOCmlzDl9VewrsdDi6oo3Yoy e+mDCeFl+9LWVkR2NQOQzYgw/ce8TRvIpVyT8qxZOVDwFANAHBE5MF3SJIG9NWaY 7RPNinEETlzE7bpTh4viDWFDrpQzoJZ9BwECQHO/1vR/TO2ykOfgkeiCdxZzToc/ y3ORKJsP+I5Vf+iW7r8Sp8uHrgZ+Adzr1Nwf2gjdfTHY+R841FWti9itap4qzBQK QCH1qQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1776998179; x=1777602979; 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=9Qq3yTydG2zA8fi3pUcOBjH4+Z/04c40PX8CcZNcxck=; b=jdcOSEsNxFuvzK9MZKSRVcDzy0OQ0yXyUnVIWdykgnG7QjvCj/ZZWswFg4w0StuoNS HI45WDXRdpyQDqni5W9y6TEFiLbqMHY8h5rsdUAkE3HxWaxip3HRgNFADvPlYVG1QFm0 hCLGW1CQcc48Ja1l2PAMxXlp0VM29nPJzUt5lxFJ5VRwSnwAosuN/NW/Yz5EQliiN/aH g+e/cykV/3qONiozSF5NXdlqIbPLc0VHHHbKPmF08LBrGsq7gjjvciVTnpBt/Ni0DrR6 dQT10rlU1F2aZwbhyWWFd2oKkCh6g4CG0iikDAox9S9edRSL2x5Y64b/rBV5TWMG5MhR DAtg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776998179; x=1777602979; 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=9Qq3yTydG2zA8fi3pUcOBjH4+Z/04c40PX8CcZNcxck=; b=dxw7JX5K6AodL119I9aow8j5/Pt+04ewIHX9tXI3jVCGqYFKQylC6LJRDQbkVvN6F6 HF8bS6d63bP8Z27e+wF0I37SlIykqI7sQh4ssT/j2HgpmHecfj741pW7ynCocRPSoyuA byKbVp35cAfiburtsKDM8V5vOmiqMTgb9yPl7SLRfLhiR40qh0WZsBWvCt8jo3bdPdG0 X3GXug9ZdryP4y2fnU/eCfeRupbLUCsrpWtiJ3duM9BMpQLjD+Y1NzWA8U+ddiaMi73p 1InN8c85+vF2iSUAuBXsfNSJcMx67v/BWZLklkL2jfvWRAHrAkrsZJTjyWcEt4Clr+DT +Opg== X-Gm-Message-State: AOJu0Ywqv0S9JUg3VHFKM9Mio+D0hnHzC1+ilAr+rr2ASgFmAuAmJ+Bd Sj1I3JrBhhu1ICAX4G5J7jYnZw0srftYkWqhNjAaE+8jQZaq/prNEqgI2dj3okR5F/UqcLCIS6k jxR7E3IastLhqcLb2weUWqi6rdgOY+9IKXHoYXPR4rS4oOW33yXLRuQl+Oi3v0fk85w== X-Gm-Gg: AeBDieuZR8PDZeHxpB417ZDwYaV5S4Oig3aHLctXz5KpnewGt8tLi1ciapDAcyuxQz0 R9Z+CSrBcsXswKhOcIW1yspa0OF6lP+dzC1aJabKMsHVAEXiT6oup7/r8+PlbgW7pzJ0woE+VG3 375Y1j7zOhbJImfs3+Z5Q2O8di6Q1qe9PDbeajW9h2VrE84dF7fFKQTOjtSVttjcHmsLckNZAY4 uhQAnxFXc2D57rOO/bjvVQN/uqY9MLo44ua5Y2Rlp6zruoQJ9OrFtdlGyV2QkDGlMb/B9jSX+RX 0Pr2jvAUPopea/bjm/Z9ej4Cxxr6AeNzFsJj/PLIX1E3bw10hwLS4PXaBtk/UIiVfZy/WWM6LbR 3v/huPuWtzJfC77t3RY5azJ+co55zfAw/aFg72fU19HohUC8nzYOtRFeQyrjPzYYs1cxIdD+yaf Rk2Y1X X-Received: by 2002:a05:7022:eac1:b0:12c:8d32:9378 with SMTP id a92af1059eb24-12c8d32953bmr11970540c88.32.1776998179322; Thu, 23 Apr 2026 19:36:19 -0700 (PDT) X-Received: by 2002:a05:7022:eac1:b0:12c:8d32:9378 with SMTP id a92af1059eb24-12c8d32953bmr11970525c88.32.1776998178822; Thu, 23 Apr 2026 19:36:18 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Taylor Simpson , Matheus Tavares Bernardino , Anton Johansson , Pierrick Bouvier Subject: [PULL 3/9] Hexagon (target/hexagon) Add Hexagon definition field to DisasContext Date: Thu, 23 Apr 2026 19:36:00 -0700 Message-Id: <20260424023606.2556830-4-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260424023606.2556830-1-brian.cain@oss.qualcomm.com> References: <20260424023606.2556830-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: 7a2toVMBJ5ir3xfL8lDs1lbVn7-MDQMz X-Authority-Analysis: v=2.4 cv=QLhYgALL c=1 sm=1 tr=0 ts=69ead724 cx=c_pps a=SvEPeNj+VMjHSW//kvnxuw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=qvChV9ao02qsrf_68UQA:9 a=QEXdDO2ut3YA:10 a=Kq8ClHjjuc5pcCNDwlU0:22 X-Proofpoint-GUID: 7a2toVMBJ5ir3xfL8lDs1lbVn7-MDQMz X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDI0MDAyMCBTYWx0ZWRfX6dsPE6zkoFXT jtBFRyZSyrchNzT+B6QTPuznKAA3Mqvu2Th/x7mt/0vBROvsPa+zD7OmbB1c6YHsXdmv13cV8Jf JQnmhAZtKvlqA11AKTDsMSWujm3KPFkSOJbIeWl9pbarLeYPk4EfmVacq8IEpF6mOp2jBfBREqx JcvZW3MVoLsMonuuKMLwC7SkDqdlp2fXknVcxz7PBWiPyA5difEZZcX0d+M56jdrqDyNxTketZK v8OV8UEuTZDSVWmddKmVP25920AWXZaNuVTto6A9/KsPkIARBT1Ihf7dG0XuRSqEioKZQyjZQ1p bSVIQ6Cu6wTj0OXxqnv8V4ajGUGxCuzwbvhnxO9u0/7ytlXB+k5gw/IfSSjOqXjziN5PFY3K5sW MaxS8KunVJbaeNzPbcTaDdMgTmZjB5vAai981zU0YRw53LKGEin4QBoRLwHg13i+Qfmulw23afr kNMU5fqJbjHxWVcTNmg== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-04-23_03,2026-04-21_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 spamscore=0 suspectscore=0 phishscore=0 bulkscore=0 lowpriorityscore=0 malwarescore=0 adultscore=0 clxscore=1015 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604200000 definitions=main-2604240020 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1776998284887158500 From: Taylor Simpson Initialize the field in hexagon_tr_init_disas_context Co-authored-by: Matheus Tavares Bernardino Co-authored-by: Brian Cain Signed-off-by: Taylor Simpson Reviewed-by: Anton Johansson Signed-off-by: Brian Cain --- target/hexagon/translate.h | 1 + target/hexagon/translate.c | 1 + 2 files changed, 2 insertions(+) diff --git a/target/hexagon/translate.h b/target/hexagon/translate.h index b37cb492381..9cdcbd64164 100644 --- a/target/hexagon/translate.h +++ b/target/hexagon/translate.h @@ -30,6 +30,7 @@ typedef struct DisasContext { DisasContextBase base; Packet *pkt; Insn *insn; + const HexagonCPUDef *hex_def; uint32_t next_PC; uint32_t mem_idx; uint32_t num_packets; diff --git a/target/hexagon/translate.c b/target/hexagon/translate.c index 633401451d8..12c82fd6c5a 100644 --- a/target/hexagon/translate.c +++ b/target/hexagon/translate.c @@ -988,6 +988,7 @@ static void hexagon_tr_init_disas_context(DisasContextB= ase *dcbase, ctx->branch_cond =3D TCG_COND_NEVER; ctx->is_tight_loop =3D FIELD_EX32(hex_flags, TB_FLAGS, IS_TIGHT_LOOP); ctx->short_circuit =3D hex_cpu->short_circuit; + ctx->hex_def =3D HEXAGON_CPU_GET_CLASS(hex_cpu)->hex_def; } =20 static void hexagon_tr_tb_start(DisasContextBase *db, CPUState *cpu) --=20 2.34.1 From nobody Sun Apr 26 08:13:17 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=1776998286; cv=none; d=zohomail.com; s=zohoarc; b=GzGsMG0mmMiOksGIMhmq016R9OvNcwzcvHdS4Tksfg/zPia4+bySi3cZMbxLaBKX4takhSQ5JANlbBPbbaJ3uZKFURnyxuZ6u6Mj8lki8PLYchhZHPcfaMl/ppPtKXCZkSr1GHEKWdjPlHFpeGSeCaPvlr3y0G9mHHE2qBklKik= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1776998286; 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=tzr1N7Gexfj7D6v7+Qi7SfMNfZkHAz+VeOHMKM30m3I=; b=jQlsEXUa/+ahS/cpqEpUKfdK6NMclclPoyNb8p6CgyIgEYgjhM7LB1BHLE4bQtF+90GrYDqbK6gNiJX1pW74SWuAGL5tW6vVPSw+wT2OWgXvHrG0caZK0hOZumSj+/01Vbmp65CvMwxhCWybJIzc3rapDiOYR7dj8yGQ4LyThCg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1776998286318967.3849543882981; Thu, 23 Apr 2026 19:38:06 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wG6PD-0006mP-87; Thu, 23 Apr 2026 22:36:35 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wG6P6-0006lH-Rj for qemu-devel@nongnu.org; Thu, 23 Apr 2026 22:36:29 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wG6P1-0008KS-LD for qemu-devel@nongnu.org; Thu, 23 Apr 2026 22:36:28 -0400 Received: from pps.filterd (m0279862.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 63O0C1EM1204917 for ; Fri, 24 Apr 2026 02:36:22 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 4dqggnbx53-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 24 Apr 2026 02:36:22 +0000 (GMT) Received: by mail-dy1-f200.google.com with SMTP id 5a478bee46e88-2c0f6593ef5so9070520eec.1 for ; Thu, 23 Apr 2026 19:36:22 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2e539fa6134sm31240868eec.3.2026.04.23.19.36.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 23 Apr 2026 19:36:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= tzr1N7Gexfj7D6v7+Qi7SfMNfZkHAz+VeOHMKM30m3I=; b=YvCX/q9LKgl4yYTF 6zanRNDjYpxQhLFY4Z6X8i7VRb1yWBu4qmkNnSAVNdo914QuMRiVc4R1Fw0dSnk8 b8aHM2xaLft9AEPwQlBCBt7f/WRjSyiDi4uT+6ZYe8xbl6VHSi5W/oQv05tIYQG1 hzBt45AvDA8EXtLcmgJPgqx3BorKufpY1kzh3gc1uZe6qQKN57yVHmUCOmSfEzNu /aV/tExDuu+iKFP77g0908kHsSY3sKrIrwLCdFZW0+Mnh1+UcPwtNydEjAIba6tg vueC4BdRjOQKdwto803+9RX3FMSuVrfOitB3zp2p45mnMFTdAHtf+Z7Zt6vqkKYL 1NhxnA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1776998181; x=1777602981; 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=tzr1N7Gexfj7D6v7+Qi7SfMNfZkHAz+VeOHMKM30m3I=; b=Mt+I7Z22pszcOrNZO3JOSTEuK0PL37VIjt7NfWMmycX1PnPFXRZHF73lL/mDtkzTCp V35WtnVQAj4u2PlsJ0qtMKGxauuQoyxUBnnvMPiL00tIiaa7pmiYhIFdvpQBUFQQh6vd wh5Yv9HHu46r0H2hz5I9SS/iJyCWRqSxR+SdMamcTB63JFP+/Nijps5i6swXJwDa4MHg 4TLkzYrsNCg4uGBpnLzMn+f539raFBZAQSUF1op3xEyMlxPzNEtzHpkI2o2xMEzlc6E0 1qcxiPl0x5+Q5t/nID2il2o0+/2MiqQq+DB2vQqd63P6cGdM5+cV7jz0LocA9NsK7cio vSdw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776998181; x=1777602981; 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=tzr1N7Gexfj7D6v7+Qi7SfMNfZkHAz+VeOHMKM30m3I=; b=BMxsbJUULRHq7sEQ6Y/TK+zCOt0xp0M/QZIZkbeIV/t2g30AQAAWRVLQjltHRNqGJm 0VvMdSG2To94pL6kihrNRT13tj3AaU8jri+H3CYu38LnHLJpkKC0kKmNcrMv0padduk1 TZvOhE9n3Y5ApMpSmiDs/nUtPPI8yVlY5TYSjENn/bH0E9aMrFpwyEW1pjW4mXyblnep FbC6hguyVAaO30RyvhLrRRYU6X4QkSZbW47kS2nPyOi2CHJPNn8if0+qDU2j2RycPRhb MxvUblMVpJ2B1QAN2tKjNdKVwVdr9ZCuz9+PuJ3hP/E8rzlGI/fB9CcO7yVl1VrwAbsc EZlw== X-Gm-Message-State: AOJu0YxETKSyIvQqBU7oS6tnjCFuTdXZa6p+Ul6CYo3Bf1/Zn/lvX/T6 m+tH8ErCnecT24NDNMoTIPV/imin91YPpMWQvETZkp1EqXa2+ti5AIJnoLbmRxiPGwrdP/I7rOX YgrypBRTBjbbfQOnUyuIrmUqz6rbygGKBhNNSt4pydvFgJJRsU6K4PJ4N1BGFG79Dpg== X-Gm-Gg: AeBDiesA+hvPC0+o4vaZm0YCraALsZRNjnP0tvbFvES2ibHuPpg/e5ERvuNy4PVmbFf 4fZqoQjQ7vR4kCDmIy4fcKWWDpQRYLLR//7HUgHCHhs0V9u4K8E+FUQwNODVAQW94xwStiXrRqO JidOfys4lcPTFv2KxBdgqjGMAzRz++1zzfc44W8iG1r3TXwwSPG+TkL3Zx3U4R0xB592S3oB0Kq rL9APeAK57YSTd4VtrlLnv/HK3lWW1MUC2R6uz+4S1tvRvX4zZ9I1yC2OUhCOTDej7MvMLV2dwb iTvLgS+HiAdBb2jMLoorayOpivGoSxPUC4DkUFRWKZkyEOzt/hBJOtmQ2oopg8jRGcSXliDbXl7 2GZeUWh82xaXOB9yrzOdBBLMNQgayCu2hOr9BG86SqWliGpkgSGVIfI4XU1g3NDquTZBSAl+jW0 GDmard X-Received: by 2002:a05:7300:4349:b0:2be:7fc2:fc38 with SMTP id 5a478bee46e88-2e466044e0fmr16348366eec.5.1776998180623; Thu, 23 Apr 2026 19:36:20 -0700 (PDT) X-Received: by 2002:a05:7300:4349:b0:2be:7fc2:fc38 with SMTP id 5a478bee46e88-2e466044e0fmr16348339eec.5.1776998179656; Thu, 23 Apr 2026 19:36:19 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Matheus Tavares Bernardino , Taylor Simpson , Anton Johansson , Pierrick Bouvier Subject: [PULL 4/9] Hexagon (target/hexagon) Introduce tag_rev_info.c.inc Date: Thu, 23 Apr 2026 19:36:01 -0700 Message-Id: <20260424023606.2556830-5-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260424023606.2556830-1-brian.cain@oss.qualcomm.com> References: <20260424023606.2556830-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: X21Wmfs4SBYQTh0iYDeALdXHC1aoH2TR X-Authority-Analysis: v=2.4 cv=YZeNIQRf c=1 sm=1 tr=0 ts=69ead726 cx=c_pps a=PfFC4Oe2JQzmKTvty2cRDw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_K5XuSEh1TEqbUxoQ0s3:22 a=EUspDBNiAAAA:8 a=pGLkceISAAAA:8 a=UzojDZTqFDypdp8zxo8A:9 a=QEXdDO2ut3YA:10 a=6Ab_bkdmUrQuMsNx7PHu:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDI0MDAyMCBTYWx0ZWRfX/bfWEkW1AVyJ Ud5/gVgFiN0jWi5yJxhAnFn/bTzTgOqajn3XQJa24Da1Sd6253qtGJk3wKbUW+QLgi8mN7HLKvJ QCVEltYvLqElKv1MpnDQxmUysRr6utn876ADLpLMkT2jK+uPJNEBZTYCIV/tc2Ia4xLhbi4lNjz Brtmuf1KW3ZXkNbuqI0uP7gJbM1hmk79/PHm8/7NjQ8QXb2dexZoZJA2e6Il6I5C+6YHz+0TGGW fFtq+9yPdOCMQLqxmPKq/N4vp9+b5/cCIRODd4xwWmRhxv0XmLlbdg1QANjzHP32PaSmR45t6L7 /AX3hGSPrwCGH0tEh9XAIYxoot7tSkGIVv1P+tnDZw7XL1nWL5J3Pc5EUh5qybjPE0gpqydm/67 XiZr8MkvlOJeVqjYSD3yhZuYR+61NFq1oEu4MeQJFak/IslyNF2dVu+ALiGQ1hwYlTEDkdGAHQY 60Un4y6/YgmgRO/ZE0A== X-Proofpoint-GUID: X21Wmfs4SBYQTh0iYDeALdXHC1aoH2TR X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-04-23_03,2026-04-21_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 adultscore=0 bulkscore=0 phishscore=0 suspectscore=0 malwarescore=0 impostorscore=0 priorityscore=1501 lowpriorityscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604200000 definitions=main-2604240020 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1776998288528158500 From: Matheus Tavares Bernardino Table that records which CPU revision introduced or removed for each opcode Co-authored-by: Brian Cain Co-authored-by: Taylor Simpson Signed-off-by: Taylor Simpson Reviewed-by: Anton Johansson Signed-off-by: Brian Cain --- target/hexagon/tag_rev_info.c.inc | 613 ++++++++++++++++++++++++++++++ 1 file changed, 613 insertions(+) create mode 100644 target/hexagon/tag_rev_info.c.inc diff --git a/target/hexagon/tag_rev_info.c.inc b/target/hexagon/tag_rev_inf= o.c.inc new file mode 100644 index 00000000000..11c90f86ad1 --- /dev/null +++ b/target/hexagon/tag_rev_info.c.inc @@ -0,0 +1,613 @@ +/* + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#ifndef HEXAGON_TAG_ARCH_TABLE_H +#define HEXAGON_TAG_ARCH_TABLE_H + +struct tag_rev_info { HexagonVersion introduced, removed; }; + +static const struct tag_rev_info tag_rev_info[XX_LAST_OPCODE] =3D { + [A5_ACS] =3D { .introduced =3D HEX_VER_V55, .removed =3D HEX_VER_NONE = }, + + [J2_jumpfpt] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_N= ONE }, + [J2_jumprfpt] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_= NONE }, + [J2_jumprtpt] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_= NONE }, + [J2_jumptpt] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_N= ONE }, + [S6_rol_i_p] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_N= ONE }, + [S6_rol_i_p_acc] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_V= ER_NONE }, + [S6_rol_i_p_and] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_V= ER_NONE }, + [S6_rol_i_p_nac] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_V= ER_NONE }, + [S6_rol_i_p_or] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VE= R_NONE }, + [S6_rol_i_p_xacc] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_= VER_NONE }, + [S6_rol_i_r] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_N= ONE }, + [S6_rol_i_r_acc] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_V= ER_NONE }, + [S6_rol_i_r_and] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_V= ER_NONE }, + [S6_rol_i_r_nac] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_V= ER_NONE }, + [S6_rol_i_r_or] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VE= R_NONE }, + [S6_rol_i_r_xacc] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_= VER_NONE }, + [V6_extractw] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_= NONE }, + [V6_lvsplatw] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_= NONE }, + [V6_pred_and] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_= NONE }, + [V6_pred_and_n] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VE= R_NONE }, + [V6_pred_not] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_= NONE }, + [V6_pred_or] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_N= ONE }, + [V6_pred_or_n] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER= _NONE }, + [V6_pred_scalar2] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_= VER_NONE }, + [V6_pred_xor] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_= NONE }, + [V6_vL32Ub_ai] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER= _NONE }, + [V6_vL32Ub_pi] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER= _NONE }, + [V6_vL32Ub_ppu] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VE= R_NONE }, + [V6_vL32b_ai] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_= NONE }, + [V6_vL32b_cur_ai] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_= VER_NONE }, + [V6_vL32b_cur_pi] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_= VER_NONE }, + [V6_vL32b_cur_ppu] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX= _VER_NONE }, + [V6_vL32b_nt_ai] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_V= ER_NONE }, + [V6_vL32b_nt_cur_ai] =3D { .introduced =3D HEX_VER_V60, .removed =3D H= EX_VER_NONE }, + [V6_vL32b_nt_cur_pi] =3D { .introduced =3D HEX_VER_V60, .removed =3D H= EX_VER_NONE }, + [V6_vL32b_nt_cur_ppu] =3D { .introduced =3D HEX_VER_V60, .removed =3D = HEX_VER_NONE }, + [V6_vL32b_nt_pi] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_V= ER_NONE }, + [V6_vL32b_nt_ppu] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_= VER_NONE }, + [V6_vL32b_nt_tmp_ai] =3D { .introduced =3D HEX_VER_V60, .removed =3D H= EX_VER_NONE }, + [V6_vL32b_nt_tmp_pi] =3D { .introduced =3D HEX_VER_V60, .removed =3D H= EX_VER_NONE }, + [V6_vL32b_nt_tmp_ppu] =3D { .introduced =3D HEX_VER_V60, .removed =3D = HEX_VER_NONE }, + [V6_vL32b_pi] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_= NONE }, + [V6_vL32b_ppu] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER= _NONE }, + [V6_vL32b_tmp_ai] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_= VER_NONE }, + [V6_vL32b_tmp_pi] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_= VER_NONE }, + [V6_vL32b_tmp_ppu] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX= _VER_NONE }, + [V6_vS32Ub_ai] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER= _NONE }, + [V6_vS32Ub_npred_ai] =3D { .introduced =3D HEX_VER_V60, .removed =3D H= EX_VER_NONE }, + [V6_vS32Ub_npred_pi] =3D { .introduced =3D HEX_VER_V60, .removed =3D H= EX_VER_NONE }, + [V6_vS32Ub_npred_ppu] =3D { .introduced =3D HEX_VER_V60, .removed =3D = HEX_VER_NONE }, + [V6_vS32Ub_pi] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER= _NONE }, + [V6_vS32Ub_ppu] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VE= R_NONE }, + [V6_vS32Ub_pred_ai] =3D { .introduced =3D HEX_VER_V60, .removed =3D HE= X_VER_NONE }, + [V6_vS32Ub_pred_pi] =3D { .introduced =3D HEX_VER_V60, .removed =3D HE= X_VER_NONE }, + [V6_vS32Ub_pred_ppu] =3D { .introduced =3D HEX_VER_V60, .removed =3D H= EX_VER_NONE }, + [V6_vS32b_ai] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_= NONE }, + [V6_vS32b_new_ai] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_= VER_NONE }, + [V6_vS32b_new_npred_ai] =3D { .introduced =3D HEX_VER_V60, .removed = =3D HEX_VER_NONE }, + [V6_vS32b_new_npred_pi] =3D { .introduced =3D HEX_VER_V60, .removed = =3D HEX_VER_NONE }, + [V6_vS32b_new_npred_ppu] =3D { .introduced =3D HEX_VER_V60, .removed = =3D HEX_VER_NONE }, + [V6_vS32b_new_pi] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_= VER_NONE }, + [V6_vS32b_new_ppu] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX= _VER_NONE }, + [V6_vS32b_new_pred_ai] =3D { .introduced =3D HEX_VER_V60, .removed =3D= HEX_VER_NONE }, + [V6_vS32b_new_pred_pi] =3D { .introduced =3D HEX_VER_V60, .removed =3D= HEX_VER_NONE }, + [V6_vS32b_new_pred_ppu] =3D { .introduced =3D HEX_VER_V60, .removed = =3D HEX_VER_NONE }, + [V6_vS32b_npred_ai] =3D { .introduced =3D HEX_VER_V60, .removed =3D HE= X_VER_NONE }, + [V6_vS32b_npred_pi] =3D { .introduced =3D HEX_VER_V60, .removed =3D HE= X_VER_NONE }, + [V6_vS32b_npred_ppu] =3D { .introduced =3D HEX_VER_V60, .removed =3D H= EX_VER_NONE }, + [V6_vS32b_nqpred_ai] =3D { .introduced =3D HEX_VER_V60, .removed =3D H= EX_VER_NONE }, + [V6_vS32b_nqpred_pi] =3D { .introduced =3D HEX_VER_V60, .removed =3D H= EX_VER_NONE }, + [V6_vS32b_nqpred_ppu] =3D { .introduced =3D HEX_VER_V60, .removed =3D = HEX_VER_NONE }, + [V6_vS32b_nt_ai] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_V= ER_NONE }, + [V6_vS32b_nt_new_ai] =3D { .introduced =3D HEX_VER_V60, .removed =3D H= EX_VER_NONE }, + [V6_vS32b_nt_new_npred_ai] =3D { .introduced =3D HEX_VER_V60, .removed= =3D HEX_VER_NONE }, + [V6_vS32b_nt_new_npred_pi] =3D { .introduced =3D HEX_VER_V60, .removed= =3D HEX_VER_NONE }, + [V6_vS32b_nt_new_npred_ppu] =3D { .introduced =3D HEX_VER_V60, .remove= d =3D HEX_VER_NONE }, + [V6_vS32b_nt_new_pi] =3D { .introduced =3D HEX_VER_V60, .removed =3D H= EX_VER_NONE }, + [V6_vS32b_nt_new_ppu] =3D { .introduced =3D HEX_VER_V60, .removed =3D = HEX_VER_NONE }, + [V6_vS32b_nt_new_pred_ai] =3D { .introduced =3D HEX_VER_V60, .removed = =3D HEX_VER_NONE }, + [V6_vS32b_nt_new_pred_pi] =3D { .introduced =3D HEX_VER_V60, .removed = =3D HEX_VER_NONE }, + [V6_vS32b_nt_new_pred_ppu] =3D { .introduced =3D HEX_VER_V60, .removed= =3D HEX_VER_NONE }, + [V6_vS32b_nt_npred_ai] =3D { .introduced =3D HEX_VER_V60, .removed =3D= HEX_VER_NONE }, + [V6_vS32b_nt_npred_pi] =3D { .introduced =3D HEX_VER_V60, .removed =3D= HEX_VER_NONE }, + [V6_vS32b_nt_npred_ppu] =3D { .introduced =3D HEX_VER_V60, .removed = =3D HEX_VER_NONE }, + [V6_vS32b_nt_nqpred_ai] =3D { .introduced =3D HEX_VER_V60, .removed = =3D HEX_VER_NONE }, + [V6_vS32b_nt_nqpred_pi] =3D { .introduced =3D HEX_VER_V60, .removed = =3D HEX_VER_NONE }, + [V6_vS32b_nt_nqpred_ppu] =3D { .introduced =3D HEX_VER_V60, .removed = =3D HEX_VER_NONE }, + [V6_vS32b_nt_pi] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_V= ER_NONE }, + [V6_vS32b_nt_ppu] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_= VER_NONE }, + [V6_vS32b_nt_pred_ai] =3D { .introduced =3D HEX_VER_V60, .removed =3D = HEX_VER_NONE }, + [V6_vS32b_nt_pred_pi] =3D { .introduced =3D HEX_VER_V60, .removed =3D = HEX_VER_NONE }, + [V6_vS32b_nt_pred_ppu] =3D { .introduced =3D HEX_VER_V60, .removed =3D= HEX_VER_NONE }, + [V6_vS32b_nt_qpred_ai] =3D { .introduced =3D HEX_VER_V60, .removed =3D= HEX_VER_NONE }, + [V6_vS32b_nt_qpred_pi] =3D { .introduced =3D HEX_VER_V60, .removed =3D= HEX_VER_NONE }, + [V6_vS32b_nt_qpred_ppu] =3D { .introduced =3D HEX_VER_V60, .removed = =3D HEX_VER_NONE }, + [V6_vS32b_pi] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_= NONE }, + [V6_vS32b_ppu] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER= _NONE }, + [V6_vS32b_pred_ai] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX= _VER_NONE }, + [V6_vS32b_pred_pi] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX= _VER_NONE }, + [V6_vS32b_pred_ppu] =3D { .introduced =3D HEX_VER_V60, .removed =3D HE= X_VER_NONE }, + [V6_vS32b_qpred_ai] =3D { .introduced =3D HEX_VER_V60, .removed =3D HE= X_VER_NONE }, + [V6_vS32b_qpred_pi] =3D { .introduced =3D HEX_VER_V60, .removed =3D HE= X_VER_NONE }, + [V6_vS32b_qpred_ppu] =3D { .introduced =3D HEX_VER_V60, .removed =3D H= EX_VER_NONE }, + [V6_vabsdiffh] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER= _NONE }, + [V6_vabsdiffub] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VE= R_NONE }, + [V6_vabsdiffuh] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VE= R_NONE }, + [V6_vabsdiffw] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER= _NONE }, + [V6_vabsh] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_NON= E }, + [V6_vabsh_sat] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER= _NONE }, + [V6_vabsw] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_NON= E }, + [V6_vabsw_sat] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER= _NONE }, + [V6_vaddb] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_NON= E }, + [V6_vaddb_dv] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_= NONE }, + [V6_vaddbnq] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_N= ONE }, + [V6_vaddbq] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_NO= NE }, + [V6_vaddh] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_NON= E }, + [V6_vaddh_dv] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_= NONE }, + [V6_vaddhnq] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_N= ONE }, + [V6_vaddhq] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_NO= NE }, + [V6_vaddhsat] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_= NONE }, + [V6_vaddhsat_dv] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_V= ER_NONE }, + [V6_vaddhw] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_NO= NE }, + [V6_vaddubh] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_N= ONE }, + [V6_vaddubsat] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER= _NONE }, + [V6_vaddubsat_dv] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_= VER_NONE }, + [V6_vadduhsat] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER= _NONE }, + [V6_vadduhsat_dv] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_= VER_NONE }, + [V6_vadduhw] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_N= ONE }, + [V6_vaddw] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_NON= E }, + [V6_vaddw_dv] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_= NONE }, + [V6_vaddwnq] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_N= ONE }, + [V6_vaddwq] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_NO= NE }, + [V6_vaddwsat] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_= NONE }, + [V6_vaddwsat_dv] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_V= ER_NONE }, + [V6_valignb] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_N= ONE }, + [V6_valignbi] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_= NONE }, + [V6_vand] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_NONE= }, + [V6_vandqrt] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_N= ONE }, + [V6_vandqrt_acc] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_V= ER_NONE }, + [V6_vandvrt] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_N= ONE }, + [V6_vandvrt_acc] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_V= ER_NONE }, + [V6_vaslh] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_NON= E }, + [V6_vaslhv] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_NO= NE }, + [V6_vaslw] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_NON= E }, + [V6_vaslw_acc] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER= _NONE }, + [V6_vaslwv] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_NO= NE }, + [V6_vasrh] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_NON= E }, + [V6_vasrhbrndsat] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_= VER_NONE }, + [V6_vasrhubrndsat] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX= _VER_NONE }, + [V6_vasrhubsat] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VE= R_NONE }, + [V6_vasrhv] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_NO= NE }, + [V6_vasrw] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_NON= E }, + [V6_vasrw_acc] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER= _NONE }, + [V6_vasrwh] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_NO= NE }, + [V6_vasrwhrndsat] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_= VER_NONE }, + [V6_vasrwhsat] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER= _NONE }, + [V6_vasrwuhsat] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VE= R_NONE }, + [V6_vasrwv] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_NO= NE }, + [V6_vassign] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_N= ONE }, + [V6_vavgh] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_NON= E }, + [V6_vavghrnd] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_= NONE }, + [V6_vavgub] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_NO= NE }, + [V6_vavgubrnd] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER= _NONE }, + [V6_vavguh] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_NO= NE }, + [V6_vavguhrnd] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER= _NONE }, + [V6_vavgw] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_NON= E }, + [V6_vavgwrnd] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_= NONE }, + [V6_vccombine] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER= _NONE }, + [V6_vcl0h] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_NON= E }, + [V6_vcl0w] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_NON= E }, + [V6_vcmov] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_NON= E }, + [V6_vcombine] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_= NONE }, + [V6_vdeal] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_NON= E }, + [V6_vdealb] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_NO= NE }, + [V6_vdealb4w] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_= NONE }, + [V6_vdealh] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_NO= NE }, + [V6_vdealvdd] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_= NONE }, + [V6_vdelta] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_NO= NE }, + [V6_vdmpybus] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_= NONE }, + [V6_vdmpybus_acc] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_= VER_NONE }, + [V6_vdmpybus_dv] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_V= ER_NONE }, + [V6_vdmpybus_dv_acc] =3D { .introduced =3D HEX_VER_V60, .removed =3D H= EX_VER_NONE }, + [V6_vdmpyhb] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_N= ONE }, + [V6_vdmpyhb_acc] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_V= ER_NONE }, + [V6_vdmpyhb_dv] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VE= R_NONE }, + [V6_vdmpyhb_dv_acc] =3D { .introduced =3D HEX_VER_V60, .removed =3D HE= X_VER_NONE }, + [V6_vdmpyhisat] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VE= R_NONE }, + [V6_vdmpyhisat_acc] =3D { .introduced =3D HEX_VER_V60, .removed =3D HE= X_VER_NONE }, + [V6_vdmpyhsat] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER= _NONE }, + [V6_vdmpyhsat_acc] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX= _VER_NONE }, + [V6_vdmpyhsuisat] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_= VER_NONE }, + [V6_vdmpyhsuisat_acc] =3D { .introduced =3D HEX_VER_V60, .removed =3D = HEX_VER_NONE }, + [V6_vdmpyhsusat] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_V= ER_NONE }, + [V6_vdmpyhsusat_acc] =3D { .introduced =3D HEX_VER_V60, .removed =3D H= EX_VER_NONE }, + [V6_vdmpyhvsat] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VE= R_NONE }, + [V6_vdmpyhvsat_acc] =3D { .introduced =3D HEX_VER_V60, .removed =3D HE= X_VER_NONE }, + [V6_vdsaduh] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_N= ONE }, + [V6_vdsaduh_acc] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_V= ER_NONE }, + [V6_veqb] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_NONE= }, + [V6_veqb_and] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_= NONE }, + [V6_veqb_or] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_N= ONE }, + [V6_veqb_xor] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_= NONE }, + [V6_veqh] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_NONE= }, + [V6_veqh_and] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_= NONE }, + [V6_veqh_or] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_N= ONE }, + [V6_veqh_xor] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_= NONE }, + [V6_veqw] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_NONE= }, + [V6_veqw_and] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_= NONE }, + [V6_veqw_or] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_N= ONE }, + [V6_veqw_xor] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_= NONE }, + [V6_vgtb] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_NONE= }, + [V6_vgtb_and] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_= NONE }, + [V6_vgtb_or] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_N= ONE }, + [V6_vgtb_xor] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_= NONE }, + [V6_vgth] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_NONE= }, + [V6_vgth_and] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_= NONE }, + [V6_vgth_or] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_N= ONE }, + [V6_vgth_xor] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_= NONE }, + [V6_vgtub] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_NON= E }, + [V6_vgtub_and] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER= _NONE }, + [V6_vgtub_or] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_= NONE }, + [V6_vgtub_xor] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER= _NONE }, + [V6_vgtuh] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_NON= E }, + [V6_vgtuh_and] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER= _NONE }, + [V6_vgtuh_or] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_= NONE }, + [V6_vgtuh_xor] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER= _NONE }, + [V6_vgtuw] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_NON= E }, + [V6_vgtuw_and] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER= _NONE }, + [V6_vgtuw_or] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_= NONE }, + [V6_vgtuw_xor] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER= _NONE }, + [V6_vgtw] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_NONE= }, + [V6_vgtw_and] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_= NONE }, + [V6_vgtw_or] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_N= ONE }, + [V6_vgtw_xor] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_= NONE }, + [V6_vhist] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_NON= E }, + [V6_vhistq] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_NO= NE }, + [V6_vinsertwr] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER= _NONE }, + [V6_vlalignb] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_= NONE }, + [V6_vlalignbi] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER= _NONE }, + [V6_vlsrh] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_NON= E }, + [V6_vlsrhv] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_NO= NE }, + [V6_vlsrw] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_NON= E }, + [V6_vlsrwv] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_NO= NE }, + [V6_vlutvvb] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_N= ONE }, + [V6_vlutvvb_oracc] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX= _VER_NONE }, + [V6_vlutvwh] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_N= ONE }, + [V6_vlutvwh_oracc] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX= _VER_NONE }, + [V6_vmaxh] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_NON= E }, + [V6_vmaxub] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_NO= NE }, + [V6_vmaxuh] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_NO= NE }, + [V6_vmaxw] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_NON= E }, + [V6_vminh] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_NON= E }, + [V6_vminub] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_NO= NE }, + [V6_vminuh] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_NO= NE }, + [V6_vminw] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_NON= E }, + [V6_vmpabus] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_N= ONE }, + [V6_vmpabus_acc] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_V= ER_NONE }, + [V6_vmpabusv] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_= NONE }, + [V6_vmpabuuv] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_= NONE }, + [V6_vmpahb] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_NO= NE }, + [V6_vmpahb_acc] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VE= R_NONE }, + [V6_vmpybus] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_N= ONE }, + [V6_vmpybus_acc] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_V= ER_NONE }, + [V6_vmpybusv] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_= NONE }, + [V6_vmpybusv_acc] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_= VER_NONE }, + [V6_vmpybv] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_NO= NE }, + [V6_vmpybv_acc] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VE= R_NONE }, + [V6_vmpyewuh] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_= NONE }, + [V6_vmpyh] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_NON= E }, + [V6_vmpyhsat_acc] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_= VER_NONE }, + [V6_vmpyhsrs] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_= NONE }, + [V6_vmpyhss] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_N= ONE }, + [V6_vmpyhus] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_N= ONE }, + [V6_vmpyhus_acc] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_V= ER_NONE }, + [V6_vmpyhv] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_NO= NE }, + [V6_vmpyhv_acc] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VE= R_NONE }, + [V6_vmpyhvsrs] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER= _NONE }, + [V6_vmpyieoh] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_= NONE }, + [V6_vmpyiewh_acc] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_= VER_NONE }, + [V6_vmpyiewuh] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER= _NONE }, + [V6_vmpyiewuh_acc] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX= _VER_NONE }, + [V6_vmpyih] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_NO= NE }, + [V6_vmpyih_acc] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VE= R_NONE }, + [V6_vmpyihb] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_N= ONE }, + [V6_vmpyihb_acc] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_V= ER_NONE }, + [V6_vmpyiowh] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_= NONE }, + [V6_vmpyiwb] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_N= ONE }, + [V6_vmpyiwb_acc] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_V= ER_NONE }, + [V6_vmpyiwh] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_N= ONE }, + [V6_vmpyiwh_acc] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_V= ER_NONE }, + [V6_vmpyowh] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_N= ONE }, + [V6_vmpyowh_rnd] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_V= ER_NONE }, + [V6_vmpyowh_rnd_sacc] =3D { .introduced =3D HEX_VER_V60, .removed =3D = HEX_VER_NONE }, + [V6_vmpyowh_sacc] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_= VER_NONE }, + [V6_vmpyub] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_NO= NE }, + [V6_vmpyub_acc] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VE= R_NONE }, + [V6_vmpyubv] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_N= ONE }, + [V6_vmpyubv_acc] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_V= ER_NONE }, + [V6_vmpyuh] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_NO= NE }, + [V6_vmpyuh_acc] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VE= R_NONE }, + [V6_vmpyuhv] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_N= ONE }, + [V6_vmpyuhv_acc] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_V= ER_NONE }, + [V6_vmux] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_NONE= }, + [V6_vnavgh] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_NO= NE }, + [V6_vnavgub] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_N= ONE }, + [V6_vnavgw] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_NO= NE }, + [V6_vnccombine] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VE= R_NONE }, + [V6_vncmov] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_NO= NE }, + [V6_vnormamth] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER= _NONE }, + [V6_vnormamtw] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER= _NONE }, + [V6_vnot] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_NONE= }, + [V6_vor] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_NONE = }, + [V6_vpackeb] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_N= ONE }, + [V6_vpackeh] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_N= ONE }, + [V6_vpackhb_sat] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_V= ER_NONE }, + [V6_vpackhub_sat] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_= VER_NONE }, + [V6_vpackob] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_N= ONE }, + [V6_vpackoh] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_N= ONE }, + [V6_vpackwh_sat] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_V= ER_NONE }, + [V6_vpackwuh_sat] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_= VER_NONE }, + [V6_vpopcounth] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VE= R_NONE }, + [V6_vrdelta] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_N= ONE }, + [V6_vrmpybus] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_= NONE }, + [V6_vrmpybus_acc] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_= VER_NONE }, + [V6_vrmpybusi] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER= _NONE }, + [V6_vrmpybusi_acc] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX= _VER_NONE }, + [V6_vrmpybusv] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER= _NONE }, + [V6_vrmpybusv_acc] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX= _VER_NONE }, + [V6_vrmpybv] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_N= ONE }, + [V6_vrmpybv_acc] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_V= ER_NONE }, + [V6_vrmpyub] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_N= ONE }, + [V6_vrmpyub_acc] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_V= ER_NONE }, + [V6_vrmpyubi] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_= NONE }, + [V6_vrmpyubi_acc] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_= VER_NONE }, + [V6_vrmpyubv] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_= NONE }, + [V6_vrmpyubv_acc] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_= VER_NONE }, + [V6_vror] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_NONE= }, + [V6_vroundhb] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_= NONE }, + [V6_vroundhub] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER= _NONE }, + [V6_vroundwh] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_= NONE }, + [V6_vroundwuh] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER= _NONE }, + [V6_vrsadubi] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_= NONE }, + [V6_vrsadubi_acc] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_= VER_NONE }, + [V6_vsathub] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_N= ONE }, + [V6_vsatwh] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_NO= NE }, + [V6_vsb] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_NONE = }, + [V6_vsh] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_NONE = }, + [V6_vshufeh] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_N= ONE }, + [V6_vshuff] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_NO= NE }, + [V6_vshuffb] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_N= ONE }, + [V6_vshuffeb] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_= NONE }, + [V6_vshuffh] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_N= ONE }, + [V6_vshuffob] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_= NONE }, + [V6_vshuffvdd] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER= _NONE }, + [V6_vshufoeb] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_= NONE }, + [V6_vshufoeh] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_= NONE }, + [V6_vshufoh] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_N= ONE }, + [V6_vsubb] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_NON= E }, + [V6_vsubb_dv] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_= NONE }, + [V6_vsubbnq] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_N= ONE }, + [V6_vsubbq] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_NO= NE }, + [V6_vsubh] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_NON= E }, + [V6_vsubh_dv] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_= NONE }, + [V6_vsubhnq] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_N= ONE }, + [V6_vsubhq] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_NO= NE }, + [V6_vsubhsat] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_= NONE }, + [V6_vsubhsat_dv] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_V= ER_NONE }, + [V6_vsubhw] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_NO= NE }, + [V6_vsububh] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_N= ONE }, + [V6_vsububsat] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER= _NONE }, + [V6_vsububsat_dv] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_= VER_NONE }, + [V6_vsubuhsat] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER= _NONE }, + [V6_vsubuhsat_dv] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_= VER_NONE }, + [V6_vsubuhw] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_N= ONE }, + [V6_vsubw] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_NON= E }, + [V6_vsubw_dv] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_= NONE }, + [V6_vsubwnq] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_N= ONE }, + [V6_vsubwq] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_NO= NE }, + [V6_vsubwsat] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_= NONE }, + [V6_vsubwsat_dv] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_V= ER_NONE }, + [V6_vswap] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_NON= E }, + [V6_vtmpyb] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_NO= NE }, + [V6_vtmpyb_acc] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VE= R_NONE }, + [V6_vtmpybus] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_= NONE }, + [V6_vtmpybus_acc] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_= VER_NONE }, + [V6_vtmpyhb] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_N= ONE }, + [V6_vtmpyhb_acc] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_V= ER_NONE }, + [V6_vunpackb] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_= NONE }, + [V6_vunpackh] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_= NONE }, + [V6_vunpackob] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER= _NONE }, + [V6_vunpackoh] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER= _NONE }, + [V6_vunpackub] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER= _NONE }, + [V6_vunpackuh] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER= _NONE }, + [V6_vxor] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_NONE= }, + [V6_vzb] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_NONE = }, + [V6_vzh] =3D { .introduced =3D HEX_VER_V60, .removed =3D HEX_VER_NONE = }, + + [A6_vminub_RdP] =3D { .introduced =3D HEX_VER_V62, .removed =3D HEX_VE= R_NONE }, + [M6_vabsdiffb] =3D { .introduced =3D HEX_VER_V62, .removed =3D HEX_VER= _NONE }, + [M6_vabsdiffub] =3D { .introduced =3D HEX_VER_V62, .removed =3D HEX_VE= R_NONE }, + [S6_vsplatrbp] =3D { .introduced =3D HEX_VER_V62, .removed =3D HEX_VER= _NONE }, + [S6_vtrunehb_ppp] =3D { .introduced =3D HEX_VER_V62, .removed =3D HEX_= VER_NONE }, + [S6_vtrunohb_ppp] =3D { .introduced =3D HEX_VER_V62, .removed =3D HEX_= VER_NONE }, + [V6_lvsplatb] =3D { .introduced =3D HEX_VER_V62, .removed =3D HEX_VER_= NONE }, + [V6_lvsplath] =3D { .introduced =3D HEX_VER_V62, .removed =3D HEX_VER_= NONE }, + [V6_pred_scalar2v2] =3D { .introduced =3D HEX_VER_V62, .removed =3D HE= X_VER_NONE }, + [V6_shuffeqh] =3D { .introduced =3D HEX_VER_V62, .removed =3D HEX_VER_= NONE }, + [V6_shuffeqw] =3D { .introduced =3D HEX_VER_V62, .removed =3D HEX_VER_= NONE }, + [V6_vL32b_cur_npred_ai] =3D { .introduced =3D HEX_VER_V62, .removed = =3D HEX_VER_NONE }, + [V6_vL32b_cur_npred_pi] =3D { .introduced =3D HEX_VER_V62, .removed = =3D HEX_VER_NONE }, + [V6_vL32b_cur_npred_ppu] =3D { .introduced =3D HEX_VER_V62, .removed = =3D HEX_VER_NONE }, + [V6_vL32b_cur_pred_ai] =3D { .introduced =3D HEX_VER_V62, .removed =3D= HEX_VER_NONE }, + [V6_vL32b_cur_pred_pi] =3D { .introduced =3D HEX_VER_V62, .removed =3D= HEX_VER_NONE }, + [V6_vL32b_cur_pred_ppu] =3D { .introduced =3D HEX_VER_V62, .removed = =3D HEX_VER_NONE }, + [V6_vL32b_npred_ai] =3D { .introduced =3D HEX_VER_V62, .removed =3D HE= X_VER_NONE }, + [V6_vL32b_npred_pi] =3D { .introduced =3D HEX_VER_V62, .removed =3D HE= X_VER_NONE }, + [V6_vL32b_npred_ppu] =3D { .introduced =3D HEX_VER_V62, .removed =3D H= EX_VER_NONE }, + [V6_vL32b_nt_cur_npred_ai] =3D { .introduced =3D HEX_VER_V62, .removed= =3D HEX_VER_NONE }, + [V6_vL32b_nt_cur_npred_pi] =3D { .introduced =3D HEX_VER_V62, .removed= =3D HEX_VER_NONE }, + [V6_vL32b_nt_cur_npred_ppu] =3D { .introduced =3D HEX_VER_V62, .remove= d =3D HEX_VER_NONE }, + [V6_vL32b_nt_cur_pred_ai] =3D { .introduced =3D HEX_VER_V62, .removed = =3D HEX_VER_NONE }, + [V6_vL32b_nt_cur_pred_pi] =3D { .introduced =3D HEX_VER_V62, .removed = =3D HEX_VER_NONE }, + [V6_vL32b_nt_cur_pred_ppu] =3D { .introduced =3D HEX_VER_V62, .removed= =3D HEX_VER_NONE }, + [V6_vL32b_nt_npred_ai] =3D { .introduced =3D HEX_VER_V62, .removed =3D= HEX_VER_NONE }, + [V6_vL32b_nt_npred_pi] =3D { .introduced =3D HEX_VER_V62, .removed =3D= HEX_VER_NONE }, + [V6_vL32b_nt_npred_ppu] =3D { .introduced =3D HEX_VER_V62, .removed = =3D HEX_VER_NONE }, + [V6_vL32b_nt_pred_ai] =3D { .introduced =3D HEX_VER_V62, .removed =3D = HEX_VER_NONE }, + [V6_vL32b_nt_pred_pi] =3D { .introduced =3D HEX_VER_V62, .removed =3D = HEX_VER_NONE }, + [V6_vL32b_nt_pred_ppu] =3D { .introduced =3D HEX_VER_V62, .removed =3D= HEX_VER_NONE }, + [V6_vL32b_nt_tmp_npred_ai] =3D { .introduced =3D HEX_VER_V62, .removed= =3D HEX_VER_NONE }, + [V6_vL32b_nt_tmp_npred_pi] =3D { .introduced =3D HEX_VER_V62, .removed= =3D HEX_VER_NONE }, + [V6_vL32b_nt_tmp_npred_ppu] =3D { .introduced =3D HEX_VER_V62, .remove= d =3D HEX_VER_NONE }, + [V6_vL32b_nt_tmp_pred_ai] =3D { .introduced =3D HEX_VER_V62, .removed = =3D HEX_VER_NONE }, + [V6_vL32b_nt_tmp_pred_pi] =3D { .introduced =3D HEX_VER_V62, .removed = =3D HEX_VER_NONE }, + [V6_vL32b_nt_tmp_pred_ppu] =3D { .introduced =3D HEX_VER_V62, .removed= =3D HEX_VER_NONE }, + [V6_vL32b_pred_ai] =3D { .introduced =3D HEX_VER_V62, .removed =3D HEX= _VER_NONE }, + [V6_vL32b_pred_pi] =3D { .introduced =3D HEX_VER_V62, .removed =3D HEX= _VER_NONE }, + [V6_vL32b_pred_ppu] =3D { .introduced =3D HEX_VER_V62, .removed =3D HE= X_VER_NONE }, + [V6_vL32b_tmp_npred_ai] =3D { .introduced =3D HEX_VER_V62, .removed = =3D HEX_VER_NONE }, + [V6_vL32b_tmp_npred_pi] =3D { .introduced =3D HEX_VER_V62, .removed = =3D HEX_VER_NONE }, + [V6_vL32b_tmp_npred_ppu] =3D { .introduced =3D HEX_VER_V62, .removed = =3D HEX_VER_NONE }, + [V6_vL32b_tmp_pred_ai] =3D { .introduced =3D HEX_VER_V62, .removed =3D= HEX_VER_NONE }, + [V6_vL32b_tmp_pred_pi] =3D { .introduced =3D HEX_VER_V62, .removed =3D= HEX_VER_NONE }, + [V6_vL32b_tmp_pred_ppu] =3D { .introduced =3D HEX_VER_V62, .removed = =3D HEX_VER_NONE }, + [V6_vaddbsat] =3D { .introduced =3D HEX_VER_V62, .removed =3D HEX_VER_= NONE }, + [V6_vaddbsat_dv] =3D { .introduced =3D HEX_VER_V62, .removed =3D HEX_V= ER_NONE }, + [V6_vaddcarry] =3D { .introduced =3D HEX_VER_V62, .removed =3D HEX_VER= _NONE }, + [V6_vaddclbh] =3D { .introduced =3D HEX_VER_V62, .removed =3D HEX_VER_= NONE }, + [V6_vaddclbw] =3D { .introduced =3D HEX_VER_V62, .removed =3D HEX_VER_= NONE }, + [V6_vaddhw_acc] =3D { .introduced =3D HEX_VER_V62, .removed =3D HEX_VE= R_NONE }, + [V6_vaddubh_acc] =3D { .introduced =3D HEX_VER_V62, .removed =3D HEX_V= ER_NONE }, + [V6_vaddububb_sat] =3D { .introduced =3D HEX_VER_V62, .removed =3D HEX= _VER_NONE }, + [V6_vadduhw_acc] =3D { .introduced =3D HEX_VER_V62, .removed =3D HEX_V= ER_NONE }, + [V6_vadduwsat] =3D { .introduced =3D HEX_VER_V62, .removed =3D HEX_VER= _NONE }, + [V6_vadduwsat_dv] =3D { .introduced =3D HEX_VER_V62, .removed =3D HEX_= VER_NONE }, + [V6_vandnqrt] =3D { .introduced =3D HEX_VER_V62, .removed =3D HEX_VER_= NONE }, + [V6_vandnqrt_acc] =3D { .introduced =3D HEX_VER_V62, .removed =3D HEX_= VER_NONE }, + [V6_vandvnqv] =3D { .introduced =3D HEX_VER_V62, .removed =3D HEX_VER_= NONE }, + [V6_vandvqv] =3D { .introduced =3D HEX_VER_V62, .removed =3D HEX_VER_N= ONE }, + [V6_vasrhbsat] =3D { .introduced =3D HEX_VER_V62, .removed =3D HEX_VER= _NONE }, + [V6_vasruwuhrndsat] =3D { .introduced =3D HEX_VER_V62, .removed =3D HE= X_VER_NONE }, + [V6_vasrwuhrndsat] =3D { .introduced =3D HEX_VER_V62, .removed =3D HEX= _VER_NONE }, + [V6_vlsrb] =3D { .introduced =3D HEX_VER_V62, .removed =3D HEX_VER_NON= E }, + [V6_vlutvvb_nm] =3D { .introduced =3D HEX_VER_V62, .removed =3D HEX_VE= R_NONE }, + [V6_vlutvvb_oracci] =3D { .introduced =3D HEX_VER_V62, .removed =3D HE= X_VER_NONE }, + [V6_vlutvvbi] =3D { .introduced =3D HEX_VER_V62, .removed =3D HEX_VER_= NONE }, + [V6_vlutvwh_nm] =3D { .introduced =3D HEX_VER_V62, .removed =3D HEX_VE= R_NONE }, + [V6_vlutvwh_oracci] =3D { .introduced =3D HEX_VER_V62, .removed =3D HE= X_VER_NONE }, + [V6_vlutvwhi] =3D { .introduced =3D HEX_VER_V62, .removed =3D HEX_VER_= NONE }, + [V6_vmaxb] =3D { .introduced =3D HEX_VER_V62, .removed =3D HEX_VER_NON= E }, + [V6_vminb] =3D { .introduced =3D HEX_VER_V62, .removed =3D HEX_VER_NON= E }, + [V6_vmpauhb] =3D { .introduced =3D HEX_VER_V62, .removed =3D HEX_VER_N= ONE }, + [V6_vmpauhb_acc] =3D { .introduced =3D HEX_VER_V62, .removed =3D HEX_V= ER_NONE }, + [V6_vmpyewuh_64] =3D { .introduced =3D HEX_VER_V62, .removed =3D HEX_V= ER_NONE }, + [V6_vmpyiwub] =3D { .introduced =3D HEX_VER_V62, .removed =3D HEX_VER_= NONE }, + [V6_vmpyiwub_acc] =3D { .introduced =3D HEX_VER_V62, .removed =3D HEX_= VER_NONE }, + [V6_vmpyowh_64_acc] =3D { .introduced =3D HEX_VER_V62, .removed =3D HE= X_VER_NONE }, + [V6_vrounduhub] =3D { .introduced =3D HEX_VER_V62, .removed =3D HEX_VE= R_NONE }, + [V6_vrounduwuh] =3D { .introduced =3D HEX_VER_V62, .removed =3D HEX_VE= R_NONE }, + [V6_vsatuwuh] =3D { .introduced =3D HEX_VER_V62, .removed =3D HEX_VER_= NONE }, + [V6_vsubbsat] =3D { .introduced =3D HEX_VER_V62, .removed =3D HEX_VER_= NONE }, + [V6_vsubbsat_dv] =3D { .introduced =3D HEX_VER_V62, .removed =3D HEX_V= ER_NONE }, + [V6_vsubcarry] =3D { .introduced =3D HEX_VER_V62, .removed =3D HEX_VER= _NONE }, + [V6_vsubububb_sat] =3D { .introduced =3D HEX_VER_V62, .removed =3D HEX= _VER_NONE }, + [V6_vsubuwsat] =3D { .introduced =3D HEX_VER_V62, .removed =3D HEX_VER= _NONE }, + [V6_vsubuwsat_dv] =3D { .introduced =3D HEX_VER_V62, .removed =3D HEX_= VER_NONE }, + [V6_vwhist128] =3D { .introduced =3D HEX_VER_V62, .removed =3D HEX_VER= _NONE }, + [V6_vwhist128m] =3D { .introduced =3D HEX_VER_V62, .removed =3D HEX_VE= R_NONE }, + [V6_vwhist128q] =3D { .introduced =3D HEX_VER_V62, .removed =3D HEX_VE= R_NONE }, + [V6_vwhist128qm] =3D { .introduced =3D HEX_VER_V62, .removed =3D HEX_V= ER_NONE }, + [V6_vwhist256] =3D { .introduced =3D HEX_VER_V62, .removed =3D HEX_VER= _NONE }, + [V6_vwhist256_sat] =3D { .introduced =3D HEX_VER_V62, .removed =3D HEX= _VER_NONE }, + [V6_vwhist256q] =3D { .introduced =3D HEX_VER_V62, .removed =3D HEX_VE= R_NONE }, + [V6_vwhist256q_sat] =3D { .introduced =3D HEX_VER_V62, .removed =3D HE= X_VER_NONE }, + + [A6_vcmpbeq_notany] =3D { .introduced =3D HEX_VER_V65, .removed =3D HE= X_VER_NONE }, + [V6_vS32b_srls_ai] =3D { .introduced =3D HEX_VER_V65, .removed =3D HEX= _VER_NONE }, + [V6_vS32b_srls_pi] =3D { .introduced =3D HEX_VER_V65, .removed =3D HEX= _VER_NONE }, + [V6_vS32b_srls_ppu] =3D { .introduced =3D HEX_VER_V65, .removed =3D HE= X_VER_NONE }, + [V6_vabsb] =3D { .introduced =3D HEX_VER_V65, .removed =3D HEX_VER_NON= E }, + [V6_vabsb_sat] =3D { .introduced =3D HEX_VER_V65, .removed =3D HEX_VER= _NONE }, + [V6_vaslh_acc] =3D { .introduced =3D HEX_VER_V65, .removed =3D HEX_VER= _NONE }, + [V6_vasrh_acc] =3D { .introduced =3D HEX_VER_V65, .removed =3D HEX_VER= _NONE }, + [V6_vasruhubrndsat] =3D { .introduced =3D HEX_VER_V65, .removed =3D HE= X_VER_NONE }, + [V6_vasruhubsat] =3D { .introduced =3D HEX_VER_V65, .removed =3D HEX_V= ER_NONE }, + [V6_vasruwuhsat] =3D { .introduced =3D HEX_VER_V65, .removed =3D HEX_V= ER_NONE }, + [V6_vavgb] =3D { .introduced =3D HEX_VER_V65, .removed =3D HEX_VER_NON= E }, + [V6_vavgbrnd] =3D { .introduced =3D HEX_VER_V65, .removed =3D HEX_VER_= NONE }, + [V6_vavguw] =3D { .introduced =3D HEX_VER_V65, .removed =3D HEX_VER_NO= NE }, + [V6_vavguwrnd] =3D { .introduced =3D HEX_VER_V65, .removed =3D HEX_VER= _NONE }, + [V6_vgathermh] =3D { .introduced =3D HEX_VER_V65, .removed =3D HEX_VER= _NONE }, + [V6_vgathermhq] =3D { .introduced =3D HEX_VER_V65, .removed =3D HEX_VE= R_NONE }, + [V6_vgathermhw] =3D { .introduced =3D HEX_VER_V65, .removed =3D HEX_VE= R_NONE }, + [V6_vgathermhwq] =3D { .introduced =3D HEX_VER_V65, .removed =3D HEX_V= ER_NONE }, + [V6_vgathermw] =3D { .introduced =3D HEX_VER_V65, .removed =3D HEX_VER= _NONE }, + [V6_vgathermwq] =3D { .introduced =3D HEX_VER_V65, .removed =3D HEX_VE= R_NONE }, + [V6_vlut4] =3D { .introduced =3D HEX_VER_V65, .removed =3D HEX_VER_NON= E }, + [V6_vmpabuu] =3D { .introduced =3D HEX_VER_V65, .removed =3D HEX_VER_N= ONE }, + [V6_vmpabuu_acc] =3D { .introduced =3D HEX_VER_V65, .removed =3D HEX_V= ER_NONE }, + [V6_vmpahhsat] =3D { .introduced =3D HEX_VER_V65, .removed =3D HEX_VER= _NONE }, + [V6_vmpauhuhsat] =3D { .introduced =3D HEX_VER_V65, .removed =3D HEX_V= ER_NONE }, + [V6_vmpsuhuhsat] =3D { .introduced =3D HEX_VER_V65, .removed =3D HEX_V= ER_NONE }, + [V6_vmpyh_acc] =3D { .introduced =3D HEX_VER_V65, .removed =3D HEX_VER= _NONE }, + [V6_vmpyuhe] =3D { .introduced =3D HEX_VER_V65, .removed =3D HEX_VER_N= ONE }, + [V6_vmpyuhe_acc] =3D { .introduced =3D HEX_VER_V65, .removed =3D HEX_V= ER_NONE }, + [V6_vnavgb] =3D { .introduced =3D HEX_VER_V65, .removed =3D HEX_VER_NO= NE }, + [V6_vprefixqb] =3D { .introduced =3D HEX_VER_V65, .removed =3D HEX_VER= _NONE }, + [V6_vprefixqh] =3D { .introduced =3D HEX_VER_V65, .removed =3D HEX_VER= _NONE }, + [V6_vprefixqw] =3D { .introduced =3D HEX_VER_V65, .removed =3D HEX_VER= _NONE }, + [V6_vscattermh] =3D { .introduced =3D HEX_VER_V65, .removed =3D HEX_VE= R_NONE }, + [V6_vscattermh_add] =3D { .introduced =3D HEX_VER_V65, .removed =3D HE= X_VER_NONE }, + [V6_vscattermhq] =3D { .introduced =3D HEX_VER_V65, .removed =3D HEX_V= ER_NONE }, + [V6_vscattermhw] =3D { .introduced =3D HEX_VER_V65, .removed =3D HEX_V= ER_NONE }, + [V6_vscattermhw_add] =3D { .introduced =3D HEX_VER_V65, .removed =3D H= EX_VER_NONE }, + [V6_vscattermhwq] =3D { .introduced =3D HEX_VER_V65, .removed =3D HEX_= VER_NONE }, + [V6_vscattermw] =3D { .introduced =3D HEX_VER_V65, .removed =3D HEX_VE= R_NONE }, + [V6_vscattermw_add] =3D { .introduced =3D HEX_VER_V65, .removed =3D HE= X_VER_NONE }, + [V6_vscattermwq] =3D { .introduced =3D HEX_VER_V65, .removed =3D HEX_V= ER_NONE }, + + [F2_dfadd] =3D { .introduced =3D HEX_VER_V66, .removed =3D HEX_VER_NON= E }, + [F2_dfsub] =3D { .introduced =3D HEX_VER_V66, .removed =3D HEX_VER_NON= E }, + [M2_mnaci] =3D { .introduced =3D HEX_VER_V66, .removed =3D HEX_VER_NON= E }, + [S2_mask] =3D { .introduced =3D HEX_VER_V66, .removed =3D HEX_VER_NONE= }, + [V6_vaddcarryo] =3D { .introduced =3D HEX_VER_V66, .removed =3D HEX_VE= R_NONE }, + [V6_vaddcarrysat] =3D { .introduced =3D HEX_VER_V66, .removed =3D HEX_= VER_NONE }, + [V6_vasr_into] =3D { .introduced =3D HEX_VER_V66, .removed =3D HEX_VER= _NONE }, + [V6_vrotr] =3D { .introduced =3D HEX_VER_V66, .removed =3D HEX_VER_NON= E }, + [V6_vsatdw] =3D { .introduced =3D HEX_VER_V66, .removed =3D HEX_VER_NO= NE }, + [V6_vsubcarryo] =3D { .introduced =3D HEX_VER_V66, .removed =3D HEX_VE= R_NONE }, + + [A7_clip] =3D { .introduced =3D HEX_VER_V67, .removed =3D HEX_VER_NONE= }, + [A7_croundd_ri] =3D { .introduced =3D HEX_VER_V67, .removed =3D HEX_VE= R_NONE }, + [A7_croundd_rr] =3D { .introduced =3D HEX_VER_V67, .removed =3D HEX_VE= R_NONE }, + [A7_vclip] =3D { .introduced =3D HEX_VER_V67, .removed =3D HEX_VER_NON= E }, + [F2_dfmax] =3D { .introduced =3D HEX_VER_V67, .removed =3D HEX_VER_NON= E }, + [F2_dfmin] =3D { .introduced =3D HEX_VER_V67, .removed =3D HEX_VER_NON= E }, + [F2_dfmpyfix] =3D { .introduced =3D HEX_VER_V67, .removed =3D HEX_VER_= NONE }, + [F2_dfmpyhh] =3D { .introduced =3D HEX_VER_V67, .removed =3D HEX_VER_N= ONE }, + [F2_dfmpylh] =3D { .introduced =3D HEX_VER_V67, .removed =3D HEX_VER_N= ONE }, + [F2_dfmpyll] =3D { .introduced =3D HEX_VER_V67, .removed =3D HEX_VER_N= ONE }, + [J2_callrh] =3D { .introduced =3D 0x73, .removed =3D HEX_VER_NONE }, + [J2_jumprh] =3D { .introduced =3D 0x73, .removed =3D HEX_VER_NONE }, + [L2_loadw_aq] =3D { .introduced =3D HEX_VER_V68, .removed =3D HEX_VER_= NONE }, + [L4_loadd_aq] =3D { .introduced =3D HEX_VER_V68, .removed =3D HEX_VER_= NONE }, + [M7_dcmpyiw] =3D { .introduced =3D HEX_VER_V67, .removed =3D HEX_VER_N= ONE }, + [M7_dcmpyiw_acc] =3D { .introduced =3D HEX_VER_V67, .removed =3D HEX_V= ER_NONE }, + [M7_dcmpyiwc] =3D { .introduced =3D HEX_VER_V67, .removed =3D HEX_VER_= NONE }, + [M7_dcmpyiwc_acc] =3D { .introduced =3D HEX_VER_V67, .removed =3D HEX_= VER_NONE }, + [M7_dcmpyrw] =3D { .introduced =3D HEX_VER_V67, .removed =3D HEX_VER_N= ONE }, + [M7_dcmpyrw_acc] =3D { .introduced =3D HEX_VER_V67, .removed =3D HEX_V= ER_NONE }, + [M7_dcmpyrwc] =3D { .introduced =3D HEX_VER_V67, .removed =3D HEX_VER_= NONE }, + [M7_dcmpyrwc_acc] =3D { .introduced =3D HEX_VER_V67, .removed =3D HEX_= VER_NONE }, + [M7_wcmpyiw] =3D { .introduced =3D HEX_VER_V67, .removed =3D HEX_VER_N= ONE }, + [M7_wcmpyiw_rnd] =3D { .introduced =3D HEX_VER_V67, .removed =3D HEX_V= ER_NONE }, + [M7_wcmpyiwc] =3D { .introduced =3D HEX_VER_V67, .removed =3D HEX_VER_= NONE }, + [M7_wcmpyiwc_rnd] =3D { .introduced =3D HEX_VER_V67, .removed =3D HEX_= VER_NONE }, + [M7_wcmpyrw] =3D { .introduced =3D HEX_VER_V67, .removed =3D HEX_VER_N= ONE }, + [M7_wcmpyrw_rnd] =3D { .introduced =3D HEX_VER_V67, .removed =3D HEX_V= ER_NONE }, + [M7_wcmpyrwc] =3D { .introduced =3D HEX_VER_V67, .removed =3D HEX_VER_= NONE }, + [M7_wcmpyrwc_rnd] =3D { .introduced =3D HEX_VER_V67, .removed =3D HEX_= VER_NONE }, + [R6_release_at_vi] =3D { .introduced =3D HEX_VER_V68, .removed =3D HEX= _VER_NONE }, + [R6_release_st_vi] =3D { .introduced =3D HEX_VER_V68, .removed =3D HEX= _VER_NONE }, + [S2_storew_rl_at_vi] =3D { .introduced =3D HEX_VER_V68, .removed =3D H= EX_VER_NONE }, + [S2_storew_rl_st_vi] =3D { .introduced =3D HEX_VER_V68, .removed =3D H= EX_VER_NONE }, + [S4_stored_rl_at_vi] =3D { .introduced =3D HEX_VER_V68, .removed =3D H= EX_VER_NONE }, + [S4_stored_rl_st_vi] =3D { .introduced =3D HEX_VER_V68, .removed =3D H= EX_VER_NONE }, + [V6_v6mpyhubs10] =3D { .introduced =3D HEX_VER_V68, .removed =3D HEX_V= ER_NONE }, + [V6_v6mpyhubs10_vxx] =3D { .introduced =3D HEX_VER_V68, .removed =3D H= EX_VER_NONE }, + [V6_v6mpyvubs10] =3D { .introduced =3D HEX_VER_V68, .removed =3D HEX_V= ER_NONE }, + [V6_v6mpyvubs10_vxx] =3D { .introduced =3D HEX_VER_V68, .removed =3D H= EX_VER_NONE }, + [V6_vasrvuhubrndsat] =3D { .introduced =3D HEX_VER_V69, .removed =3D H= EX_VER_NONE }, + [V6_vasrvuhubsat] =3D { .introduced =3D HEX_VER_V69, .removed =3D HEX_= VER_NONE }, + [V6_vasrvwuhrndsat] =3D { .introduced =3D HEX_VER_V69, .removed =3D HE= X_VER_NONE }, + [V6_vasrvwuhsat] =3D { .introduced =3D HEX_VER_V69, .removed =3D HEX_V= ER_NONE }, + [V6_vassign_tmp] =3D { .introduced =3D HEX_VER_V69, .removed =3D HEX_V= ER_NONE }, + [V6_vcombine_tmp] =3D { .introduced =3D HEX_VER_V69, .removed =3D HEX_= VER_NONE }, + [V6_vmpyuhvs] =3D { .introduced =3D HEX_VER_V69, .removed =3D HEX_VER_= NONE }, +}; + +#endif /* HEXAGON_TAG_ARCH_TABLE_H */ --=20 2.34.1 From nobody Sun Apr 26 08:13:17 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=1776998241; cv=none; d=zohomail.com; s=zohoarc; b=f3LqbOLNfyytCAfXpaJ7loG+Dca5Q3lmth4MLVyy9vFETHH4ghndrqLzXN0YjrLHFX9O/rfsjy9HDmqqSqefq8btFUUYz29osHF04b+kCNVJL/lPAJd+Ymkc3s707ApEQd4AVPtKW4EbpfRroy9+BA6WQiV8Bgcrow69YbZrRb8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1776998241; 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=z2MDxjjQJbooXhtfrG3OMxDS++cZUaWGHcLuK2xhE5Q=; b=RvBcCfM6WsiMhUlAz8D3SUUkpkQRVt0PC6MQVoUmVdhs73P29R2uioNySxFWFViii1E6ciyoJwN/RKARVhysL7/iHKxDaHGHaICs12OgZhuK7ZhywZBIGhuTh7m/pGGxvNLClEhJUhPmhQlWVRAnOj66YiFIGaj+ClRycBVI8JU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1776998241415450.73419138519944; Thu, 23 Apr 2026 19:37:21 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wG6P4-0006ke-41; Thu, 23 Apr 2026 22:36:26 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wG6P2-0006k4-R7 for qemu-devel@nongnu.org; Thu, 23 Apr 2026 22:36:24 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wG6P1-0008KH-4P for qemu-devel@nongnu.org; Thu, 23 Apr 2026 22:36:24 -0400 Received: from pps.filterd (m0279863.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 63O0WoY2154579 for ; Fri, 24 Apr 2026 02:36:22 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 4dqpf629gm-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 24 Apr 2026 02:36:21 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-2da19227bc1so14690698eec.1 for ; Thu, 23 Apr 2026 19:36:21 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2e539fa6134sm31240868eec.3.2026.04.23.19.36.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 23 Apr 2026 19:36:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= z2MDxjjQJbooXhtfrG3OMxDS++cZUaWGHcLuK2xhE5Q=; b=QH+fRniXg46bixt+ rhukIQVwSHSIGyJqNL/B4KHjRUJgChCIoTf/sS7euzI9z1H6cc+jJ+XfUgy+GiEF MlgZezFkkNdFbYqEKPuApMeSN8JUilzIIGN26dzHXvVgT6Zy4Na4IrbRoxn+m+9x 6srWjZThkIGTc/Up0CkmclY80E4j5+NTc+Fk7ATzLU1azNWs6MVxYGwfYdeMdNyp U0oslhh9egPO2P7aOPYsZ+mstcHIMkR1EhJqF0myTumiz/czacSkxheGu8ATbkDm L2QWLQTdz5apLODUWyps0SXfkcIZDPmH8F11gMFFEKseQyY7b1xx6oG35gTGb0gg 7wMzPQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1776998181; x=1777602981; 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=z2MDxjjQJbooXhtfrG3OMxDS++cZUaWGHcLuK2xhE5Q=; b=M8FVsxGLYj3mfpffkBzA/uAMSgNp+uOTqGHXcTUohmwb3ZN7cGiAvp1chXnUzi8VXa pslFtJY/yCWi0xcYEqi1W7cdOGUBbYHnLkgXFMhggHiQdxZ7b4fAvq6bjYFmNq66xODh PxPK6MWHw9hDQc1ShS8sJsRFr7a8ueX/mO+BRbGUB8qDdHBhkyhAxHoKEL0GK6FsxmcK vdkWOSd+DHk+tnCooP4buwyVCpyewpTm/+q8VLnPwMaywttbgqVDiUG3T0eXi2nlwdwo lmBUgBrmHQBQqvzEuScdQ+7sMljPkBzQ898twILiIc5dArBlCAlUNyiy/wX2zRY1HTjU TF9Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776998181; x=1777602981; 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=z2MDxjjQJbooXhtfrG3OMxDS++cZUaWGHcLuK2xhE5Q=; b=d6yFF9E0I22WkMGCu19xYSgV6LKkpHevxmtr2JZOlqobEpEwC1pwzsvjRaWR0JeaaX R+TPVP6C8tHq7GCDBvKCYd+VyLtNY9igOXybWUB2iwRumiga3TVD/n7wNAJ5J2UAnP+c fS28hI0I9YsuXC169dBBsEVbNzSmuAOptVmNPV3VvzfP9PmMvaiLMP+qgFeq9uValpxD 4lZiNlqfvibUIPVVpVYf+yVaZsgIhJCnEOnjjE6+Xo4oCECfOWzAXXR1JpUHFDuegJEZ rStGyydAOH7cbWKnGbXmmYS70csoSlnp5UDYt1MRpAkTeiKpBi+Phcf62ufIcGU6cDmo uTmw== X-Gm-Message-State: AOJu0YzTVr7Bf1noTT6wjfz7wOMX975SaglSgfbeSJicev/ewVFBKDjY G+WxSoY1kk9u+SJUHM2It80ITT+jqXDanMLMQulz7gZKDKOHZP11aH2f6XewvdwAzvAtoi+b44k 442IFs1mVp7Z+9eiH1ZbnCALI6BqhR7uOtrYQfdYN7Ot1vzFnsZp5b5caCasepmX+QA== X-Gm-Gg: AeBDievJNS8U9j8xlw9Y84bmEIrIsUE9VxYzghbfutK3azQxQP4BL9xPNLsuC3QKkeV s/TqkPvKK7bXLon3Kq2d18bqMlVftA2ESDTLBZmf91UXTREQ6CQ/vX2qPlnHm47eEADvs08dFLc q5TWVFoqT1mHChGaY0MYGGBYO75LX09Zj8194Qlu/ZTilMnKBtKts/0B+K8DnR1dzP2liDuJ4nR 3JEoKM1HAZS9MbT9GqvbAMCgKDFwQJbC49nS5LeTf7+LK0P2TokvntliJi83yKvF64yDmADIi2G 1N+s1FL7bqWu7KRbNzA47roXgNBg89r/5L0m6rfDV57DMJT+zFzXPdblxm3kPMPKEthH+vv2zfX I+RfYNTSKSlby1AKqCixKdyXYSi93YjgfSS+r3uykzgP62n5H2ZcTBBsPCxBrfUbTgBZhQjCtA2 fAjtlj X-Received: by 2002:a05:7301:1693:b0:2d2:129a:1682 with SMTP id 5a478bee46e88-2e4786460f9mr16344712eec.16.1776998180966; Thu, 23 Apr 2026 19:36:20 -0700 (PDT) X-Received: by 2002:a05:7301:1693:b0:2d2:129a:1682 with SMTP id 5a478bee46e88-2e4786460f9mr16344693eec.16.1776998180499; Thu, 23 Apr 2026 19:36:20 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Taylor Simpson , Matheus Tavares Bernardino , Anton Johansson , Pierrick Bouvier Subject: [PULL 5/9] Hexagon (target/hexagon) Check each opcode against current CPU definition Date: Thu, 23 Apr 2026 19:36:02 -0700 Message-Id: <20260424023606.2556830-6-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260424023606.2556830-1-brian.cain@oss.qualcomm.com> References: <20260424023606.2556830-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=Iocutr/g c=1 sm=1 tr=0 ts=69ead725 cx=c_pps a=cFYjgdjTJScbgFmBucgdfQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yOCtJkima9RkubShWh1s:22 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=UzSeF1EqHBairItpb9sA:9 a=QEXdDO2ut3YA:10 a=scEy_gLbYbu1JhEsrz4S:22 X-Proofpoint-ORIG-GUID: QY1quVrNGqubEhfXQ-8A9U0dQbUoJhbB X-Proofpoint-GUID: QY1quVrNGqubEhfXQ-8A9U0dQbUoJhbB X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDI0MDAyMCBTYWx0ZWRfX8u2qlo6L6o1M frvRBA2uHrcRT5CMg0y0xXFnszwgxRkZK/DhuON/J/7IfM6XOCd9kVXw0B1x//mrM9er9EIfl0e 9vPHlhBm4H1eSc3Ohe8voWB6vuhKshnO4GcON4oEkjAwGVgWTBpqi0rEb2k/cJzg53h4bytYIIc YvmSW2erV5zJuqIyuxqWhN4K46ZkDPSM3m1LUJlV+zR4yN84VG5k3eYibzZJM1ZxJql5gddUv+8 pVp/h7DPeEZcxwcGeb23TriceWCtsbdG2V+qWKfT4T7dnBG/2RlL+Ab/UFCgd94VEjLkfQugfbq 8BuYBwSnH6uzPA9eNslX+xXVL/pgghbpWDB8yBuFZQrrLT3F4EH30U0T/3BE/RctI6mWJo/B4D9 vhUOY/kfxTYXjqyjsEMaD25D0nap0AGP0hunmRaadIVM9dQn3TGWLp7msOvjYw7Y8x3zUNulZUo jB+jZ///gXxqIJA3SBQ== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-04-23_03,2026-04-21_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 malwarescore=0 phishscore=0 bulkscore=0 spamscore=0 suspectscore=0 priorityscore=1501 lowpriorityscore=0 clxscore=1015 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604200000 definitions=main-2604240020 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1776998245294154100 From: Taylor Simpson During decoding, check that the opcode is supported in the current Hexagon CPU definition Co-authored-by: Matheus Tavares Bernardino Co-authored-by: Brian Cain Signed-off-by: Taylor Simpson Reviewed-by: Anton Johansson Signed-off-by: Brian Cain --- target/hexagon/decode.h | 2 ++ target/hexagon/decode.c | 27 +++++++++++++++++++++++++++ 2 files changed, 29 insertions(+) diff --git a/target/hexagon/decode.h b/target/hexagon/decode.h index 3f3012b978d..d4b049961ed 100644 --- a/target/hexagon/decode.h +++ b/target/hexagon/decode.h @@ -30,4 +30,6 @@ void decode_send_insn_to(Packet *packet, int start, int n= ewloc); int decode_packet(DisasContext *ctx, int max_words, const uint32_t *words, Packet *pkt, bool disas_only); =20 +bool opcode_supported(uint16_t opcode, const HexagonCPUDef *hex_def); + #endif diff --git a/target/hexagon/decode.c b/target/hexagon/decode.c index dbc9c630e82..b8a1cd5b12b 100644 --- a/target/hexagon/decode.c +++ b/target/hexagon/decode.c @@ -647,6 +647,22 @@ decode_set_slot_number(Packet *pkt) return has_valid_slot_assignment(pkt); } =20 +bool opcode_supported(uint16_t opcode, const HexagonCPUDef *hex_def) +{ + HexagonVersion hex_version =3D hex_def->hex_version; +#include "tag_rev_info.c.inc" + + struct tag_rev_info info =3D tag_rev_info[opcode]; + if (hex_version =3D=3D HEX_VER_ANY) { + return true; + } + if ((info.introduced !=3D HEX_VER_NONE && hex_version < info.introduce= d) || + (info.removed !=3D HEX_VER_NONE && hex_version >=3D info.removed))= { + return false; + } + return true; +} + /* * Check for GPR write conflicts in the packet. * A conflict exists when a register is written by more than one instructi= on @@ -746,6 +762,17 @@ int decode_packet(DisasContext *ctx, int max_words, co= nst uint32_t *words, /* Ran out of words! */ return 0; } + + /* + * Check that all the opcodes are supported in this Hexagon definition + * If not, return decode error + */ + for (i =3D 0; i < num_insns; i++) { + if (!opcode_supported(pkt->insn[i].opcode, ctx->hex_def)) { + return 0; + } + } + pkt->encod_pkt_size_in_bytes =3D words_read * 4; pkt->pkt_has_hvx =3D false; for (i =3D 0; i < num_insns; i++) { --=20 2.34.1 From nobody Sun Apr 26 08:13:17 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=1776998221; cv=none; d=zohomail.com; s=zohoarc; b=kLhptFwfyG5L0MA/aOMLvOkFJ36yWErNtz61XJZo5q0nOb1fOPsHrajSPhtQ07XzeUoanF3mn3f845PX26wO2Ha5kKq70voWxrQcaJn5jF7R56h4vULiGSuiR0IAsfZaJvU8bnDYt+uPH+cp4Q++zt+fTmvi5rp5jQMre2Zz4Zg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1776998221; 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=+3JTTBjcxtihqjfyfYNLDWBSXnwmgBGHqzUfIU57z/E=; b=EGLQKFGMjJiS+lfquiau5KOHULZxmJPthhowXaPgZ0rmiuu9/SYuGb1aQxMubiYFdlRF2t+tJNNbc7VEct4Nu1C3BklHAPBq67RGexoZathoeRA7NbOMT0Tv1aCdGFP1n3pD9ixXlCHcMg2O69fZBdJL2+gr6Pkr+fkNfbw4kkI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1776998221830524.5713484346585; Thu, 23 Apr 2026 19:37:01 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wG6PB-0006lv-Ao; Thu, 23 Apr 2026 22:36:33 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wG6P4-0006ks-Cb for qemu-devel@nongnu.org; Thu, 23 Apr 2026 22:36:29 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wG6P2-0008Kc-BC for qemu-devel@nongnu.org; Thu, 23 Apr 2026 22:36:26 -0400 Received: from pps.filterd (m0279867.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 63NIQ96s3804217 for ; Fri, 24 Apr 2026 02:36:23 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 4dqkqfu171-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 24 Apr 2026 02:36:22 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-2de07c12745so16310147eec.1 for ; Thu, 23 Apr 2026 19:36:22 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2e539fa6134sm31240868eec.3.2026.04.23.19.36.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 23 Apr 2026 19:36:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= +3JTTBjcxtihqjfyfYNLDWBSXnwmgBGHqzUfIU57z/E=; b=X9voPpt1NSgjd9LY EUphR2H7sPAQE+Hy4z8N5VeOP6AUymTneYeint7wYkg45FCiCe/oXL2tGYHRWmSS TlqZLB9HTFU8s7xZp0jXKawwr6FHZ20RihQe9O//Fr0Gl5OgOEw8R2jeCalNk89Q YckaYc/YNfFEDCXikkqw5/LMZGwgAjn/C1ebbxCABAX1dMVXTvRmUThP6hK/ltDj MjFgk4bG+eIGsYoTuUYNz4Tw/u3T0xrRc2l7ybqP7rY9FVWSMDj2I3LTncneMqfl yLAspz3tjG2YsvdX6drhZmxsqOft8+BrPKjHJP/2q4fOWrAQXxoUHbpmCNtMVN0Z uAhbQw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1776998182; x=1777602982; 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=+3JTTBjcxtihqjfyfYNLDWBSXnwmgBGHqzUfIU57z/E=; b=Yj8cLDpL4VQ0gpg3+UFsOaMRjvaC7X2wCojWNkGPg5LYNoxNGAeuwabmczpH5JbYFF H1Zbtzts+A8+ISLVK8JH65CTo3T2tRDNOhMKOssueDJu0k3Gr8ACwd15SMB2afp6HphT l3bIgG3vHveepbJfgoM68gMmejFy4owIGdwJJtOnw7/dWOdde/w6qw6LXCMU2wxhEPZI vVeB3FynWBmPDCv/YxVqzpo0Mjl6NC/wNsPYqIt2u5KwZzs1BkshWDc7C6CXYKfH06+0 5rvfs7oIX8y2BzM5PtOf5NtI1o65Jg0J/mbmwWnDlvlJLO7c30jhMWxl7uLE9uYCQKmR 6gqw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776998182; x=1777602982; 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=+3JTTBjcxtihqjfyfYNLDWBSXnwmgBGHqzUfIU57z/E=; b=PIENAZtlRMpuxP2xmTVaDjYXufQwUgE+bp+vdhSC0rIOEfEbU2hyte5K+yLJC6Y7Xa p5vCmzViOIoBeAEV2C+IdQLWK4Qczy9mudiqV0pfQeQ1RBXFCBvEi94W7GiUEFB2RSLP DhNRSlR7Wkgm4SyeaTHIlKEN91Kn61Nbpn+h27FLr3pF99ic2WbHkhXsrZo0nzu7ZVJq xw9Re4BZJSd3FBHClhI/696aMoYKsFHq8du5gicaQS88UgD+P/1PCiv6FJmaZTt+ZdGO 4+rs/Z8eLt2tUVfJZqYXRZfarGbnKfg9YrHL/SowT5OMrv6ZGMivrLqxJMKCaCWEcFje 0BOg== X-Gm-Message-State: AOJu0Yzchz6/wc/mDF7R6o4HsnXLoDcBZh9xwlnQApoBE0UPskk9dQVe GQEHCrsy/cn7IYcR3aZg4VlVb2sHdo7sxcSECc/V+fLEBhDcgW9kpbr2g8cYfdg93o57uJ6gO4u +ShnKjLqfRMytBHGgbfxXQtD75aRMzLgWUXJ1KyOkK9FN2CCQh+ZbiJPOK7IDlCa3IQ== X-Gm-Gg: AeBDiev+gXMGZO+SSAftgfJyIoE2fSjRTd1PuXg2fgQ+/5UOIFnVl0aLMeIIIQUj1Zp ZtzVnPLV3mnNU551srHbWB7uiKXfcd/H+S3yOYHR95lvN3zUkoPHe3e6OEpr6M5nexvlXHO6MKh Y+Afsoiud+4MdrlD6L6ufksgZQxFqCvW71zOR644Pn1ldEdfZ8Yl7COwCdbjEbNO5MMShamZJRn 2atb5WO/G2R/Z8+tcsWm5KBCjdCItJ9zvctf14UnLsQNY6V5hmMgg0aj7Njq88b3/EQLcI9ngLk 5FE8e15B6Uho+nFTWMRQLDFZRLirMVR2BIT9rWz5/cEG9JCRxiIVdNYA6SvUZn+GjY5nM0T5aGB WkKHD5vRX+iDd2YGlaJkZRjDjX8yFsYLWhi2W2nVZANoVmXzo4foKMhsmgRHV1AZhYjm8S5ttAr RsCOjj X-Received: by 2002:a05:693c:2a10:b0:2e6:e916:7105 with SMTP id 5a478bee46e88-2e6e9167856mr9979241eec.13.1776998181891; Thu, 23 Apr 2026 19:36:21 -0700 (PDT) X-Received: by 2002:a05:693c:2a10:b0:2e6:e916:7105 with SMTP id 5a478bee46e88-2e6e9167856mr9979232eec.13.1776998181266; Thu, 23 Apr 2026 19:36:21 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Taylor Simpson , Matheus Tavares Bernardino , Anton Johansson , Pierrick Bouvier Subject: [PULL 6/9] Hexagon (target/hexagon) Disassembly of invalid packets Date: Thu, 23 Apr 2026 19:36:03 -0700 Message-Id: <20260424023606.2556830-7-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260424023606.2556830-1-brian.cain@oss.qualcomm.com> References: <20260424023606.2556830-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: Gcqhm9UrsQWW0gWmsb7bXiaT3WNLgUsf X-Proofpoint-ORIG-GUID: Gcqhm9UrsQWW0gWmsb7bXiaT3WNLgUsf X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDI0MDAyMCBTYWx0ZWRfX1WHMRxcjTLGt xv4copfDMlw2zeb4T687HDbQZg9NrLFbEqHq1WWT7ZnJeemNd4SyZvuF5tNbalu082O/Eqk/jW0 sQ2g/t4cXLGmYlaHwgxS15iYhE1cfGMdp+fWkkddUtcQH213oQ/rWWQ1/oKIVKeyzPEvcnAdY8b brO+qoO7U0Je51LMk84yNv1i62l0d7MHZGGtOItcGiec0U1zGeYKGDW8FJ/Bgyy7eQ54uzQtXWN ho/gO9fECe68gC81Dv0DsVOI8IRo2sWdz6OHacW08t/g7pKqEexDvE+46UK40/PhcD1WpTW0JQH NL+iqxmIrJFijr5Iso/vFhqeO+IVT72GBobw7+xhFzHKUsJopRf0ojBV8EX3ZS4ncako2ZMtX3A VUZXdmiasvwCicfeiSYebNv2DCCxhmxF/cykVmHAnZ2maoi0s8jDfuw2YfsP3L+a3i267+l0FaM xWmTRp1l/8FobbOWSrQ== X-Authority-Analysis: v=2.4 cv=ablRWxot c=1 sm=1 tr=0 ts=69ead726 cx=c_pps a=Uww141gWH0fZj/3QKPojxA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=eoimf2acIAo5FJnRuUoq:22 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=Mls7scvPt5bN7SzHJssA:9 a=QEXdDO2ut3YA:10 a=PxkB5W3o20Ba91AHUih5:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-04-23_03,2026-04-21_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 phishscore=0 priorityscore=1501 suspectscore=0 adultscore=0 impostorscore=0 malwarescore=0 clxscore=1015 lowpriorityscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604200000 definitions=main-2604240020 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1776998225037158500 From: Taylor Simpson We pass the Hexagon CPU definition to disassemble_hexagon. This allows decode_packet to know if the opcodes are supported. Note that we print valid instructions in a packet when one or more is invalid. Rather than this 0x0002128c: 0x1eae4fec { 0x00021290: 0x1c434c04 0x00021294: 0x1e03edf0 } We print this 0x0002128c: 0x1eae4fec { 0x00021290: 0x1c434c04 V4.w =3D vadd(V12.w,V3.w) 0x00021294: 0x1e03edf0 V16 =3D V13 } Co-authored-by: Matheus Tavares Bernardino Co-authored-by: Brian Cain Signed-off-by: Taylor Simpson Reviewed-by: Anton Johansson Signed-off-by: Brian Cain --- target/hexagon/cpu_bits.h | 4 +++- target/hexagon/printinsn.h | 3 ++- disas/hexagon.c | 3 ++- target/hexagon/cpu.c | 2 ++ target/hexagon/decode.c | 25 +++++++++++++++++++++---- target/hexagon/printinsn.c | 9 +++++++-- 6 files changed, 37 insertions(+), 9 deletions(-) diff --git a/target/hexagon/cpu_bits.h b/target/hexagon/cpu_bits.h index 19beca81c0c..aaac6b9ea64 100644 --- a/target/hexagon/cpu_bits.h +++ b/target/hexagon/cpu_bits.h @@ -19,6 +19,7 @@ #define HEXAGON_CPU_BITS_H =20 #include "qemu/bitops.h" +#include "cpu-qom.h" =20 #define PCALIGN 4 #define PCALIGN_MASK (PCALIGN - 1) @@ -65,6 +66,7 @@ static inline bool is_packet_end(uint32_t endocing) return ((bits =3D=3D 0x3) || (bits =3D=3D 0x0)); } =20 -int disassemble_hexagon(uint32_t *words, int nwords, bfd_vma pc, GString *= buf); +int disassemble_hexagon(uint32_t *words, int nwords, bfd_vma pc, GString *= buf, + const HexagonCPUDef *hex_def); =20 #endif diff --git a/target/hexagon/printinsn.h b/target/hexagon/printinsn.h index 2ecd1731d03..6f84ef93c3b 100644 --- a/target/hexagon/printinsn.h +++ b/target/hexagon/printinsn.h @@ -18,10 +18,11 @@ #ifndef HEXAGON_PRINTINSN_H #define HEXAGON_PRINTINSN_H =20 +#include "cpu-qom.h" #include "insn.h" =20 void snprint_a_pkt_disas(GString *buf, Packet *pkt, uint32_t *words, - target_ulong pc); + target_ulong pc, const HexagonCPUDef *hex_def); void snprint_a_pkt_debug(GString *buf, Packet *pkt); =20 #endif diff --git a/disas/hexagon.c b/disas/hexagon.c index c1a4ffc5f6b..36b8321c26a 100644 --- a/disas/hexagon.c +++ b/disas/hexagon.c @@ -31,6 +31,7 @@ =20 int print_insn_hexagon(bfd_vma memaddr, struct disassemble_info *info) { + const HexagonCPUDef *hex_def =3D (const HexagonCPUDef *)info->target_i= nfo; uint32_t words[PACKET_WORDS_MAX]; bool found_end =3D false; GString *buf; @@ -58,7 +59,7 @@ int print_insn_hexagon(bfd_vma memaddr, struct disassembl= e_info *info) } =20 buf =3D g_string_sized_new(PACKET_BUFFER_LEN); - len =3D disassemble_hexagon(words, i, memaddr, buf); + len =3D disassemble_hexagon(words, i, memaddr, buf, hex_def); (*info->fprintf_func)(info->stream, "%s", buf->str); g_string_free(buf, true); =20 diff --git a/target/hexagon/cpu.c b/target/hexagon/cpu.c index 23ac91e7b47..2c53f2c2836 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -297,8 +297,10 @@ static void hexagon_cpu_reset_hold(Object *obj, ResetT= ype type) static void hexagon_cpu_disas_set_info(const CPUState *cs, disassemble_info *info) { + const HexagonCPU *cpu =3D HEXAGON_CPU(cs); info->print_insn =3D print_insn_hexagon; info->endian =3D BFD_ENDIAN_LITTLE; + info->target_info =3D HEXAGON_CPU_GET_CLASS(cpu)->hex_def; } =20 static void hexagon_cpu_realize(DeviceState *dev, Error **errp) diff --git a/target/hexagon/decode.c b/target/hexagon/decode.c index b8a1cd5b12b..c4cf430e5a2 100644 --- a/target/hexagon/decode.c +++ b/target/hexagon/decode.c @@ -828,19 +828,36 @@ int decode_packet(DisasContext *ctx, int max_words, c= onst uint32_t *words, =20 /* Used for "-d in_asm" logging */ int disassemble_hexagon(uint32_t *words, int nwords, bfd_vma pc, - GString *buf) + GString *buf, const HexagonCPUDef *hex_def) { + HexagonCPUDef any_def =3D { + .hex_version =3D HEX_VER_ANY, /* Allow decode to accept anything = */ + }; DisasContext ctx; Packet pkt; =20 memset(&ctx, 0, sizeof(DisasContext)); + ctx.hex_def =3D &any_def; ctx.pkt =3D &pkt; =20 if (decode_packet(&ctx, nwords, words, &pkt, true) > 0) { - snprint_a_pkt_disas(buf, &pkt, words, pc); + snprint_a_pkt_disas(buf, &pkt, words, pc, hex_def); return pkt.encod_pkt_size_in_bytes; } else { - g_string_assign(buf, ""); - return 0; + for (int i =3D 0; i < nwords; i++) { + g_string_append_printf(buf, "0x" TARGET_FMT_lx "\t", words[i]); + if (i =3D=3D 0) { + g_string_append(buf, "{"); + } + g_string_append(buf, "\t"); + g_string_append(buf, ""); + if (i < nwords - 1) { + pc +=3D 4; + g_string_append_printf(buf, "\n0x" TARGET_FMT_lx ": ", + (target_ulong)pc); + } + } + g_string_append(buf, " }"); + return nwords * sizeof(uint32_t); } } diff --git a/target/hexagon/printinsn.c b/target/hexagon/printinsn.c index 4865cdd133b..22b305f018e 100644 --- a/target/hexagon/printinsn.c +++ b/target/hexagon/printinsn.c @@ -21,6 +21,7 @@ #include "insn.h" #include "reg_fields.h" #include "internal.h" +#include "decode.h" =20 static const char *sreg2str(unsigned int reg) { @@ -51,7 +52,7 @@ static void snprintinsn(GString *buf, Insn *insn) } =20 void snprint_a_pkt_disas(GString *buf, Packet *pkt, uint32_t *words, - target_ulong pc) + target_ulong pc, const HexagonCPUDef *hex_def) { bool has_endloop0 =3D false; bool has_endloop1 =3D false; @@ -83,7 +84,11 @@ void snprint_a_pkt_disas(GString *buf, Packet *pkt, uint= 32_t *words, } =20 g_string_append(buf, "\t"); - snprintinsn(buf, &(pkt->insn[i])); + if (opcode_supported(pkt->insn[i].opcode, hex_def)) { + snprintinsn(buf, &(pkt->insn[i])); + } else { + g_string_append(buf, ""); + } =20 if (i < pkt->num_insns - 1) { /* --=20 2.34.1 From nobody Sun Apr 26 08:13:17 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=1776998281; cv=none; d=zohomail.com; s=zohoarc; b=MzvQUVAT3lKVHHssBVCpg9gAGSh6ihVT3AEr/5+0l/Gy8GpFelTpbMCFmMCsa5/iWTxv2xqUyKKSrZEsFOg8pwIAVMn/VyqKP4/1YQxGotnkKIWGcTCjV3j0Ol7vh/Kf79txFdp/yM6ZtF64hFhOYKvcW0vl9/U+MbWsKP2X8Ck= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1776998281; 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=UNaH9nR1gU/V4s0TIc1B0wDDMy/pwvQ55kuRFU1wK/4=; b=nbn71Uf39nL6jd8qbH21pajkBMJdv8L9eLSX0M1KKJhSNjfWU7HkaCFdZqVZfEF9OnQQpIujCstBHHheDo7gr6SHvABMw2qw/obSTb5aLpuTbxaLj74IhmwmQstLiQz29H+m3L/5eBOVs0SZQ2MhOoqn/lPczSFklD5/bcHCICI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1776998281715398.3881782198555; Thu, 23 Apr 2026 19:38:01 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wG6PD-0006ml-Fu; Thu, 23 Apr 2026 22:36:36 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wG6P5-0006l4-Mk for qemu-devel@nongnu.org; Thu, 23 Apr 2026 22:36:29 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wG6P3-0008Kw-Gk for qemu-devel@nongnu.org; Thu, 23 Apr 2026 22:36:27 -0400 Received: from pps.filterd (m0279864.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 63NMMkSl1823036 for ; Fri, 24 Apr 2026 02:36:24 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 4dqv5rrnas-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 24 Apr 2026 02:36:23 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-2d9da2559aeso19300713eec.0 for ; Thu, 23 Apr 2026 19:36:23 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2e539fa6134sm31240868eec.3.2026.04.23.19.36.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 23 Apr 2026 19:36:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= UNaH9nR1gU/V4s0TIc1B0wDDMy/pwvQ55kuRFU1wK/4=; b=WF5DCmqZu83xQyJG xBuAvgnWn0M0ZprbAOyuHRcp9/f0panKxOUn8B/G/CWyh6I8b3/hU3+dNifDS7Gp X8KONw9eFDR50bOHSFZfVC3kAxuGObkPVl0uVzYU1KU29fvNEZe0Z5eQUDQ6bzaN rIp3mk9tbA20wI8LbiP5deMGrsuyyNmyWzg84DueckLzXRwr8mMDfxU9KBmzF6/X JJ9UplyTfvGKYB5fclsdOGIhC5Wh0O0VtO5lMfi43acH3lwAgX93SIGQkGXMFV9E 8WMeL/x8z9f2fcB4E6wS4VSVM9G0RcYE1Dr8a0oTMw9MV5iO6Jz9615EFpQZctMO M8LRXg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1776998183; x=1777602983; 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=UNaH9nR1gU/V4s0TIc1B0wDDMy/pwvQ55kuRFU1wK/4=; b=jCG5LjdasN3y0bW+U89jcwXIrui0cFDI/r5NrnTmgsQhE6JJ0hSRZqNPYBLcxPqLtn Naxkk3azn+EnVQrZ3vd7EraUxc3hD81/NQAGHMnH5dk1WanjEcnhK5qQerQKgQQ23Lf/ VxZ7mEiycRxPgYasf0a7tTdeNWo7j4lssYpQH0s1vGjb4A1OAzLho6Jn0cPuH86xde3U FJ6muPKMb4TS9M5IBQu+OOydoph+taAYwwQb81HZnIedEWnuqsyM1Oh+bKznMpvu3txg PZXOEAGO9Glwz10FahoVtTAvqBNoCkKJVFixv3AW5xV9TmJywtFqfBfjBKVVBNRtJ55R o1IA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776998183; x=1777602983; 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=UNaH9nR1gU/V4s0TIc1B0wDDMy/pwvQ55kuRFU1wK/4=; b=ht+t+e30ajFvACKF6HP951pVjWE9D0tufiTJoDBYAHBZ0QXb+p4U9cl5RwYB1lp7FR B+GFyL0bKGhBS0/dnOhSIf58ki96xhIOqvxvZmckjPtEgVb+/NFeLQzxh+3uunz149iq YAETTzavx9Jie8byjIKKKelCf9Mybjdr6LePFCA2lg4VMnWjr3LTvZkKh59nt1nHymB9 To2SyR0Ni1/QjZhPVVd61KPXj0HbxwD4Wvom79a3Jzd9gp3RUzC2BcVZNPcbr6Mgzgr8 2GLckso/xz99zoKv4rGOl8rUWwRoRYEaXM60Oii6RIkUxI2r2CW7ERkceT5Ztc36Ko1R HmAw== X-Gm-Message-State: AOJu0Yyo8I7thmOiF/TSXrMJYM+V0uW0L731LPqkRB3MwjS5NN2OzpXR sbnXe9eFWFTJXjR+3jyGTrug1g8bJMnj55fNAn+gmiopbxYjdiqZrDwGbJtOhZep0KIr4NK/8yn dE3S66s5qL/n6iNUXRNB60nszJxyLw7IXhCMwZJaH+8FuajdeKsZXus1EBLZuzbcgpQ== X-Gm-Gg: AeBDieuJQtxUJIvPoz8AW4t6H1yFMROCHC+n5T5UZ2q2f5S/TNtgw6lr0cmaTXMHuqu en0jNql7Pf9aFKf54Dky7B8OGFhKoRzrrdA5hdCEgQLkqf7XDWql1XiuS6C2RCCAHQUiMBP4Gw6 5AhaQ7oS62xo4qr/DAGzh5IDDQXp3StI6zUYHAC2eqByLB0euCNsAnt5/OqqFoVW524gL4+frXz ZdmFpyOa2teS7RfDLeoHTrwaV2uTNHh6Ag5A+x+FYwqEZ67/hSWY04ci8pXHNaq9d7IN1zTaK9x dOavx3gzTOL+l7bIng9rwqKq7gkPEXjgPaqWApUz1HoqnFehyW2nZXlBa6fe1/TaRuJ5kPir9gI JtaY4yQO6ikcFJoDxGO3DpEeJOCY8pkJAnchFw/zwVi82H7mgRVsEjWiBqAQyuZ04knaJBVsLsl S3fURj X-Received: by 2002:a05:693c:60d0:b0:2e7:120:137b with SMTP id 5a478bee46e88-2e701202231mr10980110eec.0.1776998182836; Thu, 23 Apr 2026 19:36:22 -0700 (PDT) X-Received: by 2002:a05:693c:60d0:b0:2e7:120:137b with SMTP id 5a478bee46e88-2e701202231mr10980105eec.0.1776998182231; Thu, 23 Apr 2026 19:36:22 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Taylor Simpson , Matheus Tavares Bernardino , Marco Liebel , Pierrick Bouvier Subject: [PULL 7/9] tests/tcg/hexagon: Add test for revision-gated instruction decoding Date: Thu, 23 Apr 2026 19:36:04 -0700 Message-Id: <20260424023606.2556830-8-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260424023606.2556830-1-brian.cain@oss.qualcomm.com> References: <20260424023606.2556830-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=LqiiDHdc c=1 sm=1 tr=0 ts=69ead728 cx=c_pps a=cFYjgdjTJScbgFmBucgdfQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=DJpcGTmdVt4CTyJn9g5Z:22 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=Q1r81TyBglNDNhbJMaAA:9 a=QEXdDO2ut3YA:10 a=scEy_gLbYbu1JhEsrz4S:22 X-Proofpoint-ORIG-GUID: FSeJSN5Q6ulLpZSlI1Ly8Le7XRGgpEDd X-Proofpoint-GUID: FSeJSN5Q6ulLpZSlI1Ly8Le7XRGgpEDd X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDI0MDAyMCBTYWx0ZWRfX7t3vsd+i0nLs 909WNLdMK8zZUgY6rTdo/Vfi8uLTZZpVA4Wu8OwnooQqtVX3GwpIKbULJsDS4l6efy5qsTur2el CJuqWgjIbhRJHSFTRdS+L7941aUUf4ivybF1dypfy7asqFLg1BuQZUraJz74lD/oVHw8pN3gt7E 6W2SKoBcZXg9gsOfqH7KoK/X8gzwRAk+dTDLy/KdML64m/X9Lb/CtV90y7E/roWHDdNMnzJxHw/ ignLgxYWncCgDcw5M4+NNTDjTt73/bGLBIAkR8vLY+LJU+mTAAz6s+scUq/ec/suCv/0Dpzj9+E oeFDSgnICeARqc+nVA2GROIdiEx6ar7r1Dg3aG1OgewJ6jj0mcqXraw69cZEREf0flHid1amiwC MPG+YZYrbo1OIgbErY9Yri3ijWlmDfYG79pEi8p+9ip4oryXbWztqO/FBbbJruC3N1lzh4itVe9 rNrPViTloiNGTewdPqw== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-04-23_03,2026-04-21_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 bulkscore=0 clxscore=1015 impostorscore=0 lowpriorityscore=0 malwarescore=0 suspectscore=0 adultscore=0 phishscore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604200000 definitions=main-2604240020 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1776998283689154100 Add check_rev_gating, a linux-user test that verifies the decoder rejects instructions from a newer CPU revision than the one selected by the ELF binary's e_flags. Co-authored-by: Taylor Simpson Co-authored-by: Matheus Tavares Bernardino Reviewed-by: Marco Liebel Signed-off-by: Brian Cain --- tests/tcg/hexagon/check_rev_gating.c | 141 +++++++++++++++++++++++++++ tests/tcg/hexagon/Makefile.target | 6 ++ 2 files changed, 147 insertions(+) create mode 100644 tests/tcg/hexagon/check_rev_gating.c diff --git a/tests/tcg/hexagon/check_rev_gating.c b/tests/tcg/hexagon/check= _rev_gating.c new file mode 100644 index 00000000000..26b66f54552 --- /dev/null +++ b/tests/tcg/hexagon/check_rev_gating.c @@ -0,0 +1,141 @@ +/* + * Test that instructions from a newer revision than the running CPU + * are rejected with SIGILL. + * + * Compiled with -mv66 so that e_flags selects CPU v66. The test embeds + * a v68 instruction (L2_loadw_aq: "r0 =3D memw_aq(r0)") via .word + * encoding. The revision-gated decoder must reject it, and linux-user + * must deliver SIGILL. + * + * 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 int signals_handled; +static int expected_signals; + +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; + signals_handled++; +} + +/* + * Try to execute an instruction introduced after v66 + * On a v66 CPU this must raise SIGILL. + * + * Since we are building for v66, the assembler will reject + * the instructions, so introduce them with .word. + */ +#define TRY_FUNC(NAME, WORD) \ +static int try_##NAME(void) \ +{ \ + int sig; \ + expected_signals++; \ + asm volatile( \ + "r0 =3D #0\n" \ + "r1 =3D ##1f\n" \ + "memw(%1) =3D r1\n" \ + WORD \ + "1:\n" \ + "%0 =3D r0\n" \ + : "=3Dr"(sig) \ + : "r"(&resume_pc) \ + : "r0", "r1", "memory"); \ + return sig; \ +} + +TRY_FUNC(v68_loadw_aq, + ".word 0x9200c800 /* { r0 =3D memw_aq(r0) } */\n") +TRY_FUNC(v68_loadd_aq, + ".word 0x9201d800 /* r1:0 =3D memd_aq(r1) */\n") +TRY_FUNC(v68_release_at, + ".word 0xa0e0c00c /* release(r0):at */\n") +TRY_FUNC(v68_release_st, + ".word 0xa0e0c02c /* release(r0):st */\n") +TRY_FUNC(v68_storew_rl_at, + ".word 0xa0a0c108 /* memw_rl(r0):at =3D r1 */\n") +TRY_FUNC(v68_stored_rl_at, + ".word 0xa0e2c008 /* memd_rl(r2):at =3D r1:0 */\n") +TRY_FUNC(v68_storew_rl_st, + ".word 0xa0a0c128 /* memw_rl(r0):st =3D r1 */\n") +TRY_FUNC(v68_stored_rl_st, + ".word 0xa0e2c028 /* memd_rl(r2):st =3D r1:0 */\n") + +TRY_FUNC(v68hvx_v6mpy, + ".word 0x1f42e424 /* v5:4.w =3D v6mpy(v5:4.ub, v3:2.b, #1):v *= /\n") + +TRY_FUNC(v69hvx_vasrvuhubrndsat, + ".word 0x1d06c465 /* v5.ub =3D vasr(v5:4.uh, v6.ub):rnd:sat */= \n") +TRY_FUNC(v69hvx_vasrvuhubsat, + ".word 0x1d06c445 /* v5.ub =3D vasr(v5:4.uh, v6.ub):sat */\n") +TRY_FUNC(v69hvx_vasrvwuhrndsat, + ".word 0x1d06c425 /* v5.uh =3D vasr(v5:4.w, v6.uh):rnd:sat */\= n") +TRY_FUNC(v69hvx_vasrvwuhsat, + ".word 0x1d06c405 /* v5.uh =3D vasr(v5:4.w, v6.uh):sat */\n") +TRY_FUNC(v69hvx_vassign_tmp, + ".word 0x1e014dcc /* { v12.tmp =3D v13 */\n" + ".word 0x1c43cc04 /* v4.w =3D vadd(v12.w, v3.w) } */\n") +TRY_FUNC(v69hvx_vcombine_tmp, + ".word 0x1eae4fec /* { v13:12.tmp =3D vcombine(v15, v14) */\n" + ".word 0x1c434c04 /* v4.w =3D vadd(v12.w, v3.w) */\n" + ".word 0x1e03edf0 /* v16 =3D v13 } */\n") +TRY_FUNC(v69hvx_vmpyuhvs, + ".word 0x1fc5e4e4 /* v4.uh =3D vmpy(V4.uh, v5.uh):>>16 */\n") + +TRY_FUNC(v73_callrh, + ".word 0x50c5c000 /* callrh r5 */\n") +TRY_FUNC(v73_jumprh, + ".word 0x52c0c000 /* jumprh r0 */\n") + +int main(void) +{ + 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(try_v68_loadw_aq() =3D=3D SIGILL); + assert(try_v68_loadd_aq() =3D=3D SIGILL); + assert(try_v68_release_at() =3D=3D SIGILL); + assert(try_v68_release_st() =3D=3D SIGILL); + assert(try_v68_storew_rl_at() =3D=3D SIGILL); + assert(try_v68_stored_rl_at() =3D=3D SIGILL); + assert(try_v68_storew_rl_st() =3D=3D SIGILL); + assert(try_v68_stored_rl_st() =3D=3D SIGILL); + + assert(try_v68hvx_v6mpy() =3D=3D SIGILL); + + assert(try_v69hvx_vasrvuhubrndsat() =3D=3D SIGILL); + assert(try_v69hvx_vasrvuhubsat() =3D=3D SIGILL); + assert(try_v69hvx_vasrvwuhrndsat() =3D=3D SIGILL); + assert(try_v69hvx_vasrvwuhsat() =3D=3D SIGILL); + assert(try_v69hvx_vassign_tmp() =3D=3D SIGILL); + assert(try_v69hvx_vcombine_tmp() =3D=3D SIGILL); + assert(try_v69hvx_vmpyuhvs() =3D=3D SIGILL); + + assert(try_v73_callrh() =3D=3D SIGILL); + assert(try_v73_jumprh() =3D=3D SIGILL); + + assert(signals_handled =3D=3D expected_signals); + + puts("PASS"); + return EXIT_SUCCESS; +} diff --git a/tests/tcg/hexagon/Makefile.target b/tests/tcg/hexagon/Makefile= .target index 549c95082f6..09f0502abc5 100644 --- a/tests/tcg/hexagon/Makefile.target +++ b/tests/tcg/hexagon/Makefile.target @@ -81,6 +81,7 @@ HEX_TESTS +=3D test_vminh HEX_TESTS +=3D test_vpmpyh HEX_TESTS +=3D test_vspliceb =20 +HEX_TESTS +=3D check_rev_gating HEX_TESTS +=3D test_pnew_jump_loads =20 HEX_TESTS +=3D v68_scalar @@ -109,6 +110,11 @@ reg_mut: reg_mut.c hex_test.h test_pnew_jump_loads: test_pnew_jump_loads.c hex_test.h unaligned_pc: unaligned_pc.c =20 +# Compile for v66 so that the ELF selects a v66 CPU; the test then +# exercises revision gating by executing a v68 .word instruction. +check_rev_gating: check_rev_gating.c + $(CC) $(CFLAGS) -mv66 -O2 $< -o $@ $(LDFLAGS) + # This test has to be compiled for the -mv67t target usr: usr.c hex_test.h $(CC) $(CFLAGS) -mv67t -O2 -Wno-inline-asm -Wno-expansion-to-defined $< -= o $@ $(LDFLAGS) --=20 2.34.1 From nobody Sun Apr 26 08:13:17 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=1776998221; cv=none; d=zohomail.com; s=zohoarc; b=HEm4ZthHeboIJ9/vo/r7Z4s+6krJiDrEHgvf1P6bwQaLetHm8GX/5WSs5GjtbP7EP+y49AAwfycZRTN0vKqqBShxZgUl/eA7foSolPCHxOUYvryWWys7uET1smkwlEYthzmsUn7JbG23u+uTdIqd3eTIi/cpIhbv1+3AIR5CpHE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1776998221; 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=L7ciwO6Jf5NV8v05p0zKTmxlWptv9MnlOW6McB65lmg=; b=TTzObqacQRl7HJhxUfNxXOEeUxOiXkve9ZY3dnH2038Oz6cG+W8Nhe8t9RguK+ZkLG+LvaxmF0KszMI1nwRCWmqUB4Au+4byQjfHV1L5p/gY0TAg1bV0RbEOUvUhZIVoAuMM4pVx5X0C2SegT7nty4DsyyHRHTBtJ4+lml+XmS0= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1776998221576292.48417249609395; Thu, 23 Apr 2026 19:37:01 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wG6PB-0006mL-RY; Thu, 23 Apr 2026 22:36:33 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wG6P5-0006l3-EK for qemu-devel@nongnu.org; Thu, 23 Apr 2026 22:36:29 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wG6P3-0008L1-MN for qemu-devel@nongnu.org; Thu, 23 Apr 2026 22:36:27 -0400 Received: from pps.filterd (m0279863.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 63O0POQd154568 for ; Fri, 24 Apr 2026 02:36:24 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 4dqpf629gt-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 24 Apr 2026 02:36:24 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-2de07c12745so16310231eec.1 for ; Thu, 23 Apr 2026 19:36:24 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2e539fa6134sm31240868eec.3.2026.04.23.19.36.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 23 Apr 2026 19:36:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= L7ciwO6Jf5NV8v05p0zKTmxlWptv9MnlOW6McB65lmg=; b=VKjzwx7p5PBqaXK7 xbm5L/JiX+tAsLLtqvILtwPWUVlS7JQ8+ZTCSGgh20/PHS+XQ7uPIgaxtq9vnQ9F 3bAW9VIx0sNq5GT6gFuAqy8D6rad+amV34yD2aMihuELEH8CfWjfEu3KGZtNNZ7d LLa/TpscD6f8+7o6+UT3+SHDSD6FIXCrwcCRKje8Km0b/BPSNbuFspyFOKI1zKqv Y53clIzfvllmDaYdfxtmOskBa/AF288Jr4YWTcWn4FF6IFkJ/3EfrwvjhNx/Pnqy WyeGuECuCQ83uvd4EHvSp2BK7BhRJ6e9dVutsm8WXjNO0jtM3Bk/r4bohEf2SxVl FsJMYQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1776998183; x=1777602983; 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=L7ciwO6Jf5NV8v05p0zKTmxlWptv9MnlOW6McB65lmg=; b=FPYwprj76aLcLum2ZrcGJntzJJgRXyZbahBvVgMMvWgnhaV0+lL5OjEO2K/dBSE6ck NcPGFrJ+By9Uk2OuhyHeCCwVd5+G94Xu5A+xvjWPjmpJzUWsIsPjkwRf9gg/Ck8l4Ixv H9aPwX/Z4oeUm1yTfElBTagPP2+qQiBlDUEezOCq+a1qNBGgnyRX67N3tRXhGq9JAiau IZpWpB28iSLXlGCpP6LDcV8ozx4eprJxwTvqvCytPxL6+bcC9wH0zxZlQHTl6XG+o8ly RDsZ3W52lf1nle/iyJzNZ+198e8XY4HLVQx27Oa0jLAjBtGo7JA1rsWg1GwcIwDl2AB7 yAew== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776998183; x=1777602983; 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=L7ciwO6Jf5NV8v05p0zKTmxlWptv9MnlOW6McB65lmg=; b=ZnAroSxOlqhDYQLcJlLlbF5uLjTrDx3XTeFAz2y13pk5L7uJhWKoRt2OrsiE5ikbp3 sCpdXoK+mTJM9VfTfv9K2vmaSSN6vVOuqtA9e/1k8j8ZxSELvDjWKiKV+wXPH5Hdd7ih j1/Hh+c3K/UT8hPMFP1BbctI20HxX1fP0CanegdL5ycx+SgwDniZVd1tyx6TUjn14NAe L+AhwSBSeOI/SqEfGkvoKPutWAE7eOqXyK36MLZODCeJO2u884iVcG7ctx6NEuxfBzFz 8DSp8YvIiaAumtcQnTQbogeMN+3d8L8AzepwbW0iAAphWYN2kSu+Vhjd+0sIZVrwmu2F tzKQ== X-Gm-Message-State: AOJu0YwFnPxHw8NeYw0P/m0IiDVYQGfARTKWjl6DCzP+jOVR8ZDmrfES YL67HcR/IPfTn6T6Cv7Yg7gP8rkxZKqMR5/OeeBYO+6IwKtZH10/PrqOmBinbyjXvIguX9BLLHi Wn1AierxVvpteOObraKHJYMF5+uwLJRTl+IiPdk3axLG0xl/++DUhMzgKFvvt9FDgzw== X-Gm-Gg: AeBDiessNBn0PvMqFHDPflDnKNJWV8V0LESGJcULh/YUq+ZRNq1KTesUOqQjQlCXfrL 7IRGi9RGxtkE+2TmY36vBs6ggyVdnvO0BoiQ5q3VRYRflbmcPQVYu6RoFb4d4VGZLq0RhBNEA0G m3l9AR/5PjGlbEFk2h6D/sKiUEtz5bHZfgCmn0h9c6cmswlBt6iyPCUnfmtBm4XHf89N5ug50gX EhHnNZ5lq3Hm+ZzhtfIsiOMZbSJEBRjSwI4J99IM9+v9/5gDmMrN84lIAbqCJe2OuImd/hTJ4Xu xIIF6YyDFkEbn8/fuSuU0aLwSTHWZNZpyMVd5FFXjLGXdxXG5Vw8fiBZhcuMfgKblgb2fMz+9Op EIk/rrbSoaXjTlbPyAHBe4xbZf1DwauO46PgtL4nI+G2jbwN8h9gwiuWTxvCjzBs23eS3LaVxc9 +baI3i X-Received: by 2002:a05:7300:8c9f:b0:2e2:3381:2fba with SMTP id 5a478bee46e88-2e4660475e5mr15679675eec.3.1776998183524; Thu, 23 Apr 2026 19:36:23 -0700 (PDT) X-Received: by 2002:a05:7300:8c9f:b0:2e2:3381:2fba with SMTP id 5a478bee46e88-2e4660475e5mr15679665eec.3.1776998182993; Thu, 23 Apr 2026 19:36:22 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Taylor Simpson , Anton Johansson , Pierrick Bouvier Subject: [PULL 8/9] Hexagon (target/hexagon) Remove snprint_a_pkt_debug Date: Thu, 23 Apr 2026 19:36:05 -0700 Message-Id: <20260424023606.2556830-9-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260424023606.2556830-1-brian.cain@oss.qualcomm.com> References: <20260424023606.2556830-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=Iocutr/g c=1 sm=1 tr=0 ts=69ead728 cx=c_pps a=Uww141gWH0fZj/3QKPojxA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yOCtJkima9RkubShWh1s:22 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=8ZBzTUssO9REyHtisiwA:9 a=QEXdDO2ut3YA:10 a=PxkB5W3o20Ba91AHUih5:22 X-Proofpoint-ORIG-GUID: 798P2SToZo4UR9rpfA89EnXRbFFoA7q_ X-Proofpoint-GUID: 798P2SToZo4UR9rpfA89EnXRbFFoA7q_ X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDI0MDAyMCBTYWx0ZWRfXwFa3/bNHaDOl xmiHCNSRnwja258veu6lN2YKnbjiLHTEFBcSiSJx+A9JwBA0WJyZe7CRbv9XHlYZzfzM0HXjDtF Mdw8DHXflc6ZqjQTvxn11pFNzWsOpH+a4dl7EVaG6eOOtgJeIchsUVzig+u7a1bEgmVAyDel0XE VPeIO2kSP+nrWLwM6oPtR+nnpdiPK/iqBfp8fkc0TSSNece256hk8bpu3QdkTrqarpjPnyj9FcS 8LoXB7P/ujM9j/XxaW/ByoGoxo7ccROLzf7M+7R+QXdIoss4AxRxsr8an9PwJpAw91X5xwLxuct OxOa5czka7pMwNWuBMGuTVNatvZV5OagiQ8KHpX3NNoScTz43a5yZ7m3uOJdvJ6DRh99o0yKt3J JDCdnndJ8FxcrXog7J1Sn/5TKeU10O/16duVOHwAQEHPTDwDLh9u4DR7D3SmDQNPLalzPTrHCNp QjZ/77uip4E9R/JYKEQ== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-04-23_03,2026-04-21_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 malwarescore=0 phishscore=0 bulkscore=0 spamscore=0 suspectscore=0 priorityscore=1501 lowpriorityscore=0 clxscore=1015 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604200000 definitions=main-2604240020 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1776998224943158500 From: Taylor Simpson Function is not used Signed-off-by: Taylor Simpson Reviewed-by: Anton Johansson Signed-off-by: Brian Cain --- target/hexagon/printinsn.h | 1 - target/hexagon/printinsn.c | 31 ------------------------------- 2 files changed, 32 deletions(-) diff --git a/target/hexagon/printinsn.h b/target/hexagon/printinsn.h index 6f84ef93c3b..de962b5f2e6 100644 --- a/target/hexagon/printinsn.h +++ b/target/hexagon/printinsn.h @@ -23,6 +23,5 @@ =20 void snprint_a_pkt_disas(GString *buf, Packet *pkt, uint32_t *words, target_ulong pc, const HexagonCPUDef *hex_def); -void snprint_a_pkt_debug(GString *buf, Packet *pkt); =20 #endif diff --git a/target/hexagon/printinsn.c b/target/hexagon/printinsn.c index 22b305f018e..a7e46f4bcd9 100644 --- a/target/hexagon/printinsn.c +++ b/target/hexagon/printinsn.c @@ -118,34 +118,3 @@ void snprint_a_pkt_disas(GString *buf, Packet *pkt, ui= nt32_t *words, g_string_append(buf, " :endloop01"); } } - -void snprint_a_pkt_debug(GString *buf, Packet *pkt) -{ - int slot, opcode; - - if (pkt->num_insns > 1) { - g_string_append(buf, "\n{\n"); - } - - for (int i =3D 0; i < pkt->num_insns; i++) { - if (pkt->insn[i].part1) { - continue; - } - g_string_append(buf, "\t"); - snprintinsn(buf, &(pkt->insn[i])); - - if (GET_ATTRIB(pkt->insn[i].opcode, A_SUBINSN)) { - g_string_append(buf, " //subinsn"); - } - if (pkt->insn[i].extension_valid) { - g_string_append(buf, " //constant extended"); - } - slot =3D pkt->insn[i].slot; - opcode =3D pkt->insn[i].opcode; - g_string_append_printf(buf, " //slot=3D%d:tag=3D%s\n", - slot, opcode_names[opcode]); - } - if (pkt->num_insns > 1) { - g_string_append(buf, "}\n"); - } -} --=20 2.34.1 From nobody Sun Apr 26 08:13:17 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=1776998262; cv=none; d=zohomail.com; s=zohoarc; b=K44MpTq+ijKiq5wDkI6lzr0OU6wA03eXHr7WnvAUVh5QZgmJ9JaGL75NCoakIaqw9bZ54rFwNzaARDdtivqkFPxd2CPMX5yQ7gH9ziX61rDssOkviVXcwD+peoru91bwJcxgDB/Rz1Af4n23tbV+JPdoegOmz5e5poGOyZ9DegQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1776998262; 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=VujU7vhICdn0VbC76Npws9a7ERKyxtMphdzoz9pR6rc=; b=lL+ksRmq0dcH20/q9LAWMS5jZGHB+7miFXPuPl367W7OXO8qmJMNtw11XqqfGWvcurb7NHJQYvb1zFiKXcS53X/cm+ArHgemZhvoDU648gz8DOQ0Wz+4vklywf+agGJAaxW5Y+Q0fecJMyAEUj3gHU5HLOv085L1gW2aIzYUjew= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 17769982623271008.8324576903822; Thu, 23 Apr 2026 19:37:42 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wG6PF-0006n1-5E; Thu, 23 Apr 2026 22:36:37 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wG6P8-0006lm-2t for qemu-devel@nongnu.org; Thu, 23 Apr 2026 22:36:30 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wG6P5-0008LO-BM for qemu-devel@nongnu.org; Thu, 23 Apr 2026 22:36:29 -0400 Received: from pps.filterd (m0279868.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 63NHgA4Y1533417 for ; Fri, 24 Apr 2026 02:36:26 GMT Received: from mail-dl1-f72.google.com (mail-dl1-f72.google.com [74.125.82.72]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4dqr26hvh4-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 24 Apr 2026 02:36:26 +0000 (GMT) Received: by mail-dl1-f72.google.com with SMTP id a92af1059eb24-12c66fdd4aeso10992929c88.0 for ; Thu, 23 Apr 2026 19:36:25 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2e539fa6134sm31240868eec.3.2026.04.23.19.36.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 23 Apr 2026 19:36:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= VujU7vhICdn0VbC76Npws9a7ERKyxtMphdzoz9pR6rc=; b=QpSjck2b9OIr5PCu W6B9E9uGk086ygwlWPF+qTDuaZqac0s5/zRbHDx3s+U/dCiCVnCQN9THeGArnlp1 xQABCSFQUFrS6jH/VRQrZcJXAcnCltrOBPjdb1Psn3r5w0P4qLHxcGNj0sOxzk45 aeDFLWqF84ekirjCQb+JgFIhRvGAXXgE6Hwpv4Wqsyaxg78TTyakcFiNc0jVGq66 99V3mJS9NcatKXWzXB0mrnN/Gh5Wqjea57gctahAvyXOmC8V7J4d+TSJVjzimMIC 1Tze4Xx96EGR5pud9RYJ+ZH6yqxdFAOHMsevhIkHUmYE3w/G4fiKQJOrcRvS42kY XxQzHQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1776998185; x=1777602985; 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=VujU7vhICdn0VbC76Npws9a7ERKyxtMphdzoz9pR6rc=; b=aQBLCqPmoM9ZF3nam7Dg1wUdBuySHQJAua4t0hX79GwyHQNo3fsoQjG0desDkQBLLh dWtTnX/FlaVLK8Ur76lDY0giqDsKJsHBYHW7EV6iLbk6vtI2j+WI9NVT6wbI9j/n0oFw VDScxIbJD+HHV5px+GlIc5a1kzT8qLA7JWLJqt6b/1RmuQ9JAv+GEM1+ulEtJq5OoAep QkrbIfgKKhrQF1ogAb1FfGL5T75TcufZ7G3MJJZA0ZciVC9T3m9fBeS5Kduq83pbS/gQ DxDP1F8b5pYbQ5Y5RvVKcGVH5ROk9iUE+ltjsj3dXl8ZKb4g9/DMZoRmwvnYKg4AiF2J +/gg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776998185; x=1777602985; 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=VujU7vhICdn0VbC76Npws9a7ERKyxtMphdzoz9pR6rc=; b=GhsCEMXaikLhdQnW+tKkgtJfx6Cmkj3T6iLBAqnPcAcqkUcI00vUaw71C9SX6tmWVa RX+Lc/NmtUFR2/Vz3Cfi4CXp3Igep4txR+Mz56/JQ1SgJissfnt1IzMO/bO87738DCVw oZaxX6rD0UMuJ/8NvDe3vPrj67Z8/ne1yX79ov67j5SLCh4KdyQ6e0BfOX8Dk0oUnXp6 z1vOLPnKygtpCmNLNCJAzTLqEFomAK/EEQSUzs2jLjaE+Z6fqdUMKoTK0sATwu5YFFpk PTaj2kKfBNI8qYXW0Ys1kV+2CvYOUFOB6T623fPzGUW1vxDfbuk5LeAhDELMfKORW/a0 FMUw== X-Gm-Message-State: AOJu0YxThgjO3Fuaedty8YF9B0zsk94Jo0idlJcHQ9bp5bVlR5gPyjZc E/QK857c73twMj63lWFlvk9ZubgzOVv2CLFYkiHXIXrk7KdStvwMigovjvfBmhIv1ba5OPMlsKP s6dU2eDkAipHnwFx7GpfGHPfgZCiIrzfUAODqA4mqHrDs0hdV5Tj/3abrtHKhXYUFRg== X-Gm-Gg: AeBDieuDGm6+7m+Y2EEVUYw+FC1EMuB9Z3GyjgiW9EGT0DpgGiWoQkLKthnKMY2INXh TkSRXlvPZ9vj5scTca5dyVWQ+Loih4wgxsMMau3+0tTe/54t1/tWgm5uh12XeDYvCY53XoYNflo qyCLzbQBS2V9Ad8fCa3a/eFNzbXV1L7s97zViuzJg7tJZzGexNZ/iEUjMJgg3PE6tWE+KfT8IwF /rtjOmO/qB/8Bj6ZEpVtZ6wJvClO2aaNH6CFiabAFQ5bsrTvY73r11erWT7i3wyTSqebDc7mLv4 bmbqPnH7OKfjLdox4wd3yZaQWtb3Riw2+qNeFGXglIlHQ8c0DbSXuy6mkzGcz2OX4dv8ewD0xVh 0pyDUNCR5OXUJl6r5KhL/5OQORCsihxfA6KDPVBlSWiLswcTZL6FtmihJfDS9dwP0Im+BVlrqp7 RhyiyT X-Received: by 2002:a05:7022:68d:b0:12c:34b9:61bc with SMTP id a92af1059eb24-12c73f69648mr13784620c88.5.1776998184652; Thu, 23 Apr 2026 19:36:24 -0700 (PDT) X-Received: by 2002:a05:7022:68d:b0:12c:34b9:61bc with SMTP id a92af1059eb24-12c73f69648mr13784602c88.5.1776998183970; Thu, 23 Apr 2026 19:36:23 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com Cc: brian.cain@oss.qualcomm.com, Marco Liebel , Pierrick Bouvier Subject: [PULL 9/9] target/hexagon: Change DisasContext packet type Date: Thu, 23 Apr 2026 19:36:06 -0700 Message-Id: <20260424023606.2556830-10-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260424023606.2556830-1-brian.cain@oss.qualcomm.com> References: <20260424023606.2556830-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: 0vAjtC4CI8mIFDjZmBEBJyvRr4aOP8g1 X-Authority-Analysis: v=2.4 cv=QLhYgALL c=1 sm=1 tr=0 ts=69ead72a cx=c_pps a=bS7HVuBVfinNPG3f6cIo3Q==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=EUspDBNiAAAA:8 a=9JcS4vm5jFv34pll-oUA:9 a=QEXdDO2ut3YA:10 a=vBUdepa8ALXHeOFLBtFW:22 X-Proofpoint-GUID: 0vAjtC4CI8mIFDjZmBEBJyvRr4aOP8g1 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDI0MDAyMCBTYWx0ZWRfX89/rAh1fDK5q qYQqihRBbQ75uoH14j6HvXS+dffm1FWFbXiu+KQjckEjGP9oRXGBvczQFQdfN3YyYhSS7TiYBLD sO+yQ+0Cu/b1E2yCbsmim4FydZCsPjEq4eylD/8Sl7a0fOK2gW5FsJZpJVkc4S1XN8PZ7hmTGcB ncjElatXIMZJ87COnrosyA92sL5GamNCA8l7ZlVOwny14cFSuMhnjPwriF8Z+2jEZqkmdVJjdGL 0q9vb8Za9ZTsWu/YHlkmJIJfhHEd4BxC+gtXUpLH0Ln/a9mSs2AzUG23GdSzTqeVvJzajFmeiwz gLlKXzDOi3x4Bfu1NLarVbod758PbWyOPdyq+g6qm12TaY4q3m3B31N0EKtNdE/UgcHiCxca/d8 iPhHQ1AoFcVidhkIaVHAZ1r/S5rFMhi59Q+uKzbykf6H+tl+iO5lENyK1MOeAofLy0Igi9H/xCB S7a9PYX6E5bVn5arAHw== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-04-23_03,2026-04-21_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 spamscore=0 suspectscore=0 phishscore=0 bulkscore=0 lowpriorityscore=0 malwarescore=0 adultscore=0 clxscore=1015 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604200000 definitions=main-2604240020 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1776998263410154100 From: Marco Liebel The pkt variable inside DisasContext is of type Packet * and gets assigned to a local variable in decode_and_translate_packet. Right now there seems to be no problem with it but future changes to e.g. hexagon_tr_transalte_packet are potentially dangerous if pkt is accessed after the local variable goes out of scope. Since packets are being translated one at a time, the type of pkt can be changed to just Packet to avoid risk of having a dangling pointer. Signed-off-by: Marco Liebel Reviewed-by: Brian Cain Signed-off-by: Brian Cain --- target/hexagon/gen_tcg.h | 2 +- target/hexagon/macros.h | 6 +- target/hexagon/translate.h | 2 +- target/hexagon/decode.c | 8 +-- target/hexagon/genptr.c | 14 ++-- target/hexagon/translate.c | 113 ++++++++++++++------------------ target/hexagon/gen_tcg_funcs.py | 2 +- target/hexagon/hex_common.py | 4 +- 8 files changed, 66 insertions(+), 85 deletions(-) diff --git a/target/hexagon/gen_tcg.h b/target/hexagon/gen_tcg.h index 1e0cc3b29a8..0159e5c2d5f 100644 --- a/target/hexagon/gen_tcg.h +++ b/target/hexagon/gen_tcg.h @@ -1343,7 +1343,7 @@ #define fGEN_TCG_J2_trap0(SHORTCODE) \ do { \ uiV =3D uiV; \ - tcg_gen_movi_tl(hex_gpr[HEX_REG_PC], ctx->pkt->pc); \ + tcg_gen_movi_tl(hex_gpr[HEX_REG_PC], ctx->pkt.pc); \ TCGv excp =3D tcg_constant_tl(HEX_EVENT_TRAP0); \ gen_helper_raise_exception(tcg_env, excp); \ } while (0) diff --git a/target/hexagon/macros.h b/target/hexagon/macros.h index 6c2862a2320..eebfe1e5ed9 100644 --- a/target/hexagon/macros.h +++ b/target/hexagon/macros.h @@ -83,7 +83,7 @@ */ #define CHECK_NOSHUF(VA, SIZE) \ do { \ - if (insn->slot =3D=3D 0 && ctx->pkt->pkt_has_scalar_store_s1) { \ + if (insn->slot =3D=3D 0 && ctx->pkt.pkt_has_scalar_store_s1) { \ probe_noshuf_load(VA, SIZE, ctx->mem_idx); \ process_store(ctx, 1); \ } \ @@ -94,11 +94,11 @@ TCGLabel *noshuf_label =3D gen_new_label(); \ tcg_gen_brcondi_tl(TCG_COND_EQ, PRED, 0, noshuf_label); \ GET_EA; \ - if (insn->slot =3D=3D 0 && ctx->pkt->pkt_has_scalar_store_s1) { \ + if (insn->slot =3D=3D 0 && ctx->pkt.pkt_has_scalar_store_s1) { \ probe_noshuf_load(EA, SIZE, ctx->mem_idx); \ } \ gen_set_label(noshuf_label); \ - if (insn->slot =3D=3D 0 && ctx->pkt->pkt_has_scalar_store_s1) { \ + if (insn->slot =3D=3D 0 && ctx->pkt.pkt_has_scalar_store_s1) { \ process_store(ctx, 1); \ } \ } while (0) diff --git a/target/hexagon/translate.h b/target/hexagon/translate.h index 9cdcbd64164..1fc185e3edd 100644 --- a/target/hexagon/translate.h +++ b/target/hexagon/translate.h @@ -28,7 +28,7 @@ =20 typedef struct DisasContext { DisasContextBase base; - Packet *pkt; + Packet pkt; Insn *insn; const HexagonCPUDef *hex_def; uint32_t next_PC; diff --git a/target/hexagon/decode.c b/target/hexagon/decode.c index c4cf430e5a2..15954518b83 100644 --- a/target/hexagon/decode.c +++ b/target/hexagon/decode.c @@ -834,15 +834,13 @@ int disassemble_hexagon(uint32_t *words, int nwords, = bfd_vma pc, .hex_version =3D HEX_VER_ANY, /* Allow decode to accept anything = */ }; DisasContext ctx; - Packet pkt; =20 memset(&ctx, 0, sizeof(DisasContext)); ctx.hex_def =3D &any_def; - ctx.pkt =3D &pkt; =20 - if (decode_packet(&ctx, nwords, words, &pkt, true) > 0) { - snprint_a_pkt_disas(buf, &pkt, words, pc, hex_def); - return pkt.encod_pkt_size_in_bytes; + if (decode_packet(&ctx, nwords, words, &ctx.pkt, true) > 0) { + snprint_a_pkt_disas(buf, &ctx.pkt, words, pc, hex_def); + return ctx.pkt.encod_pkt_size_in_bytes; } else { for (int i =3D 0; i < nwords; i++) { g_string_append_printf(buf, "0x" TARGET_FMT_lx "\t", words[i]); diff --git a/target/hexagon/genptr.c b/target/hexagon/genptr.c index c7b9436c8d4..5d5adace4b3 100644 --- a/target/hexagon/genptr.c +++ b/target/hexagon/genptr.c @@ -382,7 +382,7 @@ static inline void gen_store_conditional8(DisasContext = *ctx, static TCGv gen_slotval(DisasContext *ctx) { int slotval =3D - (ctx->pkt->pkt_has_scalar_store_s1 & 1) | (ctx->insn->slot << 1); + (ctx->pkt.pkt_has_scalar_store_s1 & 1) | (ctx->insn->slot << 1); return tcg_constant_tl(slotval); } #endif @@ -458,7 +458,7 @@ static void gen_write_new_pc_addr(DisasContext *ctx, TC= Gv addr, tcg_gen_brcondi_tl(cond, pred, 1, pred_false); } =20 - if (ctx->pkt->pkt_has_multi_cof) { + if (ctx->pkt.pkt_has_multi_cof) { /* If there are multiple branches in a packet, ignore the second o= ne */ tcg_gen_movcond_tl(TCG_COND_NE, hex_gpr[HEX_REG_PC], ctx->branch_taken, tcg_constant_tl(0), @@ -476,8 +476,8 @@ static void gen_write_new_pc_addr(DisasContext *ctx, TC= Gv addr, static void gen_write_new_pc_pcrel(DisasContext *ctx, int pc_off, TCGCond cond, TCGv pred) { - target_ulong dest =3D ctx->pkt->pc + pc_off; - if (ctx->pkt->pkt_has_multi_cof) { + target_ulong dest =3D ctx->pkt.pc + pc_off; + if (ctx->pkt.pkt_has_multi_cof) { gen_write_new_pc_addr(ctx, tcg_constant_tl(dest), cond, pred); } else { /* Defer this jump to the end of the TB */ @@ -528,7 +528,7 @@ static inline void gen_loop0r(DisasContext *ctx, TCGv R= sV, int riV) fIMMEXT(riV); fPCALIGN(riV); tcg_gen_mov_tl(get_result_gpr(ctx, HEX_REG_LC0), RsV); - tcg_gen_movi_tl(get_result_gpr(ctx, HEX_REG_SA0), ctx->pkt->pc + riV); + tcg_gen_movi_tl(get_result_gpr(ctx, HEX_REG_SA0), ctx->pkt.pc + riV); gen_set_usr_fieldi(ctx, USR_LPCFG, 0); } =20 @@ -542,7 +542,7 @@ static inline void gen_loop1r(DisasContext *ctx, TCGv R= sV, int riV) fIMMEXT(riV); fPCALIGN(riV); tcg_gen_mov_tl(get_result_gpr(ctx, HEX_REG_LC1), RsV); - tcg_gen_movi_tl(get_result_gpr(ctx, HEX_REG_SA1), ctx->pkt->pc + riV); + tcg_gen_movi_tl(get_result_gpr(ctx, HEX_REG_SA1), ctx->pkt.pc + riV); } =20 static void gen_loop1i(DisasContext *ctx, int count, int riV) @@ -555,7 +555,7 @@ static void gen_ploopNsr(DisasContext *ctx, int N, TCGv= RsV, int riV) fIMMEXT(riV); fPCALIGN(riV); tcg_gen_mov_tl(get_result_gpr(ctx, HEX_REG_LC0), RsV); - tcg_gen_movi_tl(get_result_gpr(ctx, HEX_REG_SA0), ctx->pkt->pc + riV); + tcg_gen_movi_tl(get_result_gpr(ctx, HEX_REG_SA0), ctx->pkt.pc + riV); gen_set_usr_fieldi(ctx, USR_LPCFG, N); gen_pred_write(ctx, 3, tcg_constant_tl(0)); } diff --git a/target/hexagon/translate.c b/target/hexagon/translate.c index 12c82fd6c5a..f26281e6711 100644 --- a/target/hexagon/translate.c +++ b/target/hexagon/translate.c @@ -156,8 +156,6 @@ static void gen_goto_tb(DisasContext *ctx, unsigned tb_= slot_idx, =20 static void gen_end_tb(DisasContext *ctx) { - Packet *pkt =3D ctx->pkt; - gen_exec_counters(ctx); =20 if (ctx->branch_cond !=3D TCG_COND_NEVER) { @@ -171,7 +169,7 @@ static void gen_end_tb(DisasContext *ctx) gen_goto_tb(ctx, 0, ctx->branch_dest, true); } } else if (ctx->is_tight_loop && - pkt->insn[pkt->num_insns - 1].opcode =3D=3D J2_endloop0) { + ctx->pkt.insn[ctx->pkt.num_insns - 1].opcode =3D=3D J2_endl= oop0) { /* * When we're in a tight loop, we defer the endloop0 processing * to take advantage of direct block chaining @@ -266,11 +264,9 @@ static bool need_slot_cancelled(Packet *pkt) =20 static bool need_next_PC(DisasContext *ctx) { - Packet *pkt =3D ctx->pkt; - /* Check for conditional control flow or HW loop end */ - for (int i =3D 0; i < pkt->num_insns; i++) { - uint16_t opcode =3D pkt->insn[i].opcode; + for (int i =3D 0; i < ctx->pkt.num_insns; i++) { + uint16_t opcode =3D ctx->pkt.insn[i].opcode; if (GET_ATTRIB(opcode, A_CONDEXEC) && GET_ATTRIB(opcode, A_COF)) { return true; } @@ -353,8 +349,6 @@ static bool pkt_raises_exception(Packet *pkt) =20 static bool need_commit(DisasContext *ctx) { - Packet *pkt =3D ctx->pkt; - /* * If the short-circuit property is set to false, we'll always do the = commit */ @@ -362,7 +356,7 @@ static bool need_commit(DisasContext *ctx) return true; } =20 - if (pkt_raises_exception(pkt)) { + if (pkt_raises_exception(&ctx->pkt)) { return true; } =20 @@ -409,11 +403,10 @@ static void mark_implicit_writes(DisasContext *ctx) =20 static void analyze_packet(DisasContext *ctx) { - Packet *pkt =3D ctx->pkt; ctx->read_after_write =3D false; ctx->has_hvx_overlap =3D false; - for (int i =3D 0; i < pkt->num_insns; i++) { - Insn *insn =3D &pkt->insn[i]; + for (int i =3D 0; i < ctx->pkt.num_insns; i++) { + Insn *insn =3D &ctx->pkt.insn[i]; ctx->insn =3D insn; if (opcode_analyze[insn->opcode]) { opcode_analyze[insn->opcode](ctx); @@ -425,8 +418,7 @@ static void analyze_packet(DisasContext *ctx) =20 static void gen_start_packet(DisasContext *ctx) { - Packet *pkt =3D ctx->pkt; - target_ulong next_PC =3D ctx->base.pc_next + pkt->encod_pkt_size_in_by= tes; + target_ulong next_PC =3D ctx->base.pc_next + ctx->pkt.encod_pkt_size_i= n_bytes; int i; =20 /* Clear out the disassembly context */ @@ -468,13 +460,13 @@ static void gen_start_packet(DisasContext *ctx) bitmap_zero(ctx->pregs_written, NUM_PREGS); =20 /* Initialize the runtime state for packet semantics */ - if (need_slot_cancelled(pkt)) { + if (need_slot_cancelled(&ctx->pkt)) { tcg_gen_movi_tl(hex_slot_cancelled, 0); } ctx->branch_taken =3D NULL; - if (pkt->pkt_has_cof) { + if (ctx->pkt.pkt_has_cof) { ctx->branch_taken =3D tcg_temp_new(); - if (pkt->pkt_has_multi_cof) { + if (ctx->pkt.pkt_has_multi_cof) { tcg_gen_movi_tl(ctx->branch_taken, 0); } if (need_next_PC(ctx)) { @@ -503,7 +495,7 @@ static void gen_start_packet(DisasContext *ctx) * Preload the predicated pred registers into ctx->new_pred_value[pred= _num] * Only endloop instructions conditionally write to pred registers */ - if (ctx->need_commit && pkt->pkt_has_endloop) { + if (ctx->need_commit && ctx->pkt.pkt_has_endloop) { for (i =3D 0; i < ctx->preg_log_idx; i++) { int pred_num =3D ctx->preg_log[i]; ctx->new_pred_value[pred_num] =3D tcg_temp_new(); @@ -542,13 +534,11 @@ static void gen_start_packet(DisasContext *ctx) =20 bool is_gather_store_insn(DisasContext *ctx) { - Packet *pkt =3D ctx->pkt; - Insn *insn =3D ctx->insn; - if (GET_ATTRIB(insn->opcode, A_CVI_NEW) && - insn->new_value_producer_slot =3D=3D 1) { + if (GET_ATTRIB(ctx->insn->opcode, A_CVI_NEW) && + ctx->insn->new_value_producer_slot =3D=3D 1) { /* Look for gather instruction */ - for (int i =3D 0; i < pkt->num_insns; i++) { - Insn *in =3D &pkt->insn[i]; + for (int i =3D 0; i < ctx->pkt.num_insns; i++) { + Insn *in =3D &ctx->pkt.insn[i]; if (GET_ATTRIB(in->opcode, A_CVI_GATHER) && in->slot =3D=3D 1)= { return true; } @@ -651,7 +641,7 @@ static bool slot_is_predicated(Packet *pkt, int slot_nu= m) =20 void process_store(DisasContext *ctx, int slot_num) { - bool is_predicated =3D slot_is_predicated(ctx->pkt, slot_num); + bool is_predicated =3D slot_is_predicated(&ctx->pkt, slot_num); TCGLabel *label_end =3D NULL; =20 /* @@ -728,13 +718,12 @@ static void process_store_log(DisasContext *ctx) * slot 1 and then slot 0. This will be important when * the memory accesses overlap. */ - Packet *pkt =3D ctx->pkt; - if (pkt->pkt_has_scalar_store_s1) { - g_assert(!pkt->pkt_has_dczeroa); + if (ctx->pkt.pkt_has_scalar_store_s1) { + g_assert(!ctx->pkt.pkt_has_dczeroa); process_store(ctx, 1); } - if (pkt->pkt_has_scalar_store_s0) { - g_assert(!pkt->pkt_has_dczeroa); + if (ctx->pkt.pkt_has_scalar_store_s0) { + g_assert(!ctx->pkt.pkt_has_dczeroa); process_store(ctx, 0); } } @@ -742,7 +731,7 @@ static void process_store_log(DisasContext *ctx) /* Zero out a 32-bit cache line */ static void process_dczeroa(DisasContext *ctx) { - if (ctx->pkt->pkt_has_dczeroa) { + if (ctx->pkt.pkt_has_dczeroa) { /* Store 32 bytes of zero starting at (addr & ~0x1f) */ TCGv addr =3D tcg_temp_new(); TCGv_i64 zero =3D tcg_constant_i64(0); @@ -776,7 +765,7 @@ static void gen_commit_hvx(DisasContext *ctx) =20 /* Early exit if not needed */ if (!ctx->need_commit) { - g_assert(!pkt_has_hvx_store(ctx->pkt)); + g_assert(!pkt_has_hvx_store(&ctx->pkt)); return; } =20 @@ -810,25 +799,23 @@ static void gen_commit_hvx(DisasContext *ctx) tcg_gen_gvec_mov(MO_64, dstoff, srcoff, size, size); } =20 - if (pkt_has_hvx_store(ctx->pkt)) { + if (pkt_has_hvx_store(&ctx->pkt)) { gen_helper_commit_hvx_stores(tcg_env); } } =20 static void update_exec_counters(DisasContext *ctx) { - Packet *pkt =3D ctx->pkt; - int num_insns =3D pkt->num_insns; int num_real_insns =3D 0; int num_hvx_insns =3D 0; =20 - for (int i =3D 0; i < num_insns; i++) { - if (!pkt->insn[i].is_endloop && - !pkt->insn[i].part1 && - !GET_ATTRIB(pkt->insn[i].opcode, A_IT_NOP)) { + for (int i =3D 0; i < ctx->pkt.num_insns; i++) { + if (!ctx->pkt.insn[i].is_endloop && + !ctx->pkt.insn[i].part1 && + !GET_ATTRIB(ctx->pkt.insn[i].opcode, A_IT_NOP)) { num_real_insns++; } - if (GET_ATTRIB(pkt->insn[i].opcode, A_CVI)) { + if (GET_ATTRIB(ctx->pkt.insn[i].opcode, A_CVI)) { num_hvx_insns++; } } @@ -857,12 +844,11 @@ static void gen_commit_packet(DisasContext *ctx) * store. Therefore, we call process_store_log before anything else * involved in committing the packet. */ - Packet *pkt =3D ctx->pkt; - bool has_store_s0 =3D pkt->pkt_has_scalar_store_s0; + bool has_store_s0 =3D ctx->pkt.pkt_has_scalar_store_s0; bool has_store_s1 =3D - (pkt->pkt_has_scalar_store_s1 && !ctx->s1_store_processed); - bool has_hvx_store =3D pkt_has_hvx_store(pkt); - if (pkt->pkt_has_dczeroa) { + (ctx->pkt.pkt_has_scalar_store_s1 && !ctx->s1_store_processed); + bool has_hvx_store =3D pkt_has_hvx_store(&ctx->pkt); + if (ctx->pkt.pkt_has_dczeroa) { /* * The dczeroa will be the store in slot 0, check that we don't ha= ve * a store in slot 1 or an HVX store. @@ -889,12 +875,11 @@ static void gen_commit_packet(DisasContext *ctx) FIELD_DP32(mask, PROBE_PKT_SCALAR_HVX_STORES, HAS_HVX_STORES, 1); } - if (has_store_s0 && slot_is_predicated(pkt, 0)) { - mask =3D - FIELD_DP32(mask, PROBE_PKT_SCALAR_HVX_STORES, - S0_IS_PRED, 1); + if (has_store_s0 && slot_is_predicated(&ctx->pkt, 0)) { + mask =3D FIELD_DP32(mask, PROBE_PKT_SCALAR_HVX_STORES, S0_= IS_PRED, + 1); } - if (has_store_s1 && slot_is_predicated(pkt, 1)) { + if (has_store_s1 && slot_is_predicated(&ctx->pkt, 1)) { mask =3D FIELD_DP32(mask, PROBE_PKT_SCALAR_HVX_STORES, S1_IS_PRED, 1); @@ -912,7 +897,7 @@ static void gen_commit_packet(DisasContext *ctx) int args =3D 0; args =3D FIELD_DP32(args, PROBE_PKT_SCALAR_STORE_S0, MMU_IDX, ctx->mem_= idx); - if (slot_is_predicated(pkt, 0)) { + if (slot_is_predicated(&ctx->pkt, 0)) { args =3D FIELD_DP32(args, PROBE_PKT_SCALAR_STORE_S0, IS_PREDICATED,= 1); } @@ -924,18 +909,18 @@ static void gen_commit_packet(DisasContext *ctx) =20 gen_reg_writes(ctx); gen_pred_writes(ctx); - if (pkt->pkt_has_hvx) { + if (ctx->pkt.pkt_has_hvx) { gen_commit_hvx(ctx); } update_exec_counters(ctx); =20 - if (pkt->vhist_insn !=3D NULL) { + if (ctx->pkt.vhist_insn !=3D NULL) { ctx->pre_commit =3D false; - ctx->insn =3D pkt->vhist_insn; - pkt->vhist_insn->generate(ctx); + ctx->insn =3D ctx->pkt.vhist_insn; + ctx->pkt.vhist_insn->generate(ctx); } =20 - if (pkt->pkt_has_cof) { + if (ctx->pkt.pkt_has_cof) { gen_end_tb(ctx); } } @@ -944,7 +929,6 @@ static void decode_and_translate_packet(CPUHexagonState= *env, DisasContext *ctx) { uint32_t words[PACKET_WORDS_MAX]; int nwords, words_read; - Packet pkt; int i; =20 nwords =3D read_packet_words(env, ctx, words); @@ -953,22 +937,21 @@ static void decode_and_translate_packet(CPUHexagonSta= te *env, DisasContext *ctx) return; } =20 - ctx->pkt =3D &pkt; - words_read =3D decode_packet(ctx, nwords, words, &pkt, false); + words_read =3D decode_packet(ctx, nwords, words, &ctx->pkt, false); if (words_read > 0) { - pkt.pc =3D ctx->base.pc_next; - if (pkt.pkt_has_write_conflict) { + ctx->pkt.pc =3D ctx->base.pc_next; + if (ctx->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]; + for (i =3D 0; i < ctx->pkt.num_insns; i++) { + ctx->insn =3D &ctx->pkt.insn[i]; gen_insn(ctx); } gen_commit_packet(ctx); - ctx->base.pc_next +=3D pkt.encod_pkt_size_in_bytes; + ctx->base.pc_next +=3D ctx->pkt.encod_pkt_size_in_bytes; } else { gen_exception_decode_fail(ctx, nwords, HEX_CAUSE_INVALID_PACKET); } diff --git a/target/hexagon/gen_tcg_funcs.py b/target/hexagon/gen_tcg_funcs= .py index 87b7f10d7fd..e7f90a0da11 100755 --- a/target/hexagon/gen_tcg_funcs.py +++ b/target/hexagon/gen_tcg_funcs.py @@ -72,7 +72,7 @@ def gen_tcg_func(f, tag, regs, imms): for immlett, bits, immshift in imms: declared.append(hex_common.imm_name(immlett)) =20 - arguments =3D ", ".join(["ctx", "ctx->insn", "ctx->pkt"] + declare= d) + arguments =3D ", ".join(["ctx", "ctx->insn", "&ctx->pkt"] + declar= ed) f.write(f" emit_{tag}({arguments});\n") =20 elif hex_common.skip_qemu_helper(tag): diff --git a/target/hexagon/hex_common.py b/target/hexagon/hex_common.py index c0e9f26aebe..e37d5a514f0 100755 --- a/target/hexagon/hex_common.py +++ b/target/hexagon/hex_common.py @@ -1144,7 +1144,7 @@ def helper_args(tag, regs, imms): if need_pkt_has_multi_cof(tag): args.append(HelperArg( "i32", - "tcg_constant_tl(ctx->pkt->pkt_has_multi_cof)", + "tcg_constant_tl(ctx->pkt.pkt_has_multi_cof)", "uint32_t pkt_has_multi_cof" )) if need_pkt_need_commit(tag): @@ -1156,7 +1156,7 @@ def helper_args(tag, regs, imms): if need_PC(tag): args.append(HelperArg( "i32", - "tcg_constant_tl(ctx->pkt->pc)", + "tcg_constant_tl(ctx->pkt.pc)", "target_ulong PC" )) if need_next_PC(tag): --=20 2.34.1