From nobody Sun Apr 12 04:22:16 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=1770867351; cv=none; d=zohomail.com; s=zohoarc; b=dz50uqcWbQ1RzwSA2c7FFbxPjYzbXKCexAkev0AGHilxoE462kLAAGcsob1AYZwawXUgMJAM4+JIhOR5KLFICR4N9gxlsiJojxXajdrJJ/Y8TLmuZMbGeTf/KRiF2TFn1QUSZPY8K5CyqIez9IK+ggbJ/uvS5cgaRkIRTE2qGno= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770867351; 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=xRXKnuEh2uHJat43zyXFYeTE1jG7/LV3dKmllN9ZhII=; b=UOimHsBnMgWsvFuxVzBR03HCcgf+oOt0vuLbo9G1AUhfRTqRBawFPcosereGpbVWbX8VYEku57rD33i0Cy7/sthffZ3j7ZZ3CBkIS8nU44wb5UwYK7yLTnXiXsYXOzdeF1tpRwxSB7rDxnTnIdLEhzsiFkxrxCgSSARVDyTcFrY= 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 1770867351344969.0745914467731; Wed, 11 Feb 2026 19:35:51 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vqNTZ-0007i1-9P; Wed, 11 Feb 2026 22:34:45 -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 1vqNTX-0007hK-JG for qemu-devel@nongnu.org; Wed, 11 Feb 2026 22:34:43 -0500 Received: from mail-ot1-x331.google.com ([2607:f8b0:4864:20::331]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1vqNTW-0008H5-34 for qemu-devel@nongnu.org; Wed, 11 Feb 2026 22:34:43 -0500 Received: by mail-ot1-x331.google.com with SMTP id 46e09a7af769-7d189e5b05eso3103076a34.0 for ; Wed, 11 Feb 2026 19:34:41 -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 46e09a7af769-7d4a76e1b0csm2682858a34.14.2026.02.11.19.34.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 11 Feb 2026 19:34:40 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1770867280; x=1771472080; 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=xRXKnuEh2uHJat43zyXFYeTE1jG7/LV3dKmllN9ZhII=; b=ckoSkvOhTpn8nHaMST198ARZ7VDlXPn6ooPdCh36SnRAAakHHAGAF1p9wtVk6/0ad7 enXvscUM0nUsChsyZhMVe8aswHqh+TmGBsERZq6sqGsUvm+lTVooYQp/Oo3vv8RyHHhk tWOkDCMpqQDr3gULZGOuWNsBmSttM+rbr/H9qdmrGKCScyNrDNWCQZUVEpKrCJFogmb3 w24ZfjjuoMxdsuc6cWVRr30AbGY8z25KxWZpdJf9Ov7BvlP4L+n8AG0A8yWW5PcR8QRz TTnjaPIM3LYx0x5/Wm7yesZbQPOJ2w3qqRdEz4Brk0nPxYDRYdcyM4l+LgJ5qkiBTfOD ytwQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1770867280; x=1771472080; 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=xRXKnuEh2uHJat43zyXFYeTE1jG7/LV3dKmllN9ZhII=; b=HovnY2NCcMKc7S2gxM9bVM5zKahJMDdsvQzqFj/qeSgcKhseahZkBuLYGyu3h0wjXy brQh+JQfpUwUL3s9tRZ3r/o6T3m/vXnxyaLxKgSKNanfE94MGHwwDGtYnjgNngUSmL7H 4cb739eXaa7W1w388xIhPJrDl32kxCdY29oVfx92IrQkVAvgrJaSjC2V/Oe5vrYmbrXP U1bwMLdp392T/VpufR1MVcuzM2En6YXqN+en2ifjoD8nucbqRQkNAj6EBe6lWnatIMGH gaiezBqXJDTG/7lRawhwMHroDYSTIQBvTOHWq/lRQ8QvlwwDRQ4iHc1BRaEmZcoFZUXB cjxA== X-Gm-Message-State: AOJu0YxONTQLxK9WNwJ3iFQsIpQDQkF+HJ55j/CWcapStsfhtlaZ7tyU bi19tcd3QzSY5CCI7XeHw13OZGL7+ikoWstjl4GR51coR2uw5RIXOwdwtLG8eQ== X-Gm-Gg: AZuq6aKoEzmWodtdkjBjvSnm05hi7Rji9fA6qtpMqZWd4dhEuAqAAZ5IlL56+56ynM1 YNVRLS3xEKLy8nfzRc0TYSS0hLdkcZ2RV5WHWABJGFEezITROAPDTSPVmHg7sefY3m3TVlEo95D ej6qOOhbIoWbFVkERFcsKvsqCDDvJ3hQcK4Nn/UIJlCoM2oVkY6LKrfHwiJ17unmE3B7tnIK/CX XYcesw1XUOJOn37bqwlYGWVsxj9lauOqtq/TUn4v15MpLHWuaw+A2NzoXLz65JAo3NiziwOifmF y8Dsa7QuMMD7QgXq7WWGxtwz4Wf0fTF9eT3RtythlUEt6S0loqxk+y0bSySbSBDfmP/YWfl3Lcz d6LQl7NsLumzWVKVJppKlwrjYiKuWApiPEBWltdsgaTCH8+am9oq10a9Wby0L2vcxX23S+3cpFe v2UI5047W499qHPO3kciyW+vVirb1u5iOaUsHf9n8lvrGBhTImBuz3azdrE0ZHAkAIjMNvsk2DI 7NCuAp2eRsAdRoH X-Received: by 2002:a05:6830:2650:b0:7cf:cb09:b7e8 with SMTP id 46e09a7af769-7d4b2b1d5eamr741931a34.36.1770867280515; Wed, 11 Feb 2026 19:34:40 -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 1/8] Hexagon (target/hexagon) Properly handle Hexagon CPU version Date: Wed, 11 Feb 2026 20:34:28 -0700 Message-ID: <20260212033435.3598-2-ltaylorsimpson@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260212033435.3598-1-ltaylorsimpson@gmail.com> References: <20260212033435.3598-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::331; envelope-from=ltaylorsimpson@gmail.com; helo=mail-ot1-x331.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: 1770867354024154100 Add the following CPU versions that were previously missing v5 v55 v60 v61 v62 v65 Create an enum with the known Hexagon CPU versions Add a field to HexagonCPUClass to note the Hexagon CPU version Co-authored-by: Matheus Tavares Bernardino Co-authored-by: Brian Cain Signed-off-by: Taylor Simpson --- target/hexagon/cpu-qom.h | 21 +++++++++++++++++++++ target/hexagon/cpu.h | 2 ++ target/hexagon/cpu.c | 28 ++++++++++++++++++++++------ 3 files changed, 45 insertions(+), 6 deletions(-) diff --git a/target/hexagon/cpu-qom.h b/target/hexagon/cpu-qom.h index 0b149bd5fe..830a2f8cf8 100644 --- a/target/hexagon/cpu-qom.h +++ b/target/hexagon/cpu-qom.h @@ -11,11 +11,32 @@ =20 #include "hw/core/cpu.h" =20 +typedef enum { + 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, +} HexagonVersion; + #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 656b7dc044..071fc2b6b7 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; + + HexagonVersion hex_version; } HexagonCPUClass; =20 struct ArchCPU { diff --git a/target/hexagon/cpu.c b/target/hexagon/cpu.c index 58a22ee41f..09a0de3c2f 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -27,12 +27,22 @@ #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) { } +#define HEX_CPU_INIT(NAME, VER) \ +static void hexagon_##NAME##_cpu_init(Object *obj) \ +{ HEXAGON_CPU_GET_CLASS(obj)->hex_version =3D VER; } + +HEX_CPU_INIT(v5, HEX_VER_V5) +HEX_CPU_INIT(v55, HEX_VER_V55) +HEX_CPU_INIT(v60, HEX_VER_V60) +HEX_CPU_INIT(v61, HEX_VER_V61) +HEX_CPU_INIT(v62, HEX_VER_V62) +HEX_CPU_INIT(v65, HEX_VER_V65) +HEX_CPU_INIT(v66, HEX_VER_V66) +HEX_CPU_INIT(v67, HEX_VER_V67) +HEX_CPU_INIT(v68, HEX_VER_V68) +HEX_CPU_INIT(v69, HEX_VER_V69) +HEX_CPU_INIT(v71, HEX_VER_V71) +HEX_CPU_INIT(v73, HEX_VER_V73) =20 static ObjectClass *hexagon_cpu_class_by_name(const char *cpu_model) { @@ -395,6 +405,12 @@ static const TypeInfo hexagon_cpu_type_infos[] =3D { .class_size =3D sizeof(HexagonCPUClass), .class_init =3D hexagon_cpu_class_init, }, + DEFINE_CPU(TYPE_HEXAGON_CPU_V5, hexagon_v5_cpu_init), + DEFINE_CPU(TYPE_HEXAGON_CPU_V55, hexagon_v55_cpu_init), + DEFINE_CPU(TYPE_HEXAGON_CPU_V60, hexagon_v60_cpu_init), + DEFINE_CPU(TYPE_HEXAGON_CPU_V61, hexagon_v61_cpu_init), + DEFINE_CPU(TYPE_HEXAGON_CPU_V62, hexagon_v62_cpu_init), + DEFINE_CPU(TYPE_HEXAGON_CPU_V65, hexagon_v65_cpu_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), --=20 2.43.0 From nobody Sun Apr 12 04:22:16 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=1770867320; cv=none; d=zohomail.com; s=zohoarc; b=cTCXGf/MFoAEmANBNb4w4qPAeyWRSmZxKwpZlZPTsxWb1ZdE8zs0eOgBpSwK8k5tqbX9uE+l4soO7x6iGUkAiddkvBAm6edbDXQbrZ8L6vPw2rHFHnyciTJDtY0+K0Va18eGZGM3AxKi/s14vxMwjkzxG/k4+KJIcuRxzSjRYyc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770867320; 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=KoPxVcuhg1enh/KXyQgcjQAq9GTcm8yUDWfPSH9hmLI4Iwe6ko+/XPYisNozERM7Nilx4Pu0Byt/lQh0HEBaxDkqms+gJzpd5rNi+o0TR9k2/nyTIPQyVeu3wM9O1nLJNwkN+O1jqMoWpfWXrNW+522+bOfQ+EMVxHczTDNGQkk= 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 1770867320621817.7581873901815; Wed, 11 Feb 2026 19:35:20 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vqNTa-0007id-Mh; Wed, 11 Feb 2026 22:34:46 -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 1vqNTY-0007hU-A1 for qemu-devel@nongnu.org; Wed, 11 Feb 2026 22:34:44 -0500 Received: from mail-ot1-x334.google.com ([2607:f8b0:4864:20::334]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1vqNTW-0008HA-SY for qemu-devel@nongnu.org; Wed, 11 Feb 2026 22:34:44 -0500 Received: by mail-ot1-x334.google.com with SMTP id 46e09a7af769-7d18cf89e72so2017169a34.1 for ; Wed, 11 Feb 2026 19:34:42 -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 46e09a7af769-7d4a76e1b0csm2682858a34.14.2026.02.11.19.34.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 11 Feb 2026 19:34:41 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1770867281; x=1771472081; 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=jmEZZxNwqp9/VCYl9LQwbo8rcvkddOg2d49GI50VcHkQb3Gj30dMckuIT/CrjcLIUH /H3p39t04ftc0yKROTKIqNTcKElE3QScb1siMNkK2bAYM5A6nZiu2smvTaDAjmdJExtQ +VBxJ5XgbIR89jLg4aH/flYTCz2OwymAFANf0dZQErJ0PMcM0B8xlWc8tQ0LUa/GHIxB Pti6z9dt1FsMbjxS+kyq9uDOyV2J0zo/3qUY72VTHKFNmtMll1AUcQrI4dcZWLSGKk9C iBZw0GTDbldpfUFdLJ9m6vD/oqZeVSFwxEHExF59slioIxyDyMI0OnsAUHe9YSeqb0hM hs1A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1770867281; x=1771472081; 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=pBnckva68Phqo1NExxrGypGPog82QaQCVibFEhvo/EC7+G7SLzrhjbTYLPP8X18C+w XtXy94lVs/b1YVtTzrMoOfcf2Wp3LJKH3m2NwoJm2I4oZr6trEpjs2pl1YkJ19cStr4r UV+7mOQDgfnY3EBNGueB5f8M8FhbemnUx7by4J1yvX3Dvbqy1vpyJ4eWmvTuLloVQRrk wZI9pmqIA4j0Ig/WC++jCGNvWUDxieWfxXUpHpfT9kMXUlthuTDd8IC82AHgMiNtYxfc MteCZ95FADy0+2GUNLwFOpmKAUOjNZzt4io2ENrrw5Vv3UNi9PNbdd1VPNCzoXtlK0IA Y0Bg== X-Gm-Message-State: AOJu0YybaFenqEtOT5o7B9Vepq7kny7DB9IE0swSOGfu+NDlNVNyPgpI Y11QTbaqZnwWNzNIiBhP8sZrI7GziqMR/k4xc4UrRofFgzHj3WUeAU3YU3BdsA== X-Gm-Gg: AZuq6aJ+ss3njJvT23r+AIwXewiF6RyI4L43kDmX8fQpdST2kYtwM/8KKnWtIadSbMD 1IMYTGYHZtdBkZarH5Us7Msa6iDjys9GjV1O+VvzlXe/MT9f5ABBRRIal+OUTQLZnSL+W1ug5M6 pPOrfndwh+cT8K0Fmaglxv/DJVIBRdmLaM4Te6+4ZMS4BOpvk5eZMuv1/MwX56cnPkwOG5+/vD/ RXZLUwx/0K2dHClFmQuLj+qih82cG+VoCiz2e5ZqlN0bEozKhlkq9bXRxqrtd7O7Q5CQmvOy75t RNqKViDzB6Bx0Q3YuE1Mklh3WJ9M0SFSbSZYCYS8zA7k40W3zGDrObmPKUheg9PM5nY5y9p4Vy4 WKjqGCj/MZSYUy+FGiqqEGTV6pkXgWkJPTWSB0Xl4qS2ot2i0/4ZisZLDGF2rYuqO2Vj06/q29p iRL6TQy9VNQJH/QeHtdPG6SxUw8A0Eo40hUU1qxgl5t822udhZlMXGCWbTCvEVo84ybsayvFrPF khIwVJUM+LoQpIG X-Received: by 2002:a05:6830:490c:b0:7cf:e32f:de72 with SMTP id 46e09a7af769-7d4b3ff6d3amr633310a34.6.1770867281482; Wed, 11 Feb 2026 19:34:41 -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 2/8] Hexagon (linux-user/hexagon) Identify Hexagon version in ELF file Date: Wed, 11 Feb 2026 20:34:29 -0700 Message-ID: <20260212033435.3598-3-ltaylorsimpson@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260212033435.3598-1-ltaylorsimpson@gmail.com> References: <20260212033435.3598-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::334; envelope-from=ltaylorsimpson@gmail.com; helo=mail-ot1-x334.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: 1770867321438158500 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 --- 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 04:22:16 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=1770867358; cv=none; d=zohomail.com; s=zohoarc; b=MgAM+uPYGjF/PFgQNp4PfvMJXiFd0RebmIpIxa78W/t8SPbNUHUIY+i4BkTOuCz9NAR4qngtAsng4c3xKPqr7OEFDQxT6ITRrYJGoEhVz4PCTAXcKuVfXVFlah2aglFI8JErW2c1pallsjnhJrVBeymgv/eTgOwfsJwvpUazZuU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770867358; 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=fdmJlwbRbC2WjvwLByVwTDU+h5jmM+h5HfgvxvCTvmM=; b=bjTOidlRtnA9UMuw+fbbjRROIrBRWksdEefOZszG4OOXnaEcuFxoVnXk5jB+nNAo+f4RLn1jNIMxyfXc5UjLLa5JewQvbxDggC/XRvgs0EKzEIKu24xbg19glQWeIYP9/PGzpffC1b6curjPvoCyzUP0hTsLpnmQQ5zftLFzMpc= 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 1770867358098528.7132658516538; Wed, 11 Feb 2026 19:35:58 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vqNTd-0007jh-2E; Wed, 11 Feb 2026 22:34:49 -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 1vqNTZ-0007iG-Nz for qemu-devel@nongnu.org; Wed, 11 Feb 2026 22:34:45 -0500 Received: from mail-ot1-x329.google.com ([2607:f8b0:4864:20::329]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1vqNTY-0008HO-9G for qemu-devel@nongnu.org; Wed, 11 Feb 2026 22:34:45 -0500 Received: by mail-ot1-x329.google.com with SMTP id 46e09a7af769-7d18dd2adf7so4491731a34.1 for ; Wed, 11 Feb 2026 19:34:43 -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 46e09a7af769-7d4a76e1b0csm2682858a34.14.2026.02.11.19.34.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 11 Feb 2026 19:34:42 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1770867282; x=1771472082; 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=fdmJlwbRbC2WjvwLByVwTDU+h5jmM+h5HfgvxvCTvmM=; b=TNonaCeLv0sz0LCE+lp26ymLkyR8VnTe0byOgPIpsDD701saiIlH/YLT/Ewc7ioiVO iVknFQUbIlALX3KJYcKyQmjUlCjMmBOsT8tGiIuFHAVmdd1l6W24l00QYcUIMbpvJVJk tQ1u6U6MZPSGu/bJHigQMJ++fJvGYlwpvXSlR8/yFzC9+ty9e6/shbqeuMn2bPuuSvMH RRt8zUXPhnVdcBHKDY4Y+L0bNva7w8zG0rMgC1Ms9GAwNNLmdHqNjaKXrXn2X9GJcLIh gmLJLyYJC5JfT+WQcGlflM7NooAlebCkilwcqHNqAv7ZVIj9uk3t4c7u+Q8xa7yGEHg3 1cVg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1770867282; x=1771472082; 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=fdmJlwbRbC2WjvwLByVwTDU+h5jmM+h5HfgvxvCTvmM=; b=T8SlLVwgwMp+iAX5fb5h4Vt0cHTrI0uQ0VhriUfterTzmixMmFS+ncLsn1pU9lJ6JJ 9MjQJMwuL7MaZ7mU9yGOKk3F1zZxLWMJJI25JjB1lM6fZa1PuefRoig8zEQPLAl2T+c6 4+xosYc1hwgHUOxcsfJYwwNxjJ36W5wd4XL9ZbPCTc++6iauaKhnHkbga3GGBAsGo120 oYWeiAcXvqb85Q2UPQd8nXjF9nASu2xkduc7LoigGq+cRwYhizw25z1vGCFAT5SR0f5D NJSu499rnqWQY7jgB6+6He0VejJI4WtP72+5tgVjUQ1YJd47jsLVBNBuf9FwRvj047is ByCQ== X-Gm-Message-State: AOJu0YxZ3MS93QalqjthJG+8ap0JbsL0ut+BRqv46yHtjTEIsguUYvXM F9gO1xyzOuUYgnjqY6jA24YwUulhqS1gBA6veYUoo1n4F3uzvbYK5W7Ri58fWw== X-Gm-Gg: AZuq6aIGDmrEnHboxV5fGEZbHMeGgKaEJU0BWOpOhR1E/SqSL44FsRheg9bcnaitFCX m9Qm85gJazVGsImddUtAVl0XWdB1I3HJaWzKiqwyz6UBl4+eYyGu6dpIVq8QoJxLnbDJKOQFh/K m+jRSSj6LzC4ATvlwzUEuD1YTOwk/KUWI2e3YLZg+61ku2Vv8GI/z1YaoK7TtmuUyVTudwkdAxA 42aAf1NvD/cnD463kwrr/HNfdf21+jYi0wlmAXWLyfiL2Ars9qabdIz8/3DM3UL24AuC3nq5jkm jiqvJUGgTa4t7Fvs0pzqN0aMfl+IpCXANsmG223pslBIWjPYJ3Sfc2eRVNMibd0eFUqz4vP3a5R 6nouCz4N2eT9bvd3GSE/7AYzADLqPwGSwvGaIjIgg6BUU88z3LAcV1Lz15R0LMRlScZQ72ndOE2 Cr97bXFDiIRmYKzdZ6JeKcHlw807eF8IX4v4+MRDLaVcG2iZL6VknaHgtklCPeLlQvabjEo2EC6 XjtcH7+nkZWh4hK X-Received: by 2002:a05:6830:9c5:b0:7cf:e4e6:2ce9 with SMTP id 46e09a7af769-7d4b29df1famr784694a34.9.1770867282580; Wed, 11 Feb 2026 19:34:42 -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 3/8] Hexagon (target/hexagon) Add Hexagon version field to DisasContext Date: Wed, 11 Feb 2026 20:34:30 -0700 Message-ID: <20260212033435.3598-4-ltaylorsimpson@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260212033435.3598-1-ltaylorsimpson@gmail.com> References: <20260212033435.3598-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::329; envelope-from=ltaylorsimpson@gmail.com; helo=mail-ot1-x329.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: 1770867360691158500 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 --- 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 a0102b6cbd..7d4236b8b7 100644 --- a/target/hexagon/translate.h +++ b/target/hexagon/translate.h @@ -30,6 +30,7 @@ typedef struct DisasContext { DisasContextBase base; Packet *pkt; Insn *insn; + HexagonVersion hex_version; 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 e88e19cc1a..9498cd4502 100644 --- a/target/hexagon/translate.c +++ b/target/hexagon/translate.c @@ -968,6 +968,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_version =3D HEXAGON_CPU_GET_CLASS(hex_cpu)->hex_version; } =20 static void hexagon_tr_tb_start(DisasContextBase *db, CPUState *cpu) --=20 2.43.0 From nobody Sun Apr 12 04:22:16 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=1770867366; cv=none; d=zohomail.com; s=zohoarc; b=i0+/95fL0O4oiap5JNulefc/4RKuGmmauA/3/0WhJoxfP4+l1B6nhopSX9zm9ezTN//QxXfJc4G4kz5ckKRYukDeax5NYp+yekbyY3T9jaJzU7VJ9MvOzM3opW7mINF4Pab+6KgLp7zr8iYmhijou9Lft+Rba/P3uq7XQulStW8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770867366; 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=vOlmKgS2vbk9b1Bfi6akzOHaQXEZzYfRriG6tDHDMB4=; b=F6QFX9khtY5KhkW7iHJPr9v7nN8zKoTlO7TAE9VEUTdUd0BMJHFy8Hn/1n0Tb2DCIxwk8UwI0cnZ1/lnJjsRDR1+4V7Wj6KLzZDKkF538EOzFwts4IlLbbKuC6xlctNkxLNILkl/xbFV+t9wNKfUEvjnL+yD4orQ/tr+cY/c0Zc= 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 1770867366547192.97057706548856; Wed, 11 Feb 2026 19:36:06 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vqNTd-0007l7-Iv; Wed, 11 Feb 2026 22:34:49 -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 1vqNTb-0007ig-48 for qemu-devel@nongnu.org; Wed, 11 Feb 2026 22:34:47 -0500 Received: from mail-ot1-x32c.google.com ([2607:f8b0:4864:20::32c]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1vqNTZ-0008Hd-5c for qemu-devel@nongnu.org; Wed, 11 Feb 2026 22:34:46 -0500 Received: by mail-ot1-x32c.google.com with SMTP id 46e09a7af769-7d45d37f8e4so1500588a34.0 for ; Wed, 11 Feb 2026 19:34:44 -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 46e09a7af769-7d4a76e1b0csm2682858a34.14.2026.02.11.19.34.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 11 Feb 2026 19:34:43 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1770867283; x=1771472083; 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=vOlmKgS2vbk9b1Bfi6akzOHaQXEZzYfRriG6tDHDMB4=; b=gNIuNuDgQOJDHqkEY+BIBVIcMLZIN7PKSROY79olAH9uSNziWHNpITiNdUlaxRbuel meu76HFzzPcTcBjSMo3PxZySQTToeypEmw/x9ifi74up0uSKLZc65HlcrTjVu65v+c9M aXB5XxVTBCatjokt7h5xIiRBHR/aWKOiPCMddi7ThQjUs1+1aR95UG9q91mdLgwqThmt 43WPmh7eDyZkb7gqRanvR+6DaOEDShsAYRn5xb6Zwg69QLZBYv2lG4W0L6t9Nk6uY4rf 9L+mvG5Oym6xNLdc59kwUIH0EQKLPRP2ReuDMPA1FUQAIl8ZraiMSfsoQo9pRAQGM58C HUSQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1770867283; x=1771472083; 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=vOlmKgS2vbk9b1Bfi6akzOHaQXEZzYfRriG6tDHDMB4=; b=TdoFZYg3OIsobRbVK/6lXvspUxt2Cob8oCs3alcpa/QnNB7iweZvejZQUUc/Tg8U8t gmUMTCQOztArSKPWm0FYHOgxXeYoGRPWIImZ6z16c/yUpe8GyvWqvMptZGcCqljMld0r isY2MoInbwRob1pJevyefMhXH5xydrJr9LD8gKjS9bfW1r82WhT+94whMqMn9uMjwFFX zBNef30fvcS/mlieapayEQ5FCduLEKuE7qUMhm+vd0vDyd5jOoxNNLMHR2ajnm6B6HTh 83z/MZQQ08oh9oKrDVF37jm4JsF93k97ezGNJkQPfFEnpWGSghb41ES0HnpB3cikX7TG IlmA== X-Gm-Message-State: AOJu0YzBf6+UhL7QdPieDaaitvE3HPcqu7WURSevhgxz2ejCc8aY7vvB VYtWefrGoWsGkgSsjc6jtgGZajlXxKOXaCrEOgZRfOPDb6R7FHl7Cqk9wlgQ2Q== X-Gm-Gg: AZuq6aIzZHURDuGtr+PkjvKcc2qs+SpPMRheRCTM0FvZBQgBP8nvZwX9usA2Q9q2KzL jC7BdON+ce42QjxG/9rRu4JBwnjx6hzqqxoXvzD50mVZruBW9rZUzlt2MWjZpyiJjgKomzpt+NS TM9SuwydPVbRCE5PoM6xMGQd3tvUKKELLsNIJX7ehioCDKiRBGZIOpNuRPzvKmKxpvlbdxfeb9r zjlwuzgkptsPEzqg11mmeLDLUmNvzVT3jORiQY32xik1gje55rMEF2oN0WhYcRrUaBdhuJhWHMI B41CcF2KmcfhsoQWtCt0GD8JDkcsIOUYX/AWpAEqj1UaUfZyZWnEPXxwkgpqRXXBJWDnPIc/ymj nA9My0VcumK04vwE9Qbm1+Hy71t8bgyXvGDFr4SMOUuiHnw1M4BngrXW6oFgzyyZhEMWeUYRII7 rP63yq6E0GGK7cHP6z7nN1XXQAIz7i2Mn1+SPStQDLamaI+kSz0e++Nw+76AJ3hp3kMmLXmisjR PkafN3HibxW8yy1 X-Received: by 2002:a05:6830:310a:b0:7cf:d2f3:af8a with SMTP id 46e09a7af769-7d4b4236297mr413041a34.28.1770867283494; Wed, 11 Feb 2026 19:34:43 -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 4/8] Hexagon (target/hexagon) Introduce tag_rev_info.c.inc Date: Wed, 11 Feb 2026 20:34:31 -0700 Message-ID: <20260212033435.3598-5-ltaylorsimpson@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260212033435.3598-1-ltaylorsimpson@gmail.com> References: <20260212033435.3598-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::32c; envelope-from=ltaylorsimpson@gmail.com; helo=mail-ot1-x32c.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: 1770867367539158500 From: Matheus Tavares Bernardino Table that records which CPU revision introduced or removed each opcode Co-authored-by: Brian Cain Co-authored-by: Taylor Simpson Signed-off-by: Brian Cain Signed-off-by: Taylor Simpson --- target/hexagon/tag_rev_info.c.inc | 61 +++++++++++++++++++++++++++++++ 1 file changed, 61 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..ed7fb68aaf --- /dev/null +++ b/target/hexagon/tag_rev_info.c.inc @@ -0,0 +1,61 @@ +/* + * 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 { int introduced, removed; }; + +static const struct tag_rev_info tag_rev_info[XX_LAST_OPCODE] =3D { + [A7_clip] =3D { .introduced =3D 0x67, .removed =3D 0x0 }, + [A7_croundd_ri] =3D { .introduced =3D 0x67, .removed =3D 0x0 }, + [A7_croundd_rr] =3D { .introduced =3D 0x67, .removed =3D 0x0 }, + [A7_vclip] =3D { .introduced =3D 0x67, .removed =3D 0x0 }, + [F2_dfmax] =3D { .introduced =3D 0x67, .removed =3D 0x0 }, + [F2_dfmin] =3D { .introduced =3D 0x67, .removed =3D 0x0 }, + [F2_dfmpyfix] =3D { .introduced =3D 0x67, .removed =3D 0x0 }, + [F2_dfmpyhh] =3D { .introduced =3D 0x67, .removed =3D 0x0 }, + [F2_dfmpylh] =3D { .introduced =3D 0x67, .removed =3D 0x0 }, + [F2_dfmpyll] =3D { .introduced =3D 0x67, .removed =3D 0x0 }, + [J2_callrh] =3D { .introduced =3D 0x73, .removed =3D 0x0 }, + [J2_jumprh] =3D { .introduced =3D 0x73, .removed =3D 0x0 }, + [L2_loadw_aq] =3D { .introduced =3D 0x68, .removed =3D 0x0 }, + [L4_loadd_aq] =3D { .introduced =3D 0x68, .removed =3D 0x0 }, + [M7_dcmpyiw] =3D { .introduced =3D 0x67, .removed =3D 0x0 }, + [M7_dcmpyiw_acc] =3D { .introduced =3D 0x67, .removed =3D 0x0 }, + [M7_dcmpyiwc] =3D { .introduced =3D 0x67, .removed =3D 0x0 }, + [M7_dcmpyiwc_acc] =3D { .introduced =3D 0x67, .removed =3D 0x0 }, + [M7_dcmpyrw] =3D { .introduced =3D 0x67, .removed =3D 0x0 }, + [M7_dcmpyrw_acc] =3D { .introduced =3D 0x67, .removed =3D 0x0 }, + [M7_dcmpyrwc] =3D { .introduced =3D 0x67, .removed =3D 0x0 }, + [M7_dcmpyrwc_acc] =3D { .introduced =3D 0x67, .removed =3D 0x0 }, + [M7_wcmpyiw] =3D { .introduced =3D 0x67, .removed =3D 0x0 }, + [M7_wcmpyiw_rnd] =3D { .introduced =3D 0x67, .removed =3D 0x0 }, + [M7_wcmpyiwc] =3D { .introduced =3D 0x67, .removed =3D 0x0 }, + [M7_wcmpyiwc_rnd] =3D { .introduced =3D 0x67, .removed =3D 0x0 }, + [M7_wcmpyrw] =3D { .introduced =3D 0x67, .removed =3D 0x0 }, + [M7_wcmpyrw_rnd] =3D { .introduced =3D 0x67, .removed =3D 0x0 }, + [M7_wcmpyrwc] =3D { .introduced =3D 0x67, .removed =3D 0x0 }, + [M7_wcmpyrwc_rnd] =3D { .introduced =3D 0x67, .removed =3D 0x0 }, + [R6_release_at_vi] =3D { .introduced =3D 0x68, .removed =3D 0x0 }, + [R6_release_st_vi] =3D { .introduced =3D 0x68, .removed =3D 0x0 }, + [S2_storew_rl_at_vi] =3D { .introduced =3D 0x68, .removed =3D 0x0 }, + [S2_storew_rl_st_vi] =3D { .introduced =3D 0x68, .removed =3D 0x0 }, + [S4_stored_rl_at_vi] =3D { .introduced =3D 0x68, .removed =3D 0x0 }, + [S4_stored_rl_st_vi] =3D { .introduced =3D 0x68, .removed =3D 0x0 }, + [V6_v6mpyhubs10] =3D { .introduced =3D 0x68, .removed =3D 0x0 }, + [V6_v6mpyhubs10_vxx] =3D { .introduced =3D 0x68, .removed =3D 0x0 }, + [V6_v6mpyvubs10] =3D { .introduced =3D 0x68, .removed =3D 0x0 }, + [V6_v6mpyvubs10_vxx] =3D { .introduced =3D 0x68, .removed =3D 0x0 }, + [V6_vasrvuhubrndsat] =3D { .introduced =3D 0x69, .removed =3D 0x0 }, + [V6_vasrvuhubsat] =3D { .introduced =3D 0x69, .removed =3D 0x0 }, + [V6_vasrvwuhrndsat] =3D { .introduced =3D 0x69, .removed =3D 0x0 }, + [V6_vasrvwuhsat] =3D { .introduced =3D 0x69, .removed =3D 0x0 }, + [V6_vassign_tmp] =3D { .introduced =3D 0x69, .removed =3D 0x0 }, + [V6_vcombine_tmp] =3D { .introduced =3D 0x69, .removed =3D 0x0 }, + [V6_vmpyuhvs] =3D { .introduced =3D 0x69, .removed =3D 0x0 }, +}; + +#endif /* HEXAGON_TAG_ARCH_TABLE_H */ --=20 2.43.0 From nobody Sun Apr 12 04:22:16 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=1770867326; cv=none; d=zohomail.com; s=zohoarc; b=L8g2+vWtWuzcyIcGkQgDIY+rDGoxbDUhYICyNw7JqgUWEbHzxlo3AgnGfVVrR8wYd55qLlirHlNM55fp4HUAlCGa+iHsafGVY00L6DTgiD7XPj2azDLPU2JY/olJghUH+NQ0dqDNRENlFh2eD4nPEJasHfldX0I/vtWx16f2424= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770867326; 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=0C9mKY9bS8naSm+Nlm3pxudoZqNzxShH72AlppPstKs=; b=PoksEu9W2w/lcTRU9cnGgS/8prwWnQpLU7qVzvEmx+IHPnOa5SQUB7bUdnbEdPFsWZt5ZoYFnXozjBkQeqC7haG+AcsMEq5DTBMWuxfIwd6Km+AK9UJL/ZRLzw1hdMR1KI01j1QuMRc1lZS+f9RAo7UmTWbvLNztkva5AV4P3ZA= 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 1770867326408313.4082904580084; Wed, 11 Feb 2026 19:35:26 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vqNTc-0007jF-KO; Wed, 11 Feb 2026 22:34:48 -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 1vqNTb-0007if-3x for qemu-devel@nongnu.org; Wed, 11 Feb 2026 22:34:47 -0500 Received: from mail-ot1-x32d.google.com ([2607:f8b0:4864:20::32d]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1vqNTZ-0008Hl-OY for qemu-devel@nongnu.org; Wed, 11 Feb 2026 22:34:46 -0500 Received: by mail-ot1-x32d.google.com with SMTP id 46e09a7af769-7d45d37f8e4so1500592a34.0 for ; Wed, 11 Feb 2026 19:34:45 -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 46e09a7af769-7d4a76e1b0csm2682858a34.14.2026.02.11.19.34.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 11 Feb 2026 19:34:44 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1770867284; x=1771472084; 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=0C9mKY9bS8naSm+Nlm3pxudoZqNzxShH72AlppPstKs=; b=lCY9FB7PcEudwcpMVW62JnXEDrSsc0MSwkojFMokxHsPxNwX1jgnzxYYE98Cvl0Dpd uEwDAC6jJ+6c+nlpeac0uv25lugPl6LAoOXF9s+Y0AQXraD3leimwyvRrNatrE5XxvP+ wi8DKVeBi5XPx6bNV7DNTMUJSAnqM/4gRxOL+1Ta9AifGDbYbqb+JZLflwR5OAMSzply X5SZRg3pd2Fr3hHfw6Gk2tT1f2fVgTH7ESiH1eDsThbsECEEy3Jk5eIFgcSCrbtAfxLP V0M9HGmg22fJw0BLd9NaDX7fgO1a+bkYvB8+tc6+/rDCX+a3vWV2tpLYqFuTpuZnNL+Q wMig== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1770867284; x=1771472084; 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=0C9mKY9bS8naSm+Nlm3pxudoZqNzxShH72AlppPstKs=; b=cJovOm8vOz+BWQvVUa7UW2J+m8G+m2X+0sAuVn0HvOWWxeRmr6M95vXkQZGtStaeRE RUcb80nvjVBm9gYYj7zBQm+sZChc6JGPM3x0P3pDgX325kWBLGaUEHjGBXdYcTUERJau FJoAqo5+89Rs6l+qxbylSIFqLbtaSozkiQInTSm8isZmLfOYTL+N5hoNAHwctCU8dZHT /7Htfl2WTnxXyi6Z7RT0nAMZA5Pfu+W5417bvAke80GpH0kd7xd5F82zpRsEyyCJP+ZY PdRkBB8kULz2EFxDKzfG7Yjji0j3hbdQUSK32KGmHnvl94sLe3dCpiyMIXyWDaW/ASOQ 74dg== X-Gm-Message-State: AOJu0YzMaC92VayLunS435y06jgGwkXuWh39VEuEGq+9HZ8aN0RxP+wS I6+UutSXPxcTakof/6uIfvSSDA+pjBlZP+8D0boQCIjUjxNkttimgE1SHUaKfQ== X-Gm-Gg: AZuq6aIWUQGvmCcP8vOJVgXYgomelO/utLkKykfZHU28cHfAVurFRPFHKDop7XbBoAu NhN8BdQqxXlgQVVWD4oaAL0t5dw7kNL4iJSXE2pfxGpU5Sv0tEieYj4PQbdz9OjBudxiUY+/n/E G4m6VBYEQhIhjYKyJpyFhYbOLY0xZxHw94qzdgbmYTiqSqYvaRMyrt6TwLb8B3CCmcay1OTeQrn VpyJNQIioIHDRyygpYmHbCwM7cEq/t2+e3aoowwqSHwGpPAgKQLmzm4EUtGJ5sYYnzomj0PAswU 1eaUOqC+0Hy0AO5wzIFxOQmo3Ds/ylxctjW00OmMN3rG6R3ipFug+TvlmoEQv7zP1AgSnDibtEo H7DBz1XO9fySZStn47nhm+QjXi17KB61Um/z2gZmX6+CLclrwSbGtXG0/bhqs60OXsaTGtfG3g8 WQiS0z7pHeydNA0nfdY9szzIjZIVCTR6QpHqsKjsn3ZcA9hwTpJ9bECkbw1zqAIb6Mg/GgrABPZ 09LcuB/9SmD6Q0e X-Received: by 2002:a05:6830:490c:b0:7cf:e32f:de72 with SMTP id 46e09a7af769-7d4b3ff6d3amr633366a34.6.1770867284440; Wed, 11 Feb 2026 19:34:44 -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 5/8] Hexagon (target/hexagon) Check each opcode against current CPU version Date: Wed, 11 Feb 2026 20:34:32 -0700 Message-ID: <20260212033435.3598-6-ltaylorsimpson@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260212033435.3598-1-ltaylorsimpson@gmail.com> References: <20260212033435.3598-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::32d; envelope-from=ltaylorsimpson@gmail.com; helo=mail-ot1-x32d.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: 1770867329617154100 During decoding, check that the opcode is supported in the current Hexagon CPU version Co-authored-by: Matheus Tavares Bernardino Co-authored-by: Brian Cain Signed-off-by: Taylor Simpson --- target/hexagon/decode.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/target/hexagon/decode.c b/target/hexagon/decode.c index b5ece60450..0cff15e890 100644 --- a/target/hexagon/decode.c +++ b/target/hexagon/decode.c @@ -648,6 +648,18 @@ decode_set_slot_number(Packet *pkt) return has_valid_slot_assignment(pkt); } =20 +static bool opcode_supported(uint16_t opcode, HexagonVersion hex_version) +{ +#include "tag_rev_info.c.inc" + + struct tag_rev_info info =3D tag_rev_info[opcode]; + if ((info.introduced && hex_version < info.introduced) || + (info.removed && hex_version >=3D info.removed)) { + return false; + } + return true; +} + /* * decode_packet * Decodes packet with given words @@ -691,6 +703,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 version + * If not, return decode error + */ + for (i =3D 0; i < num_insns; i++) { + if (!opcode_supported(pkt->insn[i].opcode, ctx->hex_version)) { + 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 04:22:16 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=1770867320; cv=none; d=zohomail.com; s=zohoarc; b=a/GPZcYg/pKiGT62HjAf0TuAAV3oTVbzN2EMbMkI2rUMnL4W41O7/ZBVGu+ix8t06wA5c03mKc8DDYaNda/sKqFfyG1cIR3+L1t9uYG0kt98DQIGKwi/dqS2RgOE65LoMymlsWmHE/gvIRdYGAJnVuJW79fKKZJz31zS+Q1x/nE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770867320; 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=1vV/gFCM2s8n0DXOgCi7/aaN4xg+tYlUyC1onltEOpg=; b=LVmHTWS8VDzeeF/iAkOWlcuAPsmi5Mwc1o6ummr9hGQ6upMpWs+nRMqBfLUzMDjolb1c1wlSSzzVmb5NeGRrgW41ZbAYlTGi8qF+KHIFz62KZz9bEWMd+VDa460xvhvhTlXHjolUwYj5THMU+LXxKREhuNZPaoqrOo7YXpBEeBw= 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 1770867320777726.202102212295; Wed, 11 Feb 2026 19:35:20 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vqNTe-0007lG-2x; Wed, 11 Feb 2026 22:34:50 -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 1vqNTc-0007jH-Oi for qemu-devel@nongnu.org; Wed, 11 Feb 2026 22:34:48 -0500 Received: from mail-oi1-x22f.google.com ([2607:f8b0:4864:20::22f]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1vqNTa-0008Hx-Uk for qemu-devel@nongnu.org; Wed, 11 Feb 2026 22:34:48 -0500 Received: by mail-oi1-x22f.google.com with SMTP id 5614622812f47-45f004e7d71so1040187b6e.1 for ; Wed, 11 Feb 2026 19:34:46 -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 46e09a7af769-7d4a76e1b0csm2682858a34.14.2026.02.11.19.34.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 11 Feb 2026 19:34:45 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1770867285; x=1771472085; 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=1vV/gFCM2s8n0DXOgCi7/aaN4xg+tYlUyC1onltEOpg=; b=mvI3c4OMYZ5M4M0wrmXmv4aipIQszeJ8b3xXjLG13JcuhXT2GdBLS/MEdSBD/cH2Nm V03eleCzMIAg3eLuctpSLFKqy4k4ZytmjAnut2b5r/iCPrvjkAKiCqa0QtQruf8hKkVJ Si4JngSX+dEBnAAf2mWPeaTVCwQsX/i1EnFmjXoEOqAhNqhQOczQ6zgZPc7amEAtk5sw tGalGIp3A0muZfphRD3MGN8/D/bJV6r3RYEqUEmc2xy6MaYA1AEqWBUeZieU9pfVvn10 lIsFGrJqxPCzbllBkv3obqdgnhbONuRv6RUm2NdY0wkv93Fbq5deyfo29sm7B3+v4nHB P80Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1770867285; x=1771472085; 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=1vV/gFCM2s8n0DXOgCi7/aaN4xg+tYlUyC1onltEOpg=; b=D7vIJXFML6HbakHtN6n/Q0jltgHtg2Sp2Sd6AccudxTa7M/z9+x3O9ju8k15+C9mLl q79DIbHqjLijAhI1eERx7kqISeesFPXJEmHXPdhCIt5CRS7wnJ6S17DAIMttZOr/INfL HFblzj4ao0bHFM/YUHtK9pQHJiRUd6YhOGqUh16VjY5veYtHURHRp05CPau+VXGHVyus SZ6SM01cTB2SKa+G2Xes9NZc0/dji1PuT7bepgHux9RaXY96eQ8HN00JPCMrX2W51kDU 4i9UIgoAkp372bhtuWprBBb0xMBHLIAsZ2sIzh/fKowA5n+cKb+Ta1iAzvQV0XHbyMYd Qd0Q== X-Gm-Message-State: AOJu0YxacakMsLGWe3+2FPfrgarUsM+zg9/hP9m6fznMopyoYahHV3DD YtYm1KVoLYDLrGz8rWkKv/7ehj0TNiBuyVZ6Le0f5diW/5B9YgL+T+qtZy0JBQ== X-Gm-Gg: AZuq6aLjoINX+S3R7HsRQXhxgFKRTKWwrLgQwX5qIQY6HWa5E/1gxqNrpIJxSWuK36U Oz1PhCxJm2lTUe6GfBBJ0Rel4HxZmMa2DBfDkS4etXnEZ8X8DP+/CR9l4WV2mTIH6KJDLIl2v4U 7Qnq+mFSeIxaIvPgEJAWBGb8kFRtM9szbIpkayE5TshBQ49CyR+AODBLRjD4u6x6SWBZHjIIVzN dDB5PkzJydft3Ray+pZIF8idsKVSQSaaNKDqfPD15R2JvCB/Sq/HisVgmzNtT90AfvlvXc8V/ZY G8kH96YTKfmhFFZAXLiX0SSg6Fe1SrRFP2akRzYCKKKNnhHV6MWjzGppGiM6cUi5dmSuPGqOOLU Edf/BPABudBPI1jdoqrUSzQGp5GzzHbYccDe26bnX58DmKq91N4TeWnb8tmD3h7a8jtrR1MxR/4 P+2JGg06amRwCONo9LKkxjZGZdTD92lzY4HY+b7jaVI2TY8K8gakFM7qHSuc0dcgEtmHwVY6UQt nqGE4mbORPETIwW X-Received: by 2002:a05:6808:4fca:b0:43b:7b80:5cf2 with SMTP id 5614622812f47-4637dbbb583mr786348b6e.11.1770867285460; Wed, 11 Feb 2026 19:34:45 -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 6/8] Hexagon (linux-user/hexagon) Convert INVALID_PACKET into SIGILL Date: Wed, 11 Feb 2026 20:34:33 -0700 Message-ID: <20260212033435.3598-7-ltaylorsimpson@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260212033435.3598-1-ltaylorsimpson@gmail.com> References: <20260212033435.3598-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::22f; envelope-from=ltaylorsimpson@gmail.com; helo=mail-oi1-x22f.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: 1770867321508158500 From: Brian Cain tests/tcg/hexagon: Handle SIGILL internally in invalid-slots test Rewrite invalid-slots.c to catch and verify SIGILL using a sigaction handler that modifies the ucontext, matching the pattern used by invalid-encoding.c. Co-authored-by: Matheus Tavares Bernardino Co-authored-by: Taylor Simpson Reviewed-by: Taylor Simpson Reviewed-by: Pierrick Bouvier Signed-off-by: Brian Cain Signed-off-by: Taylor Simpson --- linux-user/hexagon/cpu_loop.c | 4 ++ target/hexagon/translate.c | 19 +++++++- tests/tcg/hexagon/invalid-slots.c | 76 ++++++++++++++++++++++++------- tests/tcg/hexagon/Makefile.target | 6 --- 4 files changed, 80 insertions(+), 25 deletions(-) diff --git a/linux-user/hexagon/cpu_loop.c b/linux-user/hexagon/cpu_loop.c index 1941f4c9c1..c0e1098e3f 100644 --- a/linux-user/hexagon/cpu_loop.c +++ b/linux-user/hexagon/cpu_loop.c @@ -64,6 +64,10 @@ void cpu_loop(CPUHexagonState *env) force_sig_fault(TARGET_SIGBUS, TARGET_BUS_ADRALN, env->gpr[HEX_REG_R31]); break; + case HEX_CAUSE_INVALID_PACKET: + force_sig_fault(TARGET_SIGILL, TARGET_ILL_ILLOPC, + env->gpr[HEX_REG_PC]); + break; case EXCP_ATOMIC: cpu_exec_step_atomic(cs); break; diff --git a/target/hexagon/translate.c b/target/hexagon/translate.c index 9498cd4502..78e0d6c219 100644 --- a/target/hexagon/translate.c +++ b/target/hexagon/translate.c @@ -198,6 +198,21 @@ static void gen_exception_end_tb(DisasContext *ctx, in= t excp) =20 } =20 +/* + * Generate exception for decode failures. Unlike gen_exception_end_tb, + * this is used when decode fails before ctx->next_PC is initialized. + */ +static void gen_exception_decode_fail(DisasContext *ctx, int nwords, int e= xcp) +{ + target_ulong fail_pc =3D ctx->base.pc_next + nwords * sizeof(uint32_t); + + gen_exec_counters(ctx); + tcg_gen_movi_tl(hex_gpr[HEX_REG_PC], fail_pc); + gen_exception_raw(excp); + ctx->base.is_jmp =3D DISAS_NORETURN; + ctx->base.pc_next =3D fail_pc; +} + static int read_packet_words(CPUHexagonState *env, DisasContext *ctx, uint32_t words[]) { @@ -935,7 +950,7 @@ static void decode_and_translate_packet(CPUHexagonState= *env, DisasContext *ctx) =20 nwords =3D read_packet_words(env, ctx, words); if (!nwords) { - gen_exception_end_tb(ctx, HEX_CAUSE_INVALID_PACKET); + gen_exception_decode_fail(ctx, 0, HEX_CAUSE_INVALID_PACKET); return; } =20 @@ -950,7 +965,7 @@ static void decode_and_translate_packet(CPUHexagonState= *env, DisasContext *ctx) gen_commit_packet(ctx); ctx->base.pc_next +=3D pkt.encod_pkt_size_in_bytes; } else { - gen_exception_end_tb(ctx, HEX_CAUSE_INVALID_PACKET); + gen_exception_decode_fail(ctx, nwords, HEX_CAUSE_INVALID_PACKET); } } =20 diff --git a/tests/tcg/hexagon/invalid-slots.c b/tests/tcg/hexagon/invalid-= slots.c index 366ce4f42f..607027f314 100644 --- a/tests/tcg/hexagon/invalid-slots.c +++ b/tests/tcg/hexagon/invalid-slots.c @@ -1,29 +1,71 @@ /* - * Copyright(c) 2023 Qualcomm Innovation Center, Inc. All Rights Reserved. + * Test that invalid slot assignments are properly rejected. * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, see . + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. + * SPDX-License-Identifier: GPL-2.0-or-later */ =20 +#include +#include +#include +#include +#include +#include + +static void *resume_pc; + +static void handle_sigill(int sig, siginfo_t *info, void *puc) +{ + ucontext_t *uc =3D (ucontext_t *)puc; + + if (sig !=3D SIGILL) { + _exit(EXIT_FAILURE); + } + + uc->uc_mcontext.r0 =3D SIGILL; + uc->uc_mcontext.pc =3D (unsigned long)resume_pc; +} + char mem[8] __attribute__((aligned(8))); =20 -int main() +/* + * Invalid packet with 2 instructions at slot 0: + * - Word 0: 0xa1804100 =3D memw(r0) =3D r1 + * - Word 1: 0x28032804 =3D { r3 =3D #0; r4 =3D #0 } + * + * This should raise SIGILL due to the invalid slot assignment. + */ +static int test_invalid_slots(void) { + int sig; + asm volatile( + "r0 =3D #0\n" + "r1 =3D ##1f\n" + "memw(%1) =3D r1\n" "r0 =3D #mem\n" - /* Invalid packet (2 instructions at slot 0): */ ".word 0xa1804100\n" /* { memw(r0) =3D r1; */ ".word 0x28032804\n" /* r3 =3D #0; r4 =3D #0 } */ - : : : "r0", "r3", "r4", "memory"); - return 0; + "1:\n" + "%0 =3D r0\n" + : "=3Dr"(sig) + : "r"(&resume_pc) + : "r0", "r1", "r3", "r4", "memory"); + + return sig; +} + +int main() +{ + struct sigaction act; + + memset(&act, 0, sizeof(act)); + act.sa_sigaction =3D handle_sigill; + act.sa_flags =3D SA_SIGINFO; + assert(sigaction(SIGILL, &act, NULL) =3D=3D 0); + + assert(test_invalid_slots() =3D=3D SIGILL); + + puts("PASS"); + return EXIT_SUCCESS; } diff --git a/tests/tcg/hexagon/Makefile.target b/tests/tcg/hexagon/Makefile= .target index e5182c01d8..8c9d48fc4d 100644 --- a/tests/tcg/hexagon/Makefile.target +++ b/tests/tcg/hexagon/Makefile.target @@ -53,12 +53,6 @@ HEX_TESTS +=3D hvx_histogram HEX_TESTS +=3D invalid-slots HEX_TESTS +=3D unaligned_pc =20 -run-and-check-exception =3D $(call run-test,$2,$3 2>$2.stderr; \ - test $$? -eq 1 && grep -q "exception $(strip $1)" $2.stderr) - -run-invalid-slots: invalid-slots - $(call run-and-check-exception, 0x15, $@, $(QEMU) $(QEMU_OPTS) $<) - HEX_TESTS +=3D test_abs HEX_TESTS +=3D test_bitcnt HEX_TESTS +=3D test_bitsplit --=20 2.43.0 From nobody Sun Apr 12 04:22:16 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=1770867320; cv=none; d=zohomail.com; s=zohoarc; b=kkc7Fn/2O55a3GDl4aLmsNoI4Wpmq0/0WeelcwLcfRfKrfaGRD0awnqMg3CbPfrwR1MDAB2TNV957LWz0/EbF7G5pVWU4sCnXeHkvvJVoICAqu3m5sG+O1FOtg0v9RQ+RGCW001lgu1FByb6cdmL/O44tZWDz2TEtF1QhkS6Y8k= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770867320; 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=h8Lq4sOSSRMCWRXjdXH1KuRIq2HriFTB8nlfBVQIPrE=; b=dSp6Is9XJ4PgJqUKN9dvph2YC4fnTzRH5GiKZ6+cd+S/vtrbBbDwLVeC/56u6+KqExNsXknXctcFtgBf2BMe5qS8U9vkCC7HIqSfkcw6D8Qn25uYa7LqtrQvnZjkadYz6IMnnfSJjEQj52SaarMAl9ROlr4c5m67ouL9AeeeJew= 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 177086732046532.120421948879766; Wed, 11 Feb 2026 19:35:20 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vqNTg-0007mO-4c; Wed, 11 Feb 2026 22:34:52 -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 1vqNTd-0007l6-HC for qemu-devel@nongnu.org; Wed, 11 Feb 2026 22:34:49 -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 1vqNTb-0008IB-VV for qemu-devel@nongnu.org; Wed, 11 Feb 2026 22:34:49 -0500 Received: by mail-oi1-x243.google.com with SMTP id 5614622812f47-45f0b597eb4so1694842b6e.2 for ; Wed, 11 Feb 2026 19:34:47 -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 46e09a7af769-7d4a76e1b0csm2682858a34.14.2026.02.11.19.34.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 11 Feb 2026 19:34:46 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1770867286; x=1771472086; 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=h8Lq4sOSSRMCWRXjdXH1KuRIq2HriFTB8nlfBVQIPrE=; b=bxPc/QP8M0sjJxb0bCwNwm0SImh1bKWcmTZzcDMT4HDT/8blM5Tb6ui5W+Tey8/6+U 4EKh9P3xjlKDyB0P56sk+JrGGsHtLsH8xNwcEE3thstVV0mTnv7TDwHvGAZqJXBJrWuV sG3hZe6fB3mwqJ5yuhmfSJPfYrTb3wQ7acUvV02gCtRmPWpAuQeHZgvh/qt7uQpFfTGB wE0hDDwcOgix4iLIHWeWB7vZU9BAP9xwcZqhvm+QZhmpZsUOe7FCYGAHKkh7w7ffzR9k Dx5GhM6iEB9tzPbY3WDQ6d9+aljf44NifnqkCcHJISzgCYZ9Ajvhx65CWVNYZsEUxnxS XkQQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1770867286; x=1771472086; 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=h8Lq4sOSSRMCWRXjdXH1KuRIq2HriFTB8nlfBVQIPrE=; b=BT16tRvm0eMMh5fD8OO1ThM4bLMxmX7vzF9itfqHRFcydQoesbEoyvDLWmpMPYuhpl EKL9fXi7olugNNF6exC1RpsP6p/R2u10FnMJ/8MOnNHuA8eDySs7mE8HDvFWBjVkH67N LARQv8mYRGOKi7vs+6k7FN/CUi465RPWOGRHP+ATll450kU2e9JPmE0Cg6phJIqVUZDy CtyiTZGnmOrcGbpZRk5OomFrdM0VyPle8ad3T/iJoSW5XCjqCEXxMMnSVMlmDnd1O7NB YgDJ9X8PpPnXys8ozIaVHlTmUs46ufts7novdfFlcMqk0Unhk3Vi9rYO7/NxDML0QnS5 i3cQ== X-Gm-Message-State: AOJu0YxzdYLYxd1HIt3GHGGCtKUbJDswvTHEogFZLDyL+1AVrQasAjfn DGj2zxzxGadCxRhxr0iEM4LX7gkWFy/o0YHHa7BN9PSvRVrsB8f0pA4IyOGkQz2L X-Gm-Gg: AZuq6aK0y/uav1Ztdip4nTZBSj+vVttspHRIvsuDz4Ug8QpvFg/lXZusyvS4Mek6SkN rhc2gj4FrMg+p8UqrtmOAdTTiIDv/stq54ClSMaYyMZO+2wILbzWI/eB/YYKFrhA2SXcrrUHmqa TfRIMqqsLgOE4EWg0a/41b0VgbMJFEkWhxxyCkjgRSiRHATUd14PcJyLy0E2EGzgRrqS0UoItaO 9waEgZP4VLdmQ4VdC4TVDaKhJluaQCxr7Q5Z8OxzMXGxhUAPwOV9g8jyYYtXYq3SPLnOk+Mnf6K 0IDfZTU6ZmQ6co4aGMGRfe5YWVQOVRmOtd4BFXUDtr/3CUr9WnjFDcJAOn+AIFLrFCdokKzibVL buSMqSwmxP1xnZEUOt/wOMW9HgFmiNoZ1SS8TWREtUUD8b81mvyH8pgjbFGXfP9rfIEjxhTcGRe L0CezRhMA7VjqsXXRcWUSgt54HqUIAI1/aQKMq02BKqXWiH66qG7x+FfINcTq+cM50B86dGcq6g PWBGUpI5NlmM9XWo1FpMLyG1oQ= X-Received: by 2002:a05:6808:1a02:b0:45c:7c9e:854f with SMTP id 5614622812f47-4637fc9bae1mr446701b6e.58.1770867286435; Wed, 11 Feb 2026 19:34:46 -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 7/8] Hexagon (target/hexagon) Disassembly of invalid packets Date: Wed, 11 Feb 2026 20:34:34 -0700 Message-ID: <20260212033435.3598-8-ltaylorsimpson@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260212033435.3598-1-ltaylorsimpson@gmail.com> References: <20260212033435.3598-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: 1770867321640158500 We pass the Hexagon CPU version to disassemble_hexagon. This allows decode_packet to know if the opcodes are supported. Fix the printing of invalid packets. Co-authored-by: Matheus Tavares Bernardino Co-authored-by: Brian Cain Signed-off-by: Taylor Simpson --- target/hexagon/cpu_bits.h | 4 +++- disas/hexagon.c | 3 ++- target/hexagon/cpu.c | 3 +++ target/hexagon/decode.c | 20 +++++++++++++++++--- 4 files changed, 25 insertions(+), 5 deletions(-) diff --git a/target/hexagon/cpu_bits.h b/target/hexagon/cpu_bits.h index ff596e2a94..ba580df3c1 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) @@ -64,6 +65,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, + HexagonVersion hex_version); =20 #endif diff --git a/disas/hexagon.c b/disas/hexagon.c index c1a4ffc5f6..9a18f12854 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) { + HexagonVersion hex_version =3D (HexagonVersion)info->target_info; 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_version); (*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 09a0de3c2f..4b16214ace 100644 --- a/target/hexagon/cpu.c +++ b/target/hexagon/cpu.c @@ -314,8 +314,11 @@ static void hexagon_cpu_reset_hold(Object *obj, ResetT= ype type) static void hexagon_cpu_disas_set_info(const CPUState *cs, disassemble_info *info) { + CPUState *cs_nonconst =3D (CPUState *)cs; /* so we can get hex_cpu */ + HexagonCPU *hex_cpu =3D env_archcpu(cpu_env(cs_nonconst)); info->print_insn =3D print_insn_hexagon; info->endian =3D BFD_ENDIAN_LITTLE; + info->target_info =3D (void *)HEXAGON_CPU_GET_CLASS(hex_cpu)->hex_vers= ion; } =20 static void hexagon_cpu_realize(DeviceState *dev, Error **errp) diff --git a/target/hexagon/decode.c b/target/hexagon/decode.c index 0cff15e890..bfc769be62 100644 --- a/target/hexagon/decode.c +++ b/target/hexagon/decode.c @@ -768,19 +768,33 @@ 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, HexagonVersion hex_version) { DisasContext ctx; Packet pkt; =20 memset(&ctx, 0, sizeof(DisasContext)); + ctx.hex_version =3D hex_version; ctx.pkt =3D &pkt; =20 if (decode_packet(&ctx, nwords, words, &pkt, true) > 0) { snprint_a_pkt_disas(buf, &pkt, words, pc); 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); } } --=20 2.43.0 From nobody Sun Apr 12 04:22:16 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=1770867342; cv=none; d=zohomail.com; s=zohoarc; b=Y5O+xm2gvqeBQVUCaNmhSaH7sePCt8V45qY7zw/r6UZLkaPnvZ1XTEb7geAlr8halwJhnH6+BinRvLIkhIwjUE92qX4fpvJEAp787o8KDzvdN9OnxcZ1Bv/bKj3jXImTLg+xeB7qKykSXqexQPl8uA/XttaFJtUOm+r4EF39d9M= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770867342; 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=NzVlhugetNyP8PzEvdBpWdkkrVcvMR2y0Y8K/n6syPQ=; b=c5oKl8EVwDIQmeSZ6ysaFcqhBbcocrAGJyyy3hZPqOJUl2Cl1d7mfa6iCggRxm0C/Ce/2o5KP9iYOgQGd7PLRGuOkRCR4LGwono+4q6bxlRMlS9cjb/EGy/716MX+Mbj6W9AOQZuPZ+FjQRbsmPsTlntjQSx0HwFYGS0StF/YGs= 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 1770867342598826.129683418125; Wed, 11 Feb 2026 19:35:42 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vqNTg-0007mN-47; Wed, 11 Feb 2026 22:34:52 -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 1vqNTe-0007m5-RS for qemu-devel@nongnu.org; Wed, 11 Feb 2026 22:34:50 -0500 Received: from mail-ot1-x332.google.com ([2607:f8b0:4864:20::332]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1vqNTd-0008IN-1s for qemu-devel@nongnu.org; Wed, 11 Feb 2026 22:34:50 -0500 Received: by mail-ot1-x332.google.com with SMTP id 46e09a7af769-7d18d9503eeso2291312a34.1 for ; Wed, 11 Feb 2026 19:34:48 -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 46e09a7af769-7d4a76e1b0csm2682858a34.14.2026.02.11.19.34.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 11 Feb 2026 19:34:47 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1770867288; x=1771472088; 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=NzVlhugetNyP8PzEvdBpWdkkrVcvMR2y0Y8K/n6syPQ=; b=bzW0DghsIIevwS3G33aUMzyhpK2JxldCLj0z9YPPCQB4P5gYI8BaCRNnR9xO8RUsHN 1u1MRzDXNEMCwl/Oca07jaWnnQFTuEypcKL2PVDH3bb549i4DLYiRDliiTftT9k7Ym8b s0XtObUAoBCW1py+hZv5Tw8xByIwryPRd62Rg979AfC8EWAZt1yjNFsnGco2GI3eRyAM wyH1hWRAs4oWpfsHqvlET1J0QeOM7odCT7/ES6YMtmDmsLnRQ9/MKiUec7vSF0b+XI0Y GGpHYE7DDh5zsitMgAIZVrE8Imud2KFjnfrC9q5Ye01F18k1KLQTFycuJ3di5SrEcFbO PlmA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1770867288; x=1771472088; 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=NzVlhugetNyP8PzEvdBpWdkkrVcvMR2y0Y8K/n6syPQ=; b=BtvD57CLld4Qx12d9GcQEKOjpAKGSDRrSdsaXrXl0aZtKXHSv+86t8jE+C2n/fItlM c7wt6xIA65D5AVMHhRgKy2h95sXKFZBCl2R2WkIoQJFY60lGwNCCMD55EGZfgzDEoy7P hbfkWT9B6mxQdJxEG1PS91jm4GIJEpYsn/SGgXSzfc88RwW0xLOHw1lqaZPxPx3gOlpR U3mts4LssXLiKcmINzNnIiNeS9ZfLGkzjRdDXDc1x6dSmM7CNXSzCA0tco5Elabu6oXf W23jM7dlvLLvl1EFqdd+2cImHtgBqIfP32H2jk+x5H+G20AGAagBJ74ZEG4RKrbtz65Z 73RQ== X-Gm-Message-State: AOJu0Yx7c4LybV1EqUVlZUFZqFNNNEF9Z1x8P+E21beU1XJ97KjHuy4L GZJ6cblQviJnNxrQpGqhZ6U8LL6TJ3EM5Z92EyaGeKm0ZfSMy552Bpz5FuoBvA== X-Gm-Gg: AZuq6aL2zehayTNroRtwLqCX8VvtNWeKQyS31tjqjAVe3e5lXB83IiyrBxfvX+aAkst FA1A4xSZe7w6bCz6K7AcRfcMRtrpmkVLBEOvMjLUxrhZG1Esc/9KAueaURg/PWT3sulDfkyusPT 3NCLycDjWcvhysgu5wj6rMTrOPj0Cndt/okDVoNG5iATeSN3Z+cWQoESspafUddvjkcqYWB+7cr Pn2PWvO0dddvjyUukdN9owuV7lPobIYCv1QRUUjEZWpUOzzTebPh620aSfTwB+IWc++x+MbL3ZB D8rdR1ECv1HTPCIpzOGPcZMyuADKvTWjZPwztPXoKLW3VC/pLx0U7brCzBrf7CDeIdFYca2c+yc 5M6+eRX9/Yj46/X8scJCeSilP1sv/UpGBKdbiwkWbU4/D9sT0VPUhtZckNXmE+fRQiDDfBRw0Mh 0GT2DsIE2zQt6tofFzNUlhoShLZShCAzKwLluGABOFHRWJVtuk+hlnLZLX8kaI+wJoyhX3Af8a8 Qcofr9Ufd1/NgBs X-Received: by 2002:a05:6830:4391:b0:7ce:519d:10c7 with SMTP id 46e09a7af769-7d4b3fa052bmr571174a34.7.1770867287382; Wed, 11 Feb 2026 19:34:47 -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 8/8] tests/tcg/hexagon: Add test for revision-gated instruction decoding Date: Wed, 11 Feb 2026 20:34:35 -0700 Message-ID: <20260212033435.3598-9-ltaylorsimpson@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260212033435.3598-1-ltaylorsimpson@gmail.com> References: <20260212033435.3598-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::332; envelope-from=ltaylorsimpson@gmail.com; helo=mail-ot1-x332.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: 1770867343825154100 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 --- 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 8c9d48fc4d..c768ba1a4f 100644 --- a/tests/tcg/hexagon/Makefile.target +++ b/tests/tcg/hexagon/Makefile.target @@ -79,6 +79,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 @@ -104,6 +105,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