From nobody Sun Apr 12 05:51:26 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=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1771363404; cv=none; d=zohomail.com; s=zohoarc; b=dIKo6abRx/pJs1ztCWEdxfALyq7HM4jrxhXzzDPiML3mCFCX/1QhfLpMOb9xbVaagS4jciSMPxl6MRNdd5LoISuSVmbGAC9HcSlYtGUaHWE4VgCzGxkEw03EOb78AX9Xdpx0W7lc2cbEjQGtKcghP9mdHSAIBsyk6RQ23pI7MiY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1771363404; 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=Zy5cfhZ/akH/6W5+lBFLkHvl4mJHVVUNe60+y4TZDh0=; b=A1FJ22DpdyIQcnUIcLjiWWJL8LvRBup4ZGQrFd3MGVjDkyAi2ZCcNqDdC9nuYkJ9KjGw67iNWfXO97Kifc10t1I5YauGiHiDFhSEQHnUAm2Nblg56YVBb4eQmrO2UY1gjjcokK/JHuZiovWMFfVczx7Zor96wjrnA913ttuJ/ow= 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=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1771363404806812.2282945883383; Tue, 17 Feb 2026 13:23:24 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vsSWz-0002OR-IU; Tue, 17 Feb 2026 16:22:53 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vsSWy-0002Kw-OR for qemu-devel@nongnu.org; Tue, 17 Feb 2026 16:22:52 -0500 Received: from mail-oi1-x230.google.com ([2607:f8b0:4864:20::230]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1vsSWx-0002Gh-1h for qemu-devel@nongnu.org; Tue, 17 Feb 2026 16:22:52 -0500 Received: by mail-oi1-x230.google.com with SMTP id 5614622812f47-45f04f1348cso3112210b6e.1 for ; Tue, 17 Feb 2026 13:22:50 -0800 (PST) Received: from taylor-ubuntu.. (c-67-172-136-152.hsd1.co.comcast.net. [67.172.136.152]) by smtp.gmail.com with ESMTPSA id 5614622812f47-4636ae8f86fsm12899319b6e.3.2026.02.17.13.22.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 17 Feb 2026 13:22:48 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1771363370; x=1771968170; 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=Zy5cfhZ/akH/6W5+lBFLkHvl4mJHVVUNe60+y4TZDh0=; b=IwHKfcBDlr9oPH4khoO3Ij3z4PHL2/0DrN8tuac+HvREhhjVLeAOPylixMjpugfoWJ QkZnko4a3YGFK5Wx761QX+piTHHFIpbVYwusjNmiDr7Ug9hd+cTImcddHhGWIYts0Z6l IFQ6Opp5Nmgwau4IBF43r2LkczCgUDX49lUCUfE2Fo3Sy3SDDYpukow8+IlEc1jUHZDo gSi7PDm4Cc5CE1+nAwskWIp/1YcHRo8/odXy9ZTCEmSL+OMF/JLA9Q2ZbDO8ZVSrw+oD QdKURqV0F1IdnJo3T6Ej4clLnYUk2x6CeOgVCDhX9AV8Gftagefar3pGAmo2/xCIb89Z 6gzA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1771363370; x=1771968170; 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=Zy5cfhZ/akH/6W5+lBFLkHvl4mJHVVUNe60+y4TZDh0=; b=GkLwoI0j19k8ffUPjLxpYMxcfiW+1h8OYP2+JInHVaM7qBlOk9vmNOa8j7nEAJjLdQ KJXq7yMb2FdS1sT3j3IwYg6DlC8mG0gv9R8Z3AEQm2CBNqpiawVMFNFywiHgVVmfreUH 17WjhsXVz+sI+/+wbZppSCOsg24CLp/fO+VvqOfxyjM4dTESmNZU37CtzymhakVmJ3Lc id1hGdfbfbUCASLhEyHksvzg41qgv3ioBApi3sa6p7sIpMD7qdsiWZ63UVV5lLtSYgYZ SkCd/9zzhoWxMHcrAfZ8tlriUqaZ9WY6xAD5PupmsptNS8+DGme0SKre62FuN06auXhS pj2A== X-Gm-Message-State: AOJu0Yx7tC7rzqWXn4kacydGIN9tXsedEDbZR5P3zkQPbEuyge6L0tIW m5XbhA3u/LLbqAY+WToXPvxEr1xwsH9TU0Nr529qU2byjZDYdJ76UV5hf9vOmQ== X-Gm-Gg: AZuq6aL9qFsBxpKL6M7s1f5Etx03IgRuGMwR0EyrGEE/QiZ2dLULyEZno9kcNOraeK9 jNyhVylr4HkUFjSFGZJ4rrv8LtGB/ec6FeOhplXWiHBLIdKnozgPjkXp6SDTchJIrbDmba1zaYC j3OEfkeifjViCLHSWUq819KwLkjCiCOrjqQiruxlik65/mO89Bf2qLTrrUJdB10K0Hy/uXKIcF1 +ni5oakYcAPBf7tGHa10oh7o3ylopzzClVSe43FF6/ESi8gqaTtgns6d6nBUuSytDJSRhTGdSWL rKSzTd0vHfw0MAj+sNcvfJ9xdR0dSKQsA3QETXUOJzhfGnfoqueAfxWOoVO0C/biyki+bVykFXX G/yE4tm/7tIQjwz99veCmEQVKKMrr1xXjGaUX7iYj5JUSlK2E4baNGKOTfE8xS8fNBMVOvrgdV9 Tpdn1ztJfpWf6rY4ABh8xh2+rRwPf2PeDIxrHEXqJWhQaHwXQYzZnT+gJkikAn6BLUmhUCURBMo rWoaMpiQYtKCU6F X-Received: by 2002:a05:6808:514b:b0:45e:f443:dc3d with SMTP id 5614622812f47-463b3f0647cmr6921029b6e.13.1771363369589; Tue, 17 Feb 2026 13:22:49 -0800 (PST) From: Taylor Simpson To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, matheus.bernardino@oss.qualcomm.com, sid.manning@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, richard.henderson@linaro.org, philmd@linaro.org, ale@rev.ng, anjo@rev.ng, ltaylorsimpson@gmail.com Subject: [PATCH v3 1/8] Hexagon (target/hexagon) Properly handle Hexagon CPU version Date: Tue, 17 Feb 2026 14:22:38 -0700 Message-ID: <20260217212245.95321-2-ltaylorsimpson@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260217212245.95321-1-ltaylorsimpson@gmail.com> References: <20260217212245.95321-1-ltaylorsimpson@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::230; envelope-from=ltaylorsimpson@gmail.com; helo=mail-oi1-x230.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, 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 @gmail.com) X-ZM-MESSAGEID: 1771363407344154100 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 --- 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 0b149bd5fe..6e1bb04070 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 85afd59277..f99647dfb6 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 58a22ee41f..949d509a15 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.43.0 From nobody Sun Apr 12 05:51:26 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=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1771363446; cv=none; d=zohomail.com; s=zohoarc; b=NNAKNB3aPGqF0TAXuS0XX/myOLuB3r94aRUVFAVW5sqJudISoX87Ky2r9DtsZhMnoGBfNnuFcOjqvan6FtWok5EpD7laVl6P9t1IdlyW+az10YrIH7eyeOJ3Ha5QpcbRQLmR4allCpzMm7g9vEZXCV/Eb+QGu3lkFoUnszWRMtM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1771363446; 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=VY+khrWva4TQzXBdBU/u3tJFGnrI2ZRRl79vbOIZYRo=; b=bzRV2mJ8i4TL3nWqWc6G0NYbj7Y5jckgdJYJlKZ8hlzRvS2NNEtHOREtBlzhJvN3rlaO39AO9iPnCeQTOr25sltfXlr3m4Rx+rWYeS9AG7MIK4q270HmS2MuREMVd3Fab4O7SEJ1JXvQDBLBjOlWBodX55NAyL9BGzxrpQPaYwY= 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=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1771363446464583.2172577443831; Tue, 17 Feb 2026 13:24:06 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vsSX2-0002aE-7f; Tue, 17 Feb 2026 16:22:56 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vsSWz-0002PP-TV for qemu-devel@nongnu.org; Tue, 17 Feb 2026 16:22:53 -0500 Received: from mail-oi1-x230.google.com ([2607:f8b0:4864:20::230]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1vsSWx-0002H6-Vd for qemu-devel@nongnu.org; Tue, 17 Feb 2026 16:22:53 -0500 Received: by mail-oi1-x230.google.com with SMTP id 5614622812f47-463a0e14abfso2454257b6e.2 for ; Tue, 17 Feb 2026 13:22:51 -0800 (PST) Received: from taylor-ubuntu.. (c-67-172-136-152.hsd1.co.comcast.net. [67.172.136.152]) by smtp.gmail.com with ESMTPSA id 5614622812f47-4636ae8f86fsm12899319b6e.3.2026.02.17.13.22.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 17 Feb 2026 13:22:50 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1771363371; x=1771968171; 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=VY+khrWva4TQzXBdBU/u3tJFGnrI2ZRRl79vbOIZYRo=; b=klQCoCKVRf0l4Iz1lfbVbsvMDK4ZuZgXaLAY/mxzUQBpuzx3PeiSb9ymOTYW3JC3+g 9w6FoLbp7a6qWtOTlaVF2I2SuXWuPfN1YpgP8JXq9fnFB9TDMDonNF4cESCiWPO3JFHx o/8dMqVLzQvwVd6vrwr4lJbxiciJ8P32tltuUz+iiZ3zqmk8m5H96o6l8RjIxb5c5Z7f hhn5Sn2j2gw19KTCs1Jdp8/Zq4Pvg3+Ey+A+6hJRq3MhT3JVCFoFeGBsutpxlCdTKBCG FcjCGOAj0V+z8lQXzxyk++WjYEx2cN4YSkjEKWYlvzLxyaot0DM/DQts5Q9lFyyu6YE7 vJXw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1771363371; x=1771968171; 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=VY+khrWva4TQzXBdBU/u3tJFGnrI2ZRRl79vbOIZYRo=; b=uaIrEVJRWXmXPSvxdicpexjSZ3KcGCZ+4T5KIr9/vtygPKM4Ps9dh7XF1XF3ENHGFL kLovyRTNzBQI8TNKUGdgubeHdWlkkpd2xCgdGaLmTK4v3i/sgHDnNp3uqHKAqxdI3Z30 pXvgouqjuWktRWni3sMbqPaXnGtLrYjeBZL4g3Lp/xuHrekiK4MwkH1O6rtfIExXUD85 HcwUgaydf8GEKP588SE46xQxFp4lhzCUj3LiZWP8S1DpEIWTmGT/hgQEiKfDq/caBKvY rghACp3gLgSnVmneIf1hnjtJQ0ccxbNXReVM6KwG67v0di6QEO5u7XgTc1ixZzRHVvVF RJyw== X-Gm-Message-State: AOJu0YzBfcOd4HUgxyOizzG4utQWR+qF8CN2bWcxXmypLGikkHMQvs94 D52qqi9YfTWUTI91RI2p+aN+tHKHEaTPOXSAWGa1ijXqSCUdXo3nONnVqlwCWw== X-Gm-Gg: AZuq6aJ/RXGZh6oHgfCPUd/2bKp7/alz5Fe66G3trJ+87O65wqIlGo3KYa6xhWCuPxh sOadxxuhIAGUiIYeqFioB7DvrMtca0HvMG3fLGbbKxJY5Myv2WbRDDIM7cyPkSfMwwz8dM7LYu3 ed83yLdF8/iqNJXfQR1M2W7+Fio/eIjZtCke/rJhGDlfBjNGI0SAllCYTiokpzczBNXKwp7wmcF v9ax2cHolUvm8MG1QYvcIrjnzqnU5VBLIDmhIBestzatUgVuUJiZJYLBBCEAl8zEZPtCvgnxhoD gU6NyEenaHaGvZE0lCNvtcNxWnNz0uMg274VHSwi8HnaXlGABWWSjap0RBz8t9cZiHMsFxRhITo frFBZi5IfqJL70jl3GMcA/ia/THBNbXWcVcBy66/JvM7AkbLVtzcjS7aRv2zfjaTH/MiLb2i0ig wxslDhMndUR1e8acaL+PgE2DLaIhx4orn1nXwuE06sVbZBfzjOdqIPhPfkxVFMZy9q76p+xsTWn oyBTYWQP/p8C9Ah X-Received: by 2002:a05:6808:1302:b0:450:6eb0:3481 with SMTP id 5614622812f47-4639adb5e20mr7367711b6e.43.1771363370675; Tue, 17 Feb 2026 13:22:50 -0800 (PST) From: Taylor Simpson To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, matheus.bernardino@oss.qualcomm.com, sid.manning@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, richard.henderson@linaro.org, philmd@linaro.org, ale@rev.ng, anjo@rev.ng, ltaylorsimpson@gmail.com Subject: [PATCH v3 2/8] Hexagon (linux-user/hexagon) Identify Hexagon version in ELF file Date: Tue, 17 Feb 2026 14:22:39 -0700 Message-ID: <20260217212245.95321-3-ltaylorsimpson@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260217212245.95321-1-ltaylorsimpson@gmail.com> References: <20260217212245.95321-1-ltaylorsimpson@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::230; envelope-from=ltaylorsimpson@gmail.com; helo=mail-oi1-x230.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, 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 @gmail.com) X-ZM-MESSAGEID: 1771363448082154100 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 --- 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 d8b545032a..39b0201814 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.43.0 From nobody Sun Apr 12 05:51:26 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=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1771363397; cv=none; d=zohomail.com; s=zohoarc; b=DjGdTzpJnGCY/I9TmxQZOC3sg7DwG1jDiS8DdnhwmO0yckSTxuP2bSnmYHlPnwP7FV3U2/PsZkhJXhJIUwoBogc0TlBCQ/nmsTe70U0RSaAGhJ6gk8KhPIYM/G06n7H2r6JXERTo/Lyuckiysk/U7MT3W2d7qvT31m0xQzU/skk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1771363397; 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=roZH7wWMiHXqJhkkLgzH66/YK99zxeBEoHW/TKhv7pA=; b=JxzWOsxQNrhzMQsKeszNpj4FOy9dpxZ48ezhpqbOi4xEZHJVke7kBGjgRI1Ud2ArnwkJUkzOdQl+5xGnxQGHXhyQH2aheeFnsvgkkNqb3U7XPpVnd3aYji1JP/q53TsnY4GLloOMJZR9WfanqhaF6dpmVoc1Z9c4TZIpsoAp188= 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=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 177136339730120.641327150097368; Tue, 17 Feb 2026 13:23:17 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vsSX1-0002Yw-Th; Tue, 17 Feb 2026 16:22:55 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vsSX0-0002U5-U2 for qemu-devel@nongnu.org; Tue, 17 Feb 2026 16:22:54 -0500 Received: from mail-oi1-x22e.google.com ([2607:f8b0:4864:20::22e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1vsSWz-0002HZ-GX for qemu-devel@nongnu.org; Tue, 17 Feb 2026 16:22:54 -0500 Received: by mail-oi1-x22e.google.com with SMTP id 5614622812f47-46392972257so3050760b6e.2 for ; Tue, 17 Feb 2026 13:22:53 -0800 (PST) Received: from taylor-ubuntu.. (c-67-172-136-152.hsd1.co.comcast.net. [67.172.136.152]) by smtp.gmail.com with ESMTPSA id 5614622812f47-4636ae8f86fsm12899319b6e.3.2026.02.17.13.22.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 17 Feb 2026 13:22:51 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1771363372; x=1771968172; 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=roZH7wWMiHXqJhkkLgzH66/YK99zxeBEoHW/TKhv7pA=; b=dXccdL3i/mmnRxZFBCyGUlJa7IUEhqSadntcmqvSJtAgumFBgyOLLxc6RE7xjF64Sz 9g2q8o+H0H3lp1owK/+PD5mQKn31Lt/+IQH+dUdhswdfKz7T85azoRuOHXtNajZhM1nm MEk/CBy5vaOfAa4yzlHOTBuCxwIoD0nPeckGxAVSgZF4j+aEs8MNMeg8uaNMKzwkJqgK +vWyuLDm70Yxp8hs77fyYCkFGlB6hQKmjAgdkWr2b6+H6ya+MU9yyC4kGUxN1E9CQUt7 +n38+Z13Npbyw/5b2BX/Np/OEFnRGBxAWRLahMa7DMniwDrVz9wSAQDYcoG4cpOMERpH D6Jw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1771363372; x=1771968172; 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=roZH7wWMiHXqJhkkLgzH66/YK99zxeBEoHW/TKhv7pA=; b=rth1pm529j2kXgtGfgs6zKxtquor4UwA4cu6pwrUqVmOXCJje7iLDjG68MDDfCBP55 sbq53L4H/uaAEYK+KRMx6DC1iOlAhr+hCBbNeLUOePee9xoAH5JaS/A6HPqB8gDc+qYI mQ0HE4Hej32Y962FjRVxXqdzgzPh6UIlO4qLYYvjZHSe4u2e3hPDJHtzQCos2LvOjmoy pJXEA16mxLLcFmK3xDz1PtmQ7dZri6+/z1dkU3GBNo04FJNR+N1fu5L3+9auxbAdf0TX CbFf8HdJnFtMdXc0mcULbQOQxKcMkW7/CLdWs4+6ss7WouTu0lFnVsHs+yFZG+Y2E6l4 BSUA== X-Gm-Message-State: AOJu0Yy6y7NFDjRz+HKMTojD2TBzdkdBJOB23rU+cA4XvZ+caYFSvmak 3GpGP2hahLs7voHNhXSyweKh8ZP9FnqnHSBoUtjWao8+M5m+tEZlglaP3QcTuQ== X-Gm-Gg: AZuq6aLYsMV9Qd8z1KeJ+TkoI01BSuPtGwDYlrkpSEOBkD9kRib2zC8603PkGXxsRW1 BhB9G7Ec+8RmRSiXv8TxCtsXWTYvdbMRON/YhZ1fdwYKtIC8i1DLddJ8R/3z2PciDm1XKmm00zd xVMEjZoeSsiywVGZFCZ++t7WKRL83zqvHM8HkGR/bPXA6HuUksqQEkJGFN8L/vLd68RqqUeg9RJ BKzT1VA9A4LeHayvRAJ2aL6TmRfSjDDkzHnIH4Zp2HKjHKEC88RdA6tXbdZV7FrmA43BczNIrCb CvmTuemTmfy2mF+6HHo8SnH4NMRP/8aIoqOQiSw7x9RD15dWZ9JUG+zgZklvOHfJgT+9eT8PcTy FnwcXbNJwNHDmv52qcRAsKNBzZr8Kp8jf/4oAGEbJ/RgVup9zUw1DC5/Gm1wFzLbiZXACzTHpQb rrkPfpNKC1UePTfBlA1nGjoHnjfqPor2qHKpibAVPi4oulo4zJNsk+pCNpI5lrgqSllD7XUOjYR s6KOIVzqQD9+46m X-Received: by 2002:a05:6808:1689:b0:463:927c:1e3d with SMTP id 5614622812f47-4639ef4ab7bmr8885434b6e.23.1771363371882; Tue, 17 Feb 2026 13:22:51 -0800 (PST) From: Taylor Simpson To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, matheus.bernardino@oss.qualcomm.com, sid.manning@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, richard.henderson@linaro.org, philmd@linaro.org, ale@rev.ng, anjo@rev.ng, ltaylorsimpson@gmail.com Subject: [PATCH v3 3/8] Hexagon (target/hexagon) Add Hexagon definition field to DisasContext Date: Tue, 17 Feb 2026 14:22:40 -0700 Message-ID: <20260217212245.95321-4-ltaylorsimpson@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260217212245.95321-1-ltaylorsimpson@gmail.com> References: <20260217212245.95321-1-ltaylorsimpson@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::22e; envelope-from=ltaylorsimpson@gmail.com; helo=mail-oi1-x22e.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, 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 @gmail.com) X-ZM-MESSAGEID: 1771363401911154100 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 --- 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 b37cb49238..9cdcbd6416 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 2fdc956bf9..a4c2ef534e 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.43.0 From nobody Sun Apr 12 05:51:26 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=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1771363453; cv=none; d=zohomail.com; s=zohoarc; b=mGozTHNGS8EsIZE1BXLAPbpNmii3mNHs8IE26i9TlnhqYo25stO/H2Xkemf8H6GONNOLeBhYQ5xpSY5uZVeHs9oEawzcdg/9Qj6bAk49e4rzJXoSzqBylR35/pgFzuHrh38MDQZj4x+EJX1u2qrIcrofDgTkux2beCKiTPiF0F4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1771363453; 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=gfgCsWubwOz8K2Dazgy4vfRsEw2hF2osh1NPGFOAWrA=; b=IYlkb+OcQbwy7LFJL7N/+oARCulNcDyJFVQrwz3mnuMbYPgjcmWT2bYMuWas0QPDRoqavCPXBSJmN35Rk7CVgza5g/il4OscluD8rR57CVsCCMrsjWssqHhi50F/nVpgpEAVfyBkanoHvdpyCL4YEaRxYu7RCjNRpL8ZSC6S8EA= 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=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 177136345354761.676205236762144; Tue, 17 Feb 2026 13:24:13 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vsSX6-0002hz-Uf; Tue, 17 Feb 2026 16:23:00 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vsSX5-0002hJ-Io for qemu-devel@nongnu.org; Tue, 17 Feb 2026 16:22:59 -0500 Received: from mail-oi1-x22a.google.com ([2607:f8b0:4864:20::22a]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1vsSX1-0002IB-7I for qemu-devel@nongnu.org; Tue, 17 Feb 2026 16:22:59 -0500 Received: by mail-oi1-x22a.google.com with SMTP id 5614622812f47-463960df4f9so2809480b6e.0 for ; Tue, 17 Feb 2026 13:22:54 -0800 (PST) Received: from taylor-ubuntu.. (c-67-172-136-152.hsd1.co.comcast.net. [67.172.136.152]) by smtp.gmail.com with ESMTPSA id 5614622812f47-4636ae8f86fsm12899319b6e.3.2026.02.17.13.22.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 17 Feb 2026 13:22:52 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1771363374; x=1771968174; 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=gfgCsWubwOz8K2Dazgy4vfRsEw2hF2osh1NPGFOAWrA=; b=Fr9bgvBPlxyRHsOFbNw3yOIQ0rQcz1lhLa5buujWvw9KanBpzz4Y3867vd3WVnuejI KDHqNh4HK1XeQKQllI5SJve/r2AkUdlEkcKd4U24X3mB/8usC5uM6bn8i4uiXyEnx3aO gKBX9Fhv7MLIct6K6xyt+myJ9LqexkzBHsKwJiUwmnq/3zPWB47IcwDHinvJqYPf/iBr aW40OpS1iBNfHU82E9dmUddfAi9ZKVAl7TASAxX1bUn/yh5FNfaETGg48Q7PH98bxxbV x0bRYJ99zm2oQhXDM7BTvGMLVG/7hesyfmIDXnEM8Zg3Y490pW4RjWHt2JRnTKHw3aBh yp6g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1771363374; x=1771968174; 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=gfgCsWubwOz8K2Dazgy4vfRsEw2hF2osh1NPGFOAWrA=; b=i7zBOF279zrd7t2C4uQ46RwxIXleGuZZk4aqdj1ScIuMq9KfhydxfUTDogSX9KHRhE 9Wo+GOmcO3zkpzuP6n3HvLeXjtF4kbvQUJscJBvmXUJ0eUkoLf+/VUmcEFQGhut1m9HG oE2DcedvuO1QqPbLxSEBPGY0piE/Q/8xjISBflau7APs1Kq+UYLVGzPvED8zaPaC4kba WBkyNhZ31Scruyn/UPQO8MMhoXKXVBTJdeMjdlXloKhixiW+cejTo9Lk1/x/nDruevZv /GXcT9NqtMx+w/3iZVq6hP/b963Z1XnU6wEJQ8Vh9mO5HZP2wV+yHeNON2+ObCMjnz95 SzZg== X-Gm-Message-State: AOJu0YySj0rKk9v6GBGcdxGJLrt8Z2ml+OEcGaSlKjueUNewEYhv468s wOMRy+UTK0LGHzZ29FpaEC3q08cr//7rWNqFUbPK8ifhFCa23fepEeIZfK796A== X-Gm-Gg: AZuq6aJT3K7AJzWT9mryuHNmXvJLjw3MVlgYPAdzbYZgs5CMzt9W0EktFIbMLOPnQaw NMKk56ledP5Jbz2/8/4lV7EAQNCzzokTH8wPwv3aB9mL+kW5pqh5zBGYaV6ERR0onRr15lcnFfP 8pa7glL+2aC7OdwfeBeu6V+GX1lwfNKr9Vb2WEC3cUEU4hmdBeHp/tDPdUdSTgs9T1pIYi1C5N9 SS+S/rUaJ3BmJOIqGZPbKCqXh9rd6K/bdOI+pIVXqubfgUoIB6yr3OQoJ/f5vPc4fZBVMh34xF1 Akns4MAJtt+oNPmQzL8rris3h82abu6OjHS3p1TNlaoydybzqtapDMM5pLVSwSVZMxafcz9EHng NVkK3tfuJQKA1eezu5wCOU8CcIxvfPpfwpSXFRvRbCbXAT3rjXpycjke9B3soEi8oUHa8qoVRJS O8Xd7Ow5pInF1unTAy737ZTqB+UviIZfpwKb7FyBuTWWjeaLHYwhl4whyccMZPV1LKsk02NhjAQ buC0DF/7NwRRKe4gboy+Ko1nj8= X-Received: by 2002:a05:6808:2445:b0:450:5e3a:6f1a with SMTP id 5614622812f47-463b3f655e2mr6719364b6e.20.1771363373404; Tue, 17 Feb 2026 13:22:53 -0800 (PST) From: Taylor Simpson To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, matheus.bernardino@oss.qualcomm.com, sid.manning@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, richard.henderson@linaro.org, philmd@linaro.org, ale@rev.ng, anjo@rev.ng, ltaylorsimpson@gmail.com Subject: [PATCH v3 4/8] Hexagon (target/hexagon) Introduce tag_rev_info.c.inc Date: Tue, 17 Feb 2026 14:22:41 -0700 Message-ID: <20260217212245.95321-5-ltaylorsimpson@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260217212245.95321-1-ltaylorsimpson@gmail.com> References: <20260217212245.95321-1-ltaylorsimpson@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::22a; envelope-from=ltaylorsimpson@gmail.com; helo=mail-oi1-x22a.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, 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 @gmail.com) X-ZM-MESSAGEID: 1771363455733158500 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: Brian Cain Signed-off-by: Taylor Simpson Reviewed-by: Anton Johansson --- 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 0000000000..11c90f86ad --- /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.43.0 From nobody Sun Apr 12 05:51:26 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=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1771363409; cv=none; d=zohomail.com; s=zohoarc; b=aHNqEflUcxJXw3PmMmgtkVMsOsUBXSufuLDHwRmXU1jyYwc9e9XOAsuMcl1HvpwtmoBTyE4FCIy4l4o66D//CbnjkNN2N+85dtnffjsoLJR5sKp0MQ7sNC4M/PqUYVq66JbixqlcxbQzAGODySSCcSHoZe2Qp7S+27mFTR69FsI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1771363409; 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=iVOAx9naukSVP3+UH3cDLb9De+dQpHzBI3+W6aRDKDk=; b=mGE+PO+RWEORJecMyjQ/l8lxnLHrwfvSEPAC+XOs2iVWcYsFwP7F6Ffish4T8n622dblcQG+Fm1gUhu3cGsfFAP1yhOwoAOL5fTXJ3RJkREz0RfZxW0ybGrLu8xaDIOy7w2HyG4O5TM9DzNwa1dwCHdPfyHzV3xzsaSUCiw+fnU= 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=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1771363409540595.9092321402875; Tue, 17 Feb 2026 13:23:29 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vsSX5-0002hD-EL; Tue, 17 Feb 2026 16:22:59 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vsSX3-0002fQ-T2 for qemu-devel@nongnu.org; Tue, 17 Feb 2026 16:22:57 -0500 Received: from mail-oi1-x230.google.com ([2607:f8b0:4864:20::230]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1vsSX2-0002Ic-Ap for qemu-devel@nongnu.org; Tue, 17 Feb 2026 16:22:57 -0500 Received: by mail-oi1-x230.google.com with SMTP id 5614622812f47-45f04f1348cso3112265b6e.1 for ; Tue, 17 Feb 2026 13:22:55 -0800 (PST) Received: from taylor-ubuntu.. (c-67-172-136-152.hsd1.co.comcast.net. [67.172.136.152]) by smtp.gmail.com with ESMTPSA id 5614622812f47-4636ae8f86fsm12899319b6e.3.2026.02.17.13.22.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 17 Feb 2026 13:22:54 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1771363375; x=1771968175; 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=iVOAx9naukSVP3+UH3cDLb9De+dQpHzBI3+W6aRDKDk=; b=YFWg7zoJexfvpgqBwTiHL0MBaCAxvI99zMO8CaZ3WYem2CLIfgbLa/SJC076QC7z63 lllaqjrqJV+FUhn4iS3DDHfxUl3Q0gpxWepDHSbRS0pyTyUpQ1uBRp1FGdEjOjvxpgiz jqa7dclq1poUIaRayoZFSSC352hs/wPy3DSEDE5b1uieiWmszaye054cetHn3UyAEYBg VM6POiT749Chnu885I7/fbEV7EwCEA3ftbFlCVNKgt0lcHvd5gGFjzjrHbY1IuZbDfGk E6QWsNqBk0m4mjSpmlVmBnGyWEfwlYhmAZ1SQ4lkpE6ZMrxLrwiqGDCVJhSzecIurEZn bfEQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1771363375; x=1771968175; 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=iVOAx9naukSVP3+UH3cDLb9De+dQpHzBI3+W6aRDKDk=; b=ot6BCXHOdRk7FG7BlHQXL748E/dS2eOtD2BBbKlaxLLlj4Yil7Qvj+5gBHrI2gs4hH MQDamlJfPoOiYd77ZkxzRcUeD6NOJ0D3C2yM1SsJ0s8gSgv6oaZrRVLvzYNrw6J+mtQS oBfNxP6JlTxs+GtKJJ51ZsCdTVx3eACxDNYlm4IDmLp31j3R6LIdozmOKFDGkjKEzpJq VPTZGsSgIBzz0wZMi+mnvQmKJ1/mfj2msJn+obCI6z2UPYXng2oHujJBQ0oIrIvY7dmA qm+WVvV3uJCRx2xM7HgQEePlVyUpiD3mL2FFTo1P28tVihVR+zkuBa/O5hZ0PMTJNv51 RpDQ== X-Gm-Message-State: AOJu0YyUlfQY98PHfAn6UstWlLpSFaQUglkdaGJs8L1kF9eOOL3OQLCo hCyMBMIE6r9Mis0wRDvfKHgNDVcGvgfJWONCVSExlD5pfc+3jRKM/2WkfX74wQ== X-Gm-Gg: AZuq6aKrkciJDeFr+1coFxPZJ+Jq6Ley4UvsEzyVeJeh1lkh7+QPr/AKNKjxdUpN7Tm jdt+20wo4YpOhDWQzsNdjwNgdC9SLqbENOhN/WJ9qOXei7i6z3bcWJHHIfKcRX5wAqggSOK5nKt cDeX0pOJgjkV25raCh1NZVX17N4n3KdvyiWWNc6GLNJzF37X0vJDfzechp1MVOie/SZZOzAAMV9 SaatCq0Tk1Bl5eabw0OlEu4le/sVd1ES97K29hpV/4FkjbESoOMF8QNpmx8X8ovdQWp8RHhlSku MdBfeEZuxuBTXHWSZZqV0U9BSeZHDbjd3T5t3fEyv2L0h4mdpYjw3dGmqvzEtR8QjcN5nI5/9x+ 3CxupoLsQTbZ0lCPdQAbh2flySPjuqSN13/J0SjzBfFnafKer8F2n4AVVJOI5HJ8SNSwp6yY98E zM4ZsANLQLmT+s8JnI85ERcwmBcWFNsAcX1485dR0Vd8Kd1DR2iZlBp4EGHCf6Yp467iRKUBI4t cnNVfc09joowOMw X-Received: by 2002:a05:6808:3a0e:b0:45f:a12:5c88 with SMTP id 5614622812f47-463b422c6abmr7256133b6e.49.1771363374987; Tue, 17 Feb 2026 13:22:54 -0800 (PST) From: Taylor Simpson To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, matheus.bernardino@oss.qualcomm.com, sid.manning@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, richard.henderson@linaro.org, philmd@linaro.org, ale@rev.ng, anjo@rev.ng, ltaylorsimpson@gmail.com Subject: [PATCH v3 5/8] Hexagon (target/hexagon) Check each opcode against current CPU definition Date: Tue, 17 Feb 2026 14:22:42 -0700 Message-ID: <20260217212245.95321-6-ltaylorsimpson@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260217212245.95321-1-ltaylorsimpson@gmail.com> References: <20260217212245.95321-1-ltaylorsimpson@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::230; envelope-from=ltaylorsimpson@gmail.com; helo=mail-oi1-x230.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, 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 @gmail.com) X-ZM-MESSAGEID: 1771363411942154100 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 --- 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 3f3012b978..d4b049961e 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 dbc9c630e8..b8a1cd5b12 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.43.0 From nobody Sun Apr 12 05:51:26 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=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1771363463; cv=none; d=zohomail.com; s=zohoarc; b=mgdLG48RFu5mdH8Mz8LO1UMwGzoS27u3RyoUVQSewACkgbPOY4EgbdN7b+OCj5WIAtTJEuPXMBf8ka9CxJt51lHawkEErt4hJ/SfletK0tDOrtA7nIypAaku/ehypSWXCkitrNFLatgp2TJ2LrtE0Gnid9UcsvUjS+X+q9+FhLQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1771363463; 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=rNHs4Sobj03r02yaX9a9D3Jb/8tlBnii4di7lAr9aUU=; b=EfftKb0SqBYNO/uwPe3mxLIGf3FGinUjz+8FIQk4NFIfTFEa3pjbVRXLlJOs4afKq2iF5kJ3wAPkV4HHKFpfF4DW+3xL88+zSNzILGW881YZ5suuWyWv8CyLmZcExo8OsTWh6+wLpyWFPq5zZsRtFRjTZftQPL40roHZvfMTjeA= 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=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1771363463852307.64065154664684; Tue, 17 Feb 2026 13:24:23 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vsSX6-0002hj-DP; Tue, 17 Feb 2026 16:23:00 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vsSX5-0002hH-F9 for qemu-devel@nongnu.org; Tue, 17 Feb 2026 16:22:59 -0500 Received: from mail-oi1-x243.google.com ([2607:f8b0:4864:20::243]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1vsSX3-0002Ip-N0 for qemu-devel@nongnu.org; Tue, 17 Feb 2026 16:22:59 -0500 Received: by mail-oi1-x243.google.com with SMTP id 5614622812f47-46398742245so1208041b6e.1 for ; Tue, 17 Feb 2026 13:22:57 -0800 (PST) Received: from taylor-ubuntu.. (c-67-172-136-152.hsd1.co.comcast.net. [67.172.136.152]) by smtp.gmail.com with ESMTPSA id 5614622812f47-4636ae8f86fsm12899319b6e.3.2026.02.17.13.22.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 17 Feb 2026 13:22:55 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1771363376; x=1771968176; 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=rNHs4Sobj03r02yaX9a9D3Jb/8tlBnii4di7lAr9aUU=; b=AZPB/2NhI7eyRNpYn+COF0OcbV8tFX+xIKC43T7RU6Rbj8Pkx38Tw/SrbM7eKr0D0c noTIx5pQFrlL+Kv3meVuWhiy92HAR10ptVx/seKQyO3IhIYT43dYEjSa2qEceIG3JVAX dO/SYvQloA7AslopsTTX5KeCPsPsLmSbp6Oq4Y7F0PT2uce+AzvOlE4OVfQfTvqvkf1u zgdI8sexybn6G6wLDgzN7RgWWF/5+AbvU+DZPbtqDmoDTa6wLygomISHncSiYmfA3w4J eUWZKsOalEqBTu/HQ3oliNpGQNd+OPE7U3vHP2k3OvlUe3PGHfL2KcsOjb63UrwH2Eoq A+Mg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1771363376; x=1771968176; 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=rNHs4Sobj03r02yaX9a9D3Jb/8tlBnii4di7lAr9aUU=; b=AllnYYvm5+odIoZGJTBgQSJOlzwXn6e62q+1ESEH6uD/hyRygHievVW7+vK9CQkNxo PkO21QExlb98tCixOHuaUPLbVmUqTOAamp/zAKPk1qjlPOkszJsGCqo+iCrD4WHrkAiW WGFN3L7EqGVuIK/af60Ps5yTJ+zJU9DQZfM0N2i4QHndvnUOUbRdu5ixSvS2O2BGwpM8 76jK6wIqAvPDK1Utx4wDjn03P6eus8OM5Kbk8XG/NAHfCMhQiNwp5hWix1LyU7x16XvT 9KNe5kTyFMVfg84NXXNzvq9wrZPiihaZz9jxhrjR7JIQEh0t2t/0gcZ9P/ruxpQ3v/17 pX7w== X-Gm-Message-State: AOJu0YwI5CdICNizPz1u8JlTig7PywxLjJOavUHvnrjoZ+f5SZfbdAxg hN5kZmZvUt7a+wXQySUlTmzzfKNqKD3eiCCjRC8ic7Tycvw++Ez+eOWA2Vse7DGd X-Gm-Gg: AZuq6aIvGmcFJfzdIV5TXUCT8cl7PCZlmXJHHY+oyQp6Kyzs9IC6wZKaxA3BDh3ESLo O0u3bpKEG+XuYRc9xVVz/G2SfabRWwWjZS0M+taHY4Fc5gZrvx3m7BPEKjBcp1A0hO9shtSxFo2 ZuiFnQWfm5EgeKUI5Z1BqTgKPGVN0Wzqd+KrC2je4DDs+zQojsWYt7dYb14I0qfRWXb5slGFlSH R9R0oqowZH5A9uZPx1VWiRfP5t3JObk7x3eJgfbAmF2Eu5rFMbFiH5lAhncJDfl/VYG63skV+cd LDILZh1R7bRpr+D6mhFqQbyhy1RtPziYukuUe7UD82nHTOTLgaM7lmleBjheiJ3XR4iYtNAMHmJ cdk86dnRxx+qFHlV84T9X+zwr2PSHqtZ1HLug5NgPD0TZgYPdhMAK2BSJhZfJtaDahSztUvZOqP kvDoRXfVQG2tq63sBLLVvYf9xC8IhljNrva2qcp+MmlJAoo2RnrsnJSxT+ZsaYqKN46740qfxXV Eo1mxSvgL2P/lPW X-Received: by 2002:a05:6808:158e:b0:45f:210:4dbd with SMTP id 5614622812f47-4639ef3137fmr6741119b6e.16.1771363376022; Tue, 17 Feb 2026 13:22:56 -0800 (PST) From: Taylor Simpson To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, matheus.bernardino@oss.qualcomm.com, sid.manning@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, richard.henderson@linaro.org, philmd@linaro.org, ale@rev.ng, anjo@rev.ng, ltaylorsimpson@gmail.com Subject: [PATCH v3 6/8] Hexagon (target/hexagon) Disassembly of invalid packets Date: Tue, 17 Feb 2026 14:22:43 -0700 Message-ID: <20260217212245.95321-7-ltaylorsimpson@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260217212245.95321-1-ltaylorsimpson@gmail.com> References: <20260217212245.95321-1-ltaylorsimpson@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::243; envelope-from=ltaylorsimpson@gmail.com; helo=mail-oi1-x243.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, 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 @gmail.com) X-ZM-MESSAGEID: 1771363465942158500 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 --- 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 19beca81c0..aaac6b9ea6 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 2ecd1731d0..6f84ef93c3 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 c1a4ffc5f6..36b8321c26 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 949d509a15..001ea3c4ef 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 b8a1cd5b12..c4cf430e5a 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 4865cdd133..22b305f018 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.43.0 From nobody Sun Apr 12 05:51:26 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=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1771363427; cv=none; d=zohomail.com; s=zohoarc; b=Ey537xwrvxURKl7RwK9MVHdfCQddmAcJ6zowieb3HQCPIXFvuxJewHjGVCSTOivS7j37SwOdIlN8CNs94u/oj0ZV14TGUDMjHRDOQv/jTGRt6oCm+c37VLtkFRhtCPRHExX9eJM8ubRmwXpuS0bs9wJuZkqrTY1FGuefFrgzEAQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1771363427; 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=m+qNKUAlpp9a6yuJ0J/t49+0Pl4hNg0jUhpv5P0Iy6I=; b=dE7pNLbVLFlU+K0PBPzHhmnJtH5Ze+Y9nMQm0cfbXeWI3Qw9n2BxkDLXBsEibqCiagTwEhaQz5JkYgovQt9AYgGogcdZMfMD++m4ZEpoBOsHZLepkL9SVHminaphyAFm93pEb6hw8ZBGFAcSsVGDV7jIFNTVCaOm0VpTDSyhesc= 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=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1771363427773293.13296458921377; Tue, 17 Feb 2026 13:23:47 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vsSX9-0002jB-KF; Tue, 17 Feb 2026 16:23:03 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vsSX8-0002ih-4e for qemu-devel@nongnu.org; Tue, 17 Feb 2026 16:23:02 -0500 Received: from mail-oi1-x229.google.com ([2607:f8b0:4864:20::229]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1vsSX6-0002K8-Df for qemu-devel@nongnu.org; Tue, 17 Feb 2026 16:23:01 -0500 Received: by mail-oi1-x229.google.com with SMTP id 5614622812f47-463901a0accso1266830b6e.2 for ; Tue, 17 Feb 2026 13:23:00 -0800 (PST) Received: from taylor-ubuntu.. (c-67-172-136-152.hsd1.co.comcast.net. [67.172.136.152]) by smtp.gmail.com with ESMTPSA id 5614622812f47-4636ae8f86fsm12899319b6e.3.2026.02.17.13.22.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 17 Feb 2026 13:22:58 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1771363379; x=1771968179; 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=m+qNKUAlpp9a6yuJ0J/t49+0Pl4hNg0jUhpv5P0Iy6I=; b=Awm91LYKHwTZhAiJP5+znS5JSUctvP9FMEUk+tt4CElkP7298RErM4bW8500HmjO3Q jvjQdJCM+SspdarGHHnlvIu/Z2PGcD2kSYaO50zHyVOUfZmVm5e19eLsKoKyMmPEwh9S B+kPzYGt2U9eCxzu7LyaiXMzhS9CEsRlFjxjvQAYukZj8CrzNqiXpG9Z4y01reUCO1g0 6vFaLsskEsPXoEGDi+RhXGA75ULFG7rE+gCbMK/p5tQ/RmDzYueHcnUX9g1yqxwRuv4Y xkcLKkSiS5TDLd9tJDO4ysSWeuYHPJxvZ+Id5+ehexmsIqbfy//87Xgus0AH4hzot3Ii g23Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1771363379; x=1771968179; 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=m+qNKUAlpp9a6yuJ0J/t49+0Pl4hNg0jUhpv5P0Iy6I=; b=c3NPDqc6/tCt/VbmNy8Ybt8sTqfBtnLFN8IXYLIVxgtxoz786G66esB2cFX0yALcIP i9MPhu1Wf/MqM0epnMrOZNw231iZRRrEkhCDBsorE7B+7U1e9bfk/jMl3jW8q8p9bmCD GUtzXhDBCoW9Kk1rA4my2Wk6NZ/3DJseqN8JGN3iRCP7qUcz/47+4MqxBjuB1ZzP3pjH SiA1AL+VapPyGUAFGXmJJKToZ9oEuG4cxdu1iqA0IUSOw01IxLCOhygDpAJY0FRP+ES+ +hdgmcxYd6+XtBtU+DLaEQ5cETnSHVYasz61B6SoDuw92AflaXhCy2E+PuZkfPf5V/0B kQkA== X-Gm-Message-State: AOJu0YyqHqwxZdnc4hjE3Uo1J8teAQ20a7pR5kqcw3PC2H+/FdlEmdlI 9t7iSfLwPr/mKh/kSoHiHwyGppoInf+l3Ueaey5qZE/C5o1vIBOJx/ais97hdw== X-Gm-Gg: AZuq6aKLNpow9NvHV6sg42Xqw4AhfT+NCZ58Rg3VRyzYZqJ/i9rhkEIsNIgKBp8IZXn 06j9+ES7gD+qTorPYXhcDjBP0qzKshPdNhabdNMyDOvOjl1D/JQw0gzuIeDk+x1G2q7rFfYF7JB 9Fwtvl2nMhiwj7cJ4x/w8aI9uRs+GjgcuL6ULH6ssbhNvzUbsSQUZPzijYvS0o7CvVUfyCeeJRX 5omIc5gKB+3opJpKcIl4TOkuQfWqvU81MPFqIQFyiWqCKzZ6oMykDpXSbsCiN8pa1on0rtYoWr4 pIs2N5W0kI2J8zI2kSXPFGwXawK+uUl1Zyp+GI/Sth7LkRL6+unEHl68LEIRfY3uQgE2O9dEv3Q UZUjMS+f6in+hLsRTX2g4mFPYUpG0g6ABL2RyX5gHSgnfCADEvVHe3ICUvikAEtAhv7gXYjA3jw VW/tgCFGvML0oeYuAxg47NNy20rhwOl5edypnKrymYRFKtzGht3z8MJulhmiL58ziZpvf3hl0rj vUWJ+fjcVc0h1DIjzYNm6JIkcc= X-Received: by 2002:a05:6808:1793:b0:45e:fbe0:1bf3 with SMTP id 5614622812f47-463b409b4a3mr4845137b6e.52.1771363378953; Tue, 17 Feb 2026 13:22:58 -0800 (PST) From: Taylor Simpson To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, matheus.bernardino@oss.qualcomm.com, sid.manning@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, richard.henderson@linaro.org, philmd@linaro.org, ale@rev.ng, anjo@rev.ng, ltaylorsimpson@gmail.com Subject: [PATCH v3 7/8] tests/tcg/hexagon: Add test for revision-gated instruction decoding Date: Tue, 17 Feb 2026 14:22:44 -0700 Message-ID: <20260217212245.95321-8-ltaylorsimpson@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260217212245.95321-1-ltaylorsimpson@gmail.com> References: <20260217212245.95321-1-ltaylorsimpson@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::229; envelope-from=ltaylorsimpson@gmail.com; helo=mail-oi1-x229.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, 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 @gmail.com) X-ZM-MESSAGEID: 1771363429803154100 From: Brian Cain 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 Signed-off-by: Brian Cain Reviewed-by: Marco Liebel --- 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 0000000000..26b66f5455 --- /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 f86f02bb31..0050370806 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 v68_scalar HEX_TESTS +=3D v68_hvx HEX_TESTS +=3D v69_hvx @@ -106,6 +107,11 @@ read_write_overlap: read_write_overlap.c hex_test.h reg_mut: reg_mut.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.43.0 From nobody Sun Apr 12 05:51:26 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=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1771363451; cv=none; d=zohomail.com; s=zohoarc; b=AjWy8q0mI50BQj5LkfE2GcHFBn5k4v3wjzJUnUFIad+xMc9EgtN6ksHLr6cWvvIwnsvTMl1PKxSEeSrLNtdvhLJnHeP2IU8pii624BF54YINoaz72uVOTdk7wC34lOWrSZJFUObpavyP2HeFYZtYZaBe6/iJtreEWSZ5+KIYPRk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1771363451; 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=lTbyHx/pgMkzLCi63IJBxq0762O7SfGtXcz6O/gjW6E=; b=UoaP/vEH89Uf/7h+IUptFhF4M1cUczP5YlkpQSPstEHaPzptptrj4d/NL4F3SPZhyrkdgp2y5dKHg/FEp3f4XJ4woBZVmSrsSvjqitaQRYsZrbfqNFR4OJ0ULtLQM/4l9GElb0MoZODYvbpHcp7B8b3F6LuAF144d/PSAIj1jnY= 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=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1771363451950605.0238269046537; Tue, 17 Feb 2026 13:24:11 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vsSX9-0002jN-W1; Tue, 17 Feb 2026 16:23:04 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vsSX9-0002iw-5j for qemu-devel@nongnu.org; Tue, 17 Feb 2026 16:23:03 -0500 Received: from mail-oi1-x231.google.com ([2607:f8b0:4864:20::231]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1vsSX7-0002KS-FE for qemu-devel@nongnu.org; Tue, 17 Feb 2026 16:23:02 -0500 Received: by mail-oi1-x231.google.com with SMTP id 5614622812f47-45f015a3259so1411529b6e.2 for ; Tue, 17 Feb 2026 13:23:01 -0800 (PST) Received: from taylor-ubuntu.. (c-67-172-136-152.hsd1.co.comcast.net. [67.172.136.152]) by smtp.gmail.com with ESMTPSA id 5614622812f47-4636ae8f86fsm12899319b6e.3.2026.02.17.13.22.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 17 Feb 2026 13:22:59 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1771363380; x=1771968180; 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=lTbyHx/pgMkzLCi63IJBxq0762O7SfGtXcz6O/gjW6E=; b=Ze6/H55s23iCBKk8QXHA+Kabtm6tmFP0i63Pi58a+37sQhuCxot6q8kae/coxi1dRu L12OvyS5x6FenhhuEwUh2x9cxGQz1G8L6l8dUcJ/CHFg82Z3xk2OS66cQFHkz5sNL8hb PGDzAUpWg7Zz0ZsW2AG5qXlORnvGk8xtAjGTBpkNbszkoC5NrFgZwO6m36f0mVvG7WSN MESGDPj1Tj5OSc3yR5rWEEeSAyS85jmRK5SzkVhuUZNbuMi/3uDpFZQxZlcXm+9L8xzM SbcxMmtp/T86cdf7JZDl3vSmwp1WAk5qX14RgX1Pc6A6siJuUIgMjrqrvvLoeA1vJeL0 MeMA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1771363380; x=1771968180; 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=lTbyHx/pgMkzLCi63IJBxq0762O7SfGtXcz6O/gjW6E=; b=IwXBEgeOERy0r0AkJ71MgJR3Z4T0K0eyg5MIfe16XTeZbbF5jkw88PrgIYsukJVRsx xcf9hB7DKQcWHcTP9qhdlK+E6O8vXzPlok4Lo+hD8K88iT3VKCthE9NS1I15rvnWQZGs sBzDilC+VF3EaDmWS21cCjcFEAZakfm9NbhsZzfmJBCq0HQoYOdBpj1olN0asA21FNKq TlP80rgoPdXW7kDkCnBRxQTWfIhJRsB62vOCiLQb7C3e1uw1qsu0N5Ob7VUrizQvB1S0 mqYlwjgj5wWam9ktPuRPGcciOiIYaMYUV4Je9Jt5afvGhIDH7aYm2oNP+TLYFDQKi9rY 3Tdg== X-Gm-Message-State: AOJu0Yw4VIEHntqnOwWOa8V1J5oUh8JRsV+b/4fa/1FXIm1j6t1Ap3LR OsjaaxROehw3851jrW/W55puUv9D7ivTq0dFayo1Y82Bl7uMHOsi0lyRjfhEUA== X-Gm-Gg: AZuq6aKhiLWnsiOz/MVcSrdN/HCfxBmldguXZ80OrlEx9Y4614dbAAv8bQkp2TWc7li 3tXhWuEqIP8h3ia+VYvP5y6u43CgDeqSffNHuBGgIqSScjZNJHPr2uPA1GjUMi+Cj0wz6G/AfPj ZltEVmCf1B8mM3Ic9qjqUuAw3Qa+sPKFEj/ZeESs4rxeUEBiZEcXQqc58sWW6r0JT5HIUe4uck+ ODHmV+mtWBF0lYiSjTG3DyVikX4aljkaUi3vYwHfxmvdv+gO13azb0a1ybP1fORQX4UTci/SEmK HzteXif2bJHFCmRRKznv90qa54mJzkgTsfUmWkwKiNgxuIqyRqNGuKGptQd3FTLeANAUCRcYlFl ailUCkTcQwascqSssDQDhAy/1gAApTRmzdzlgBXs3ebtonk5MPsFDEdl1orkvQqCrbwDh3nimLU PjjnBOZQaMyOvL62APh6B14UJ1n+Emcy8KOKqGfk4uHxshbjzjFxF/Cafv3x9J7rxgnz5OuKh17 HrL7fzW8nmpFnpw X-Received: by 2002:a05:6808:f0f:b0:450:b43b:3142 with SMTP id 5614622812f47-463b41fa1ebmr6730069b6e.67.1771363379913; Tue, 17 Feb 2026 13:22:59 -0800 (PST) From: Taylor Simpson To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, matheus.bernardino@oss.qualcomm.com, sid.manning@oss.qualcomm.com, marco.liebel@oss.qualcomm.com, richard.henderson@linaro.org, philmd@linaro.org, ale@rev.ng, anjo@rev.ng, ltaylorsimpson@gmail.com Subject: [PATCH v3 8/8] Hexagon (target/hexagon) Remove snprint_a_pkt_debug Date: Tue, 17 Feb 2026 14:22:45 -0700 Message-ID: <20260217212245.95321-9-ltaylorsimpson@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260217212245.95321-1-ltaylorsimpson@gmail.com> References: <20260217212245.95321-1-ltaylorsimpson@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::231; envelope-from=ltaylorsimpson@gmail.com; helo=mail-oi1-x231.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, 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 @gmail.com) X-ZM-MESSAGEID: 1771363453648158500 Function is not used Signed-off-by: Taylor Simpson Reviewed-by: Anton Johansson --- 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 6f84ef93c3..de962b5f2e 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 22b305f018..a7e46f4bcd 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.43.0