From patchwork Wed May 20 12:10:00 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alice Carlotti X-Patchwork-Id: 135335 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from vm01.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 05DA04BB58A2 for ; Wed, 20 May 2026 12:12:14 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 05DA04BB58A2 Authentication-Results: sourceware.org; dkim=pass (1024-bit key, unprotected) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=KhgtetYg; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=KhgtetYg X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from DB3PR0202CU003.outbound.protection.outlook.com (mail-northeuropeazon11010009.outbound.protection.outlook.com [52.101.84.9]) by sourceware.org (Postfix) with ESMTPS id 306E04BB58FE for ; Wed, 20 May 2026 12:11:23 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 306E04BB58FE Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=arm.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 306E04BB58FE Authentication-Results: sourceware.org; arc=fail smtp.remote-ip=52.101.84.9 ARC-Seal: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1779279083; cv=fail; b=V7hi3ymE0zBbjREm7ysK6MXpc0TZkJFqFpzwckR39Xfpad2EYOMGute9na5NwONAD4Rnw181gqcL7bxadlziFoUqj+b3AuDspbwRceFV7c/Zq6B+4qQDHd1cbV7a0bBb8aH1OUcV8qYs5zGEwUILvIDAn+GrMJ6j/jLDVlX89q4= ARC-Message-Signature: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1779279083; c=relaxed/simple; bh=8MMHMkEHj4xbt7qWThKYlgP+EPT33fvgLUyDj/ssYQY=; h=DKIM-Signature:DKIM-Signature:Date:From:To:Subject:Message-ID: MIME-Version; b=v48wgPbUYRfkpmT8/IqRRuHwp0dvuxlVD0ruDgDGNJqMtkYGVWrivEtGqdCtn8Ps7mcoQOjYRYJ/ilN0DoXb9fJBx/Pql83ms90hF1IGxdDEHBK2BfkcHvDaKoOYVOfVgdAqiWUn8M6j+9EVRPt+dapslT5E2d4TDSXtCP4AosI= ARC-Authentication-Results: i=3; sourceware.org; dkim=pass (1024-bit key, unprotected) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=KhgtetYg; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=KhgtetYg DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 306E04BB58FE ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=fail; b=eYaiOGxvk8jxas09gWL8cPTSeNSVt4x5EpIYUQeYwK/NmgwuFOJUEBkGRuq1xwgMhlZsrAjgED8iMvPPQ+cfuuTJwL0GnSaWguJoJtV/bR6Wyk2timNffFUd2kZHstjmBRYn6LNqoOI40Xo7dII+AcPW/zIpYFO9jCMi+WhWl3SSau4urVZ6PUyrKj8Qn+7UfMrDLqVtK/m+otOal9vr2AMIzQDHPrGiZGUjsh1kEs0QU0ze72+hPVxLKDUVfjGRBvBYCRKJAphw5ULRjkNof17sk4MQVhCy8F5z1DZtYdCoer3ITG+oK+KayieY8FaPg+XVBd5oG9BIkClKMBa6Mw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=ivh75r0ysR2laqlNd00sVBf2o+QkGTodZrHKlF9DLSc=; b=HYWyUL0vKAUTL5hxwXyvb2UmZi5e9ezz1wmxnSywHNbEQY2qAfNmJDoKrQrzJa7SgDdfkh0GFklRYRW3JUiWXixtTRjP3tvGvDvTCbysG3q8/AWREf8/XN28z0QCDRDeBAutb2FwM7aRJO4mhzgcsYj7YYEVKJdE3M2+ZgNb+r8CbOba1HNawhO/CHHA8DxXgDSreEAKEznEnEJpj4hTj4jMer9plwle9+LoGmVOOilgaLEHJ27Qkw55eT2ZeoaEKY8Lt0p1hJj30TlEdX/v0k10SFMBdqgR6re8Zazqx3d9M8lzK4SiVAMXZfwfRzKCsx4w2+i9wpsrpoULj7XVcg== ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is 4.158.2.129) smtp.rcpttodomain=sourceware.org smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass (signature was verified) header.d=arm.com; arc=fail (48) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ivh75r0ysR2laqlNd00sVBf2o+QkGTodZrHKlF9DLSc=; b=KhgtetYgZrgdeZTqGoZVxLb52AjDj/BJcMm9NoCcE8jYdvXllEHJG7DF4EbelBHw7rbsk66LrG1GvSwDXk+peEUqLhegZDYJvqMXRhvomoCMSlO0Pfty/jTFfGlkfZoihHvNnPT0j0eh7CLwx3qv9forDayTeJMDPV5VOroKxH0= Received: from DU2P251CA0001.EURP251.PROD.OUTLOOK.COM (2603:10a6:10:230::12) by DU0PR08MB7922.eurprd08.prod.outlook.com (2603:10a6:10:3c9::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.14; Wed, 20 May 2026 12:11:08 +0000 Received: from DU2PEPF00028D0A.eurprd03.prod.outlook.com (2603:10a6:10:230:cafe::86) by DU2P251CA0001.outlook.office365.com (2603:10a6:10:230::12) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.48.14 via Frontend Transport; Wed, 20 May 2026 12:11:05 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129) smtp.mailfrom=arm.com; dkim=pass (signature was verified) header.d=arm.com;dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 4.158.2.129 as permitted sender) receiver=protection.outlook.com; client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by DU2PEPF00028D0A.mail.protection.outlook.com (10.167.242.170) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.25.13 via Frontend Transport; Wed, 20 May 2026 12:11:04 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Cd2BBpaladywEWpscnMRK+Ex0c6OR37ua9MgHQ/mxqGVTMslnDngGoUovGxnPcJI0kGMnIz0y94yxK4u2DuuDIHECls+bdKrl0h1E6evxiBMrXEZkTJM2K5tKvCalP2mubAXmxhxfUW4Qlt45mdxOjc4Mc5YtUMsNWFQs1/EwiWJoFoNRwKWMhlM94VGY/HAC+Hxz2dHHAsXcud7suLHDDCZcjHaRLtlzu5poTQ4X05y6a5NB4+0wshKD4AkwYk11+jfg5YjpEy8Bb8n1WSJxP7PObiVQZMpJ5TNJK19AvwgcbIvmDB8DX/KrrH+jNWfMQ82wTH0DDwZdSt0yYx3KQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=ivh75r0ysR2laqlNd00sVBf2o+QkGTodZrHKlF9DLSc=; b=bwqwbmPqEDUWhfU01hDCobJOPh1g/Rh1N9z8oAfMTMsMVkQ248LsmRO48uNLaFpO5+TIqL2HR9F9vkZJVNUOw8NZCUVu+6DSpHSqmzN0/IZQsWNXoSYbGS8QAi0xO2TtXKK9zNyf9R89Q0LP2eBexh2AMz1rtl/g2c7a7YjUzm2L2JT6NuUboYfd6FMR7kc5+gLaCTdT9D4xVYmOSLwgrifkiUbs/R3YUfZFQ6NqVFSG3mn5aMalSVZyeN0CIgdz/tejdv19DLCqiMwOsKvPlmh5QFgsGThsyK7lvzNAoxQPrkvnGXW04RO6FdLMbx6XiFHU+1PrNiKi5s+e4xjDBg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ivh75r0ysR2laqlNd00sVBf2o+QkGTodZrHKlF9DLSc=; b=KhgtetYgZrgdeZTqGoZVxLb52AjDj/BJcMm9NoCcE8jYdvXllEHJG7DF4EbelBHw7rbsk66LrG1GvSwDXk+peEUqLhegZDYJvqMXRhvomoCMSlO0Pfty/jTFfGlkfZoihHvNnPT0j0eh7CLwx3qv9forDayTeJMDPV5VOroKxH0= Authentication-Results-Original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; Received: from DU0PR08MB8255.eurprd08.prod.outlook.com (2603:10a6:10:411::9) by DBBPR08MB6300.eurprd08.prod.outlook.com (2603:10a6:10:209::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.14; Wed, 20 May 2026 12:10:02 +0000 Received: from DU0PR08MB8255.eurprd08.prod.outlook.com ([fe80::281d:22ec:87cd:8a24]) by DU0PR08MB8255.eurprd08.prod.outlook.com ([fe80::281d:22ec:87cd:8a24%5]) with mapi id 15.21.0048.013; Wed, 20 May 2026 12:10:02 +0000 Date: Wed, 20 May 2026 13:10:00 +0100 From: Alice Carlotti To: binutils@sourceware.org Cc: Richard Earnshaw Subject: [PATCH 5/5] aarch64: Replace FLD_* macros in do_misc_{en|de}coding Message-ID: <93a453e3-789a-5792-7e73-c6abc97df283@e124511.cambridge.arm.com> References: Content-Disposition: inline In-Reply-To: X-ClientProxiedBy: LO4P265CA0202.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:318::8) To DU0PR08MB8255.eurprd08.prod.outlook.com (2603:10a6:10:411::9) MIME-Version: 1.0 X-MS-TrafficTypeDiagnostic: DU0PR08MB8255:EE_|DBBPR08MB6300:EE_|DU2PEPF00028D0A:EE_|DU0PR08MB7922:EE_ X-MS-Office365-Filtering-Correlation-Id: 1aae7f3f-2a86-4b0a-b9e5-08deb668ddf6 x-checkrecipientrouted: true NoDisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; ARA:13230040|1800799024|366016|376014|22082099003|18002099003|56012099003|3023799007|11063799006; X-Microsoft-Antispam-Message-Info-Original: a0tE7YJiZ3/DEQdiu6DxYuacF5P78xEUuqJzQQdB7S0P1+CdFnGivZ0dwV2q5Z3jqwgfA99sM6+wmYM4NoLW7PdLwDZAgt4262UApu2KHPtSd9GwrGAtIP2LUixhT3qvmm23dPO/Ci211o3FuH+nzGCjTxbwzs3AkW2jTlW7pqemT4J0Q3O3ekULFqMJsPSh+1iu56vhsZyzGPJL9fC5PuLPiPRnOfzyYpYjQzz65VtJIC/s0M4i0ksU7958RfXDaWbrBnA761tbrBaN7DAiOv4OKgT/k90yKUneqw5Kk+w3oqiDPre0YhqCloMQybi2ODACslwXdltowkHe1D9zcbSf/uW44yDXQDv47p7+6EXWPQbjfGqTAzaLq8MecGlS44dLA1kJXmwj41ZTA9y4Jj10dcxVJG37tIbbuiqciaVQBq4R/+33g6UPX6lOFoUkiU1zMq3qqlyHoPoVjQHSjjmnEIR6l7Wahg5LdMAWq235D92oDPZ0vv1v+8e4JZpiBKXsfeleQ/Gqc8zDtcl+RiNrMeiwvXrKq+4Ok89L9nGtU+YgXGD/XwqPGngEZq5fYpj9zCLCDOLQvyv718fzOCG9iJ8OD9iQGKFjgbmkvfRwgJfreaC1JJVFC5pcy7Z+mA+z918XJBzpGj4Dh0unDaYUPlFVE4E8EzCOs5vv9xlrBYItDjXnbIKUDJDOhSNB X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DU0PR08MB8255.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(1800799024)(366016)(376014)(22082099003)(18002099003)(56012099003)(3023799007)(11063799006); DIR:OUT; SFP:1101; X-Exchange-RoutingPolicyChecked: d2CjJ/umvLebp8H9ViGH+k+rqq6b9lWwrRODNm23WAzHqYUWfMxPwunN9Uu/ocYEBygB6mQZx4hTZWBhvIHHpd9ivJpLsMNZORP0xX4XjUGK+P35nMlQVRjOG0D0y04ECIb3m8kSjJDux3Ciy609iQxvebmhw6vPCX8vdEWEd3rGKO7ZtFEcL5Hn83BUp6AsZAT1NVrjNd6iEgyRv8WivhZA86JfFEANLDw19K1L12RXxRzis844ebzXZdUtnVlQMwo5PpLNcILapdHcAhpihdLuRZcoxKMpSyhQ/+9FwDh2j6iAkG83fnYSN540bSajtTrmvQZ9OsDZidWnLP+BBQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR08MB6300 X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: DU2PEPF00028D0A.eurprd03.prod.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 37c60265-7886-4ec1-577f-08deb668b8c3 X-Microsoft-Antispam: BCL:0; ARA:13230040|14060799003|1800799024|82310400026|36860700016|376014|35042699022|56012099003|22082099003|18002099003|11063799006|3023799007; X-Microsoft-Antispam-Message-Info: +Bsoofu6YXnyW8csQ9I+Zp4p4vv5Pkt+NX8fcevlEaCeiICnxjqGZuP63FfRq84RDe4bWIslOqteGDlfunBX0Fryee/DAjEYbvrY0TtVrwT4S3zRUlftViC37fpbOhhJb4FSag0ZU5AsnH2JVQw2i188cLjvnphiNRcWNmah8OA3zAJ5amdO2IFEz7cd2bS65Bi+0TzwzGjzJGxasyrhaVyJ4+NLzA9gxURGka5mglki9+WN2S1Eex7Y3nBhhE7X+Kl0ddDd5kwE8gxvPKiGHzh1pbDP1Rsarl32iuC4uRmvIPsFxemypQiRRn2VcMQ1jak6aJkx2TuzUCCiirgkGc09kyv5daPCuDnKdCBKjL9YtoZwnXLfjzw6F2pF8etGo+vNU+HKlm9RYn0INcSHklKy3BdAjly0JKhnLrHmHxGaHJQeWAcLhcdNUwzJogyzyrg8ADNVJwUxYxP0NbH5MWqxNquvlgBVqdM6eskRcv1abLlNjTz9+AbP7qsLjFrzE669iIpSUsmeSRfi4p63dCxoQjT/Hwu0rxX94rCrwCl27z7VctQI4E58Zs1S7C2J/N5V+F2Pven1RZaNwcBqnPTcLKPDK3E1UQq3moY5jliRZ4yFB23FYwYWyDDWnNvNqzLlphl72/7/f6KdepJ76eSeJr/ts+wpoS5H7xbaQEelXNh/w/6I8OGYx4lWeCACEsctrej1cUJBPQcur6IifUYJqFfGARQ6PVoL+HtKJvs= X-Forefront-Antispam-Report: CIP:4.158.2.129; CTRY:GB; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:outbound-uk1.az.dlp.m.darktrace.com; PTR:InfoDomainNonexistent; CAT:NONE; SFS:(13230040)(14060799003)(1800799024)(82310400026)(36860700016)(376014)(35042699022)(56012099003)(22082099003)(18002099003)(11063799006)(3023799007); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: eA3CiZGpR7vSIlAjnr6wVH8qfxPkyTsY1fH9qMxvhpgh3/1aNiMHNtaZDtTEa3iV+iJNYarxi2oGoga0vfF5C+YCbmwKQezWhZIEzMBO66HM5vhGrhY2C3uLLhgg3klcoF6ebcfJ0AnaHQLY8yg8tH480MtsWTgRoejx1JR48SfIqjIign4lD0jftrZrZKRX8gjrEE4Cu2n1hAIcRraEuqPBGys6qO/CyE4W2zjr/PgtdiQ4EhuhIwLfA0QwyhQGAWZaKu3p1VHUQ43YwyIf5+LiBvp6hnTCbwkAWO4KRMqRyCi7rPaQEkeHIon7zdAuxP5CiZjT7oNglyxPTR7fX39vwDYJfxcRuTk7UJp17R6jt/WKDlb385b0Cn1ngKJXvr/gRQQ4weFTOHjsPrB6JkgpWds1V3EkG/ZPAX4jjb1KYC0ani1BMwccvfz/L6jE X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 May 2026 12:11:04.9505 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 1aae7f3f-2a86-4b0a-b9e5-08deb668ddf6 X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d; Ip=[4.158.2.129]; Helo=[outbound-uk1.az.dlp.m.darktrace.com] X-MS-Exchange-CrossTenant-AuthSource: DU2PEPF00028D0A.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR08MB7922 X-Spam-Status: No, score=-9.4 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FORGED_SPF_HELO, GIT_PATCH_0, KAM_LOTSOFHASH, LOCAL_AUTHENTICATION_FAIL_ARC, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_NONE, TXREP shortcircuit=no autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on sourceware.org X-BeenThere: binutils@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Binutils mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: binutils-bounces~patchwork=sourceware.org@sourceware.org Replace the macros with explicit AARCH64_FIELD calls, and extend the comments to clarify which aliased instructions are involved. diff --git a/opcodes/aarch64-asm.c b/opcodes/aarch64-asm.c index ef1e093ed94ef3923399e00fbd4495047b5e4969..188cdd8a4770190f6a516aa3acc5a32ca662e207 100644 --- a/opcodes/aarch64-asm.c +++ b/opcodes/aarch64-asm.c @@ -1948,42 +1948,42 @@ do_misc_encoding (aarch64_inst *inst) case OP_MOV_P_P: case OP_MOV_PN_PN: case OP_MOVS_P_P: - /* Copy Pn to Pm and Pg. */ - value = extract_field (FLD_SVE_Pn, inst->value, 0); - insert_field (FLD_SVE_Pm, &inst->value, value, 0); - insert_field (FLD_SVE_Pg4_10, &inst->value, value, 0); + /* ORR/ORRS alias. Copy Pn to Pm and Pg. */ + value = extract_field (AARCH64_FIELD (5, 4), inst->value, 0); + insert_field (AARCH64_FIELD (16, 4), &inst->value, value, 0); + insert_field (AARCH64_FIELD (10, 4), &inst->value, value, 0); break; case OP_MOV_Z_P_Z: - /* Copy Zd to Zm. */ - value = extract_field (FLD_SVE_Zd, inst->value, 0); - insert_field (FLD_SVE_Zm_16, &inst->value, value, 0); + /* SEL alias. Copy Zd to Zm. */ + value = extract_field (AARCH64_FIELD (0, 5), inst->value, 0); + insert_field (AARCH64_FIELD (16, 5), &inst->value, value, 0); break; case OP_MOV_Z_V: - /* Fill in the zero immediate. */ + /* DUP alias. Fill in the zero index and element size. */ insert_fields (&inst->value, 1 << aarch64_get_variant (inst), 0, - 2, FLD_imm5, FLD_SVE_tszh); + 2, AARCH64_FIELD (16, 5), AARCH64_FIELD (22, 2)); break; case OP_MOV_Z_Z: - /* Copy Zn to Zm. */ - value = extract_field (FLD_SVE_Zn, inst->value, 0); - insert_field (FLD_SVE_Zm_16, &inst->value, value, 0); + /* ORR alias. Copy Zn to Zm. */ + value = extract_field (AARCH64_FIELD (5, 5), inst->value, 0); + insert_field (AARCH64_FIELD (16, 5), &inst->value, value, 0); break; case OP_MOVM_P_P_P: - /* Copy Pd to Pm. */ - value = extract_field (FLD_SVE_Pd, inst->value, 0); - insert_field (FLD_SVE_Pm, &inst->value, value, 0); + /* SEL alias. Copy Pd to Pm. */ + value = extract_field (AARCH64_FIELD (0, 4), inst->value, 0); + insert_field (AARCH64_FIELD (16, 4), &inst->value, value, 0); break; case OP_MOVZS_P_P_P: case OP_MOVZ_P_P_P: - /* Copy Pn to Pm. */ - value = extract_field (FLD_SVE_Pn, inst->value, 0); - insert_field (FLD_SVE_Pm, &inst->value, value, 0); + /* AND/ANDS alias. Copy Pn to Pm. */ + value = extract_field (AARCH64_FIELD (5, 4), inst->value, 0); + insert_field (AARCH64_FIELD (16, 4), &inst->value, value, 0); break; case OP_NOTS_P_P_P_Z: case OP_NOT_P_P_P_Z: - /* Copy Pg to Pm. */ - value = extract_field (FLD_SVE_Pg4_10, inst->value, 0); - insert_field (FLD_SVE_Pm, &inst->value, value, 0); + /* EOR/EORS alias. Copy Pg to Pm. */ + value = extract_field (AARCH64_FIELD (10, 4), inst->value, 0); + insert_field (AARCH64_FIELD (16, 4), &inst->value, value, 0); break; default: break; } diff --git a/opcodes/aarch64-dis.c b/opcodes/aarch64-dis.c index 3723defe5e019d9188b150e16f645b0551421688..3b3ad7615de9eec3a25aaaa03a7ebb4cbc64aabc 100644 --- a/opcodes/aarch64-dis.c +++ b/opcodes/aarch64-dis.c @@ -2712,36 +2712,46 @@ do_misc_decoding (aarch64_inst *inst) case OP_MOV_P_P: case OP_MOVS_P_P: - value = extract_field (FLD_SVE_Pn, inst->value, 0); - return (value == extract_field (FLD_SVE_Pm, inst->value, 0) - && value == extract_field (FLD_SVE_Pg4_10, inst->value, 0)); + /* ORR/ORRS alias with Pn == Pm == Pg. */ + value = extract_field (AARCH64_FIELD (5, 4), inst->value, 0); + return (value == extract_field (AARCH64_FIELD (16, 4), inst->value, 0) + && value == extract_field (AARCH64_FIELD (10, 4), + inst->value, 0)); case OP_MOV_Z_P_Z: - return (extract_field (FLD_SVE_Zd, inst->value, 0) - == extract_field (FLD_SVE_Zm_16, inst->value, 0)); + /* SEL alias with Zd == Zm. */ + return (extract_field (AARCH64_FIELD (0, 5), inst->value, 0) + == extract_field (AARCH64_FIELD (16, 5), inst->value, 0)); case OP_MOV_Z_V: - /* Index must be zero. */ - value = extract_fields (inst->value, 0, 2, FLD_SVE_tszh, FLD_imm5); - return value > 0 && value <= 16 && value == (value & -value); + /* DUP alias with zero index. Index and size use a triangle encoding, + and we already know that one of the bottom 5 bits is nonzero, so we + just need to check that the bitcount is at most 1. */ + value = extract_fields (inst->value, 0, 2, AARCH64_FIELD (22, 2), + AARCH64_FIELD (16, 5)); + return value == (value & -value); case OP_MOV_Z_Z: - return (extract_field (FLD_SVE_Zn, inst->value, 0) - == extract_field (FLD_SVE_Zm_16, inst->value, 0)); + /* ORR alias with Zn == Zm. */ + return (extract_field (AARCH64_FIELD (5, 5), inst->value, 0) + == extract_field (AARCH64_FIELD (16, 5), inst->value, 0)); case OP_MOVM_P_P_P: - return (extract_field (FLD_SVE_Pd, inst->value, 0) - == extract_field (FLD_SVE_Pm, inst->value, 0)); + /* SEL alias with Pd == Pm. */ + return (extract_field (AARCH64_FIELD (0, 4), inst->value, 0) + == extract_field (AARCH64_FIELD (16, 4), inst->value, 0)); case OP_MOVZS_P_P_P: case OP_MOVZ_P_P_P: - return (extract_field (FLD_SVE_Pn, inst->value, 0) - == extract_field (FLD_SVE_Pm, inst->value, 0)); + /* AND/ANDS alias with Pn == Pm. */ + return (extract_field (AARCH64_FIELD (5, 4), inst->value, 0) + == extract_field (AARCH64_FIELD (16, 4), inst->value, 0)); case OP_NOTS_P_P_P_Z: case OP_NOT_P_P_P_Z: - return (extract_field (FLD_SVE_Pm, inst->value, 0) - == extract_field (FLD_SVE_Pg4_10, inst->value, 0)); + /* EOR/EORS alias with Pm == Pg. */ + return (extract_field (AARCH64_FIELD (16, 4), inst->value, 0) + == extract_field (AARCH64_FIELD (10, 4), inst->value, 0)); default: return 0; diff --git a/opcodes/aarch64-opc.h b/opcodes/aarch64-opc.h index a0553f8fd940c1a0e994bc4a0c8dd945fdb96494..772f485f50ab9bd9d32f53b5f2f87e6034a74682 100644 --- a/opcodes/aarch64-opc.h +++ b/opcodes/aarch64-opc.h @@ -88,13 +88,6 @@ typedef struct aarch64_field aarch64_field; #define FLD_SVE_M_4 AARCH64_FIELD( 4, 1) #define FLD_SVE_M_14 AARCH64_FIELD(14, 1) #define FLD_SVE_M_16 AARCH64_FIELD(16, 1) -#define FLD_SVE_Pd AARCH64_FIELD( 0, 4) -#define FLD_SVE_Pg4_10 AARCH64_FIELD(10, 4) -#define FLD_SVE_Pm AARCH64_FIELD(16, 4) -#define FLD_SVE_Pn AARCH64_FIELD( 5, 4) -#define FLD_SVE_Zd AARCH64_FIELD( 0, 5) -#define FLD_SVE_Zm_16 AARCH64_FIELD(16, 5) -#define FLD_SVE_Zn AARCH64_FIELD( 5, 5) #define FLD_SVE_imm4 AARCH64_FIELD(16, 4) #define FLD_SVE_imm6 AARCH64_FIELD(16, 6) #define FLD_SVE_msz AARCH64_FIELD(10, 2)