From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-eopbgr60069.outbound.protection.outlook.com [40.107.6.69]) by sourceware.org (Postfix) with ESMTPS id 6015A385480B for ; Wed, 21 Jul 2021 15:07:54 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 6015A385480B Received: from AM5PR0701CA0002.eurprd07.prod.outlook.com (2603:10a6:203:51::12) by PR3PR08MB5594.eurprd08.prod.outlook.com (2603:10a6:102:8b::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4331.29; Wed, 21 Jul 2021 15:07:52 +0000 Received: from VE1EUR03FT059.eop-EUR03.prod.protection.outlook.com (2603:10a6:203:51:cafe::56) by AM5PR0701CA0002.outlook.office365.com (2603:10a6:203:51::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4352.10 via Frontend Transport; Wed, 21 Jul 2021 15:07:52 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; sourceware.org; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;sourceware.org; dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 63.35.35.123 as permitted sender) receiver=protection.outlook.com; client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com; Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by VE1EUR03FT059.mail.protection.outlook.com (10.152.19.60) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4352.24 via Frontend Transport; Wed, 21 Jul 2021 15:07:51 +0000 Received: ("Tessian outbound 870783c3513f:v99"); Wed, 21 Jul 2021 15:07:51 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: c091f0af1d240c57 X-CR-MTA-TID: 64aa7808 Received: from 93c61137bf39.2 by 64aa7808-outbound-1.mta.getcheckrecipient.com id DAE55D21-CE8E-41CF-833C-904E62B25AE1.1; Wed, 21 Jul 2021 15:07:36 +0000 Received: from EUR04-VI1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 93c61137bf39.2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Wed, 21 Jul 2021 15:07:36 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Z0oWHzmj7MCGbGiNe1RO1vtrh/8BGOTbW2lnPusdHBhSCMHY9e664UOj9NdK00W81L4HAe+O7BCuxHpE2V4qrF3Z+X0O6Gpd2/oKBaWWvFdRVkUBTIY9tCTbxw3PhR7+BOAqEtOlYxRpz08YULLBgP5Kr53M5RIoRQnrEgl6lkyc9pxZp5RysyTfJU0HSZggE59tCld70S4Oz9nxQGqzrClWghWwPB0qwZkSQkxE1dpb8sxlKXcznQXeFUB8FSXCW73V5vG+Uu1mZRj1Bn0ni1d2X10zAulB+MB7EP7oKh3jyKBHgLKkU5kUr4aeP3pgVoXtxjGS+OWeQ/sHjPkCRA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ZfhgOB3w3P0zmS0bFck2sXmVru/yifqOtZPJ6t8CSQ4=; b=GfjTiE7KGUB5rhlfgKnNvY3nxJSV5MsZR1x7wyEcbqtWu30OGD59cQOYZ9mNH6BXyc8Hri0reIHkhDKMCj4xilYzSAUjBlY78dT4aV7B2jXbI4jhV/K5BNQ5rinLkY8QYrPzQzyd5hcbT7xXAp7ve2unD2Fpf/uK8eahuz2ilgikhUWE3KAkxaxngRhb42Pt6lvw4cYM/CQxKP6MX8UTlXoRt5kdKVy1GNHv1SDokQd13Xt9K1dzj+aSvjGoSQ2CFsYfp6rR1X5P9dAfU4rZwBNdvZffdrjR4Ji+vcAl37PmidcxIkIBp97wOhVsi92GwW9vlbhqgcjO+4a4JR/YHA== 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 Authentication-Results-Original: redhat.com; dkim=none (message not signed) header.d=none;redhat.com; dmarc=none action=none header.from=arm.com; Received: from AM9PR08MB7226.eurprd08.prod.outlook.com (2603:10a6:20b:411::19) by AM9PR08MB7242.eurprd08.prod.outlook.com (2603:10a6:20b:431::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4331.23; Wed, 21 Jul 2021 15:07:34 +0000 Received: from AM9PR08MB7226.eurprd08.prod.outlook.com ([fe80::214d:9f28:63a7:8e1a]) by AM9PR08MB7226.eurprd08.prod.outlook.com ([fe80::214d:9f28:63a7:8e1a%6]) with mapi id 15.20.4331.034; Wed, 21 Jul 2021 15:07:34 +0000 From: Andrea Corallo To: Binutils Cc: "richard.earnshaw@arm.com" , Nick Clifton Subject: PATCH V2 [2/10] arm: add 'pacbti' instruction for Armv8.1-M pacbti extension Date: Tue, 20 Jul 2021 17:38:52 +0200 Message-ID: Content-Type: multipart/mixed; boundary="=-=-=" X-ClientProxiedBy: VI1PR0101CA0045.eurprd01.prod.exchangelabs.com (2603:10a6:800:1f::13) To AM9PR08MB7226.eurprd08.prod.outlook.com (2603:10a6:20b:411::19) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from e124257 (217.140.106.37) by VI1PR0101CA0045.eurprd01.prod.exchangelabs.com (2603:10a6:800:1f::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4331.21 via Frontend Transport; Wed, 21 Jul 2021 15:07:34 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 15f94ddc-6160-46c4-ac0f-08d94c594f90 X-MS-TrafficTypeDiagnostic: AM9PR08MB7242:|PR3PR08MB5594: X-LD-Processed: f34e5979-57d9-4aaa-ad4d-b122a662184d,ExtAddr X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true NoDisclaimer: true X-MS-Oob-TLC-OOBClassifiers: OLM:2000;OLM:2000; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: y9sfCs/voD/LR9J/IUCcHzBKs1jjLeiMYidQw9FeGKva8EcLQY+toGjZqlmb5XeB5GWqBgcAWJlT6s4KUAm5tW67ZNJTuTQF3pgpChwkRJkKlPqrL1mfEc5/K2pMd0YCpSP0CofkOPOD5pPVWBu7F2oDsdxO6YNTR3QeAXFlBlOiKeN3dlZ8RjFUX1SQQ/fb6Fv+ob8Cr/wVGhWrE6sapGQuv8slkvdbUNiC1XVsDn5fiqtiFpq49/MNLfFA9Dc4uxmyQsZRq8orkAMBOghffQfyRve3EYqcs3spczRDx9ZGHI9ncMYU1J7vKkiuCz7f+ZreNQfMCW8IRoUy2UKiIVZJIiwUZ5rQhiWL6Ctb4MP8XNoo0al5kzIs+NbGKT8t5i6vhpqPFHX0EIb2NQ94jpviI1AHmweuZyl2m1REGodUtlOvy91TOrduTtanaN7XGUq1PPD6Y/YVc4yGpBGZgNUYlpJ9K90NExo7KnSNs3tN6Xb8yCMcsupzlYdtI2X+AqH7VbEPVwRnk2epa/KbWLvjxbxemjnLTkJth6BgX0FgP7DS5TJEr5Xz2ZCUJRkBGFRqtV+aRJPHyUIVjWdOsagmdtWeantf101dM57tNo/5tRQEDj7JfkBq4lxxUa7VUVzkQI+Am5eNC0Kmd2TF/fvGIog65ij0OcMCCnkBywfi1WJ46RfukLZ6N4mAdKC+C5TVOCigbsnD+nWYR+cPvMAcNJwIyI+OH/6UOUWzeAVjs8hNRkVGnqRmlktKPTLi4o+KPJvzUqY2cS9nX5iXWbf9D2Ip8VgMgbOGjovx4iYAS9eCdjsIGxp/F05d6eAz+YA3AR2fNVzj1Wr//UX1hA== X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM9PR08MB7226.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(6496006)(66556008)(2906002)(52116002)(86362001)(6666004)(66476007)(4326008)(2616005)(66616009)(44832011)(5660300002)(26005)(54906003)(6486002)(36756003)(956004)(8676002)(6916009)(8936002)(316002)(235185007)(186003)(33964004)(38100700002)(38350700002)(66946007)(508600001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?CLakD8+zJVaoPvvf0p8M6nmnkqxZOqtn7r07BN7m5xtjfXMENPsdaeNEm5HS?= =?us-ascii?Q?lfHgNFgSiaEYkDisk+04DGHDB+0dP3d7QHkeUUKpWBc+CPA+YVD+P3oM/fQa?= =?us-ascii?Q?1x3U/fQbLhVjScyTHv4BY8nvgSoJv74nCLdQ/UO5244L5ZN61HoiUwjj/KEC?= =?us-ascii?Q?fibrmW0YtZppQ5rDv/vgRSxdwwdlbBDsmmoCE79uVbLad3w5wABNbppiu5qS?= =?us-ascii?Q?LM+irmSfUqX1YOlkJ4FHLJPQFa+YPABj9K1FHZCsq9MslTjrdyaKwhkPGX9F?= =?us-ascii?Q?Vp3xSiaMrJyV2JWAdAq9HbMYUXSzekWEKLHNg4zghrZIaXsInIYKLcRn8Irr?= =?us-ascii?Q?cXYlzHUF970eSwXUa44Pc/PA81jkxt//Nv7E4meKtjB9n8byZ97B4r6Tibgq?= =?us-ascii?Q?InhIicqFDam6sJT/wf45XxiQOZzl2JhXl7N5AQAPXdO7WbTi23w8uUtL1I6D?= =?us-ascii?Q?Od34kFThxu31H/juvLngDXz5BBvvrdcoFcro1QomTfYgcaJIJfLFRThhDriD?= =?us-ascii?Q?nrmOCQt0Z1/TkH5lD4qBA7x1imwzcMx0NjKmVM59wpYSyA7c07nsTwfOGPjf?= =?us-ascii?Q?wWOkfOKbckHbvcIpACHj8U2SjvN1xD5df46CdxF0EvUNgsbV2RXHiHRDUpMg?= =?us-ascii?Q?XbtBwnpxyHMKzCcfNE/h52SR31z/XNoZmRWGfSNBXUsjqQt2TdNyxXpyHriB?= =?us-ascii?Q?N2CnY0JeeJtRnWgJSYD6OeXwwGsHKg7iDtsfGyt1sRf+CoNi7OBc7rG5RllZ?= =?us-ascii?Q?k/uCQ1rK8GORKO5iJJK8JovpS9sJ53xXof/1zztVbNAnaUmrXEASk2/4rZne?= =?us-ascii?Q?EhV5apUlGpC/sgZdq9muyD4OlP2xryGB4/QBdtSG6goOdZao8nD9c0THoy3J?= =?us-ascii?Q?/f9QBik+9Cb9YBzf9bmMdUjIcVEWaqbnLxEv7FEbv4DLx9cbFnf1c47ZJ1Wi?= =?us-ascii?Q?riL+no9aYLXoeiwmFj7lzciw+GkV3MPUMvBhWOrCYJHtxbBJ5xJOmB8ZSMce?= =?us-ascii?Q?ymQNcYCJ4KZbzS80Uy1BgFMV2Z+ThM6emLHGlSP80SouT6T4kZvftglyWAQ7?= =?us-ascii?Q?UESVf2dIV/OYSKBPyc6Xn8Kwt9E6vT3VSYBpWXSv5GRkzvYKkoaiDv/FHUbT?= =?us-ascii?Q?2DJBwnkseANqsqKPpMmeDQhoTHoNrCl0fRnH0VfdasFlFKmVRQ2dBtWLvqiF?= =?us-ascii?Q?DfWdLtR35cNtf9vkeV4c1pFcVHkCmSQb7lp/2Bq6V+ljAQ+bEai3/U4Ezg2G?= =?us-ascii?Q?QzSh3jLA5k4Jd/TXJG3ojIzCvNrGum+Lo4Pzgn3NRkR7w/9rq6b2qcKO8o3m?= =?us-ascii?Q?4KY2z9TeqbM76xu3/QLKUouG?= X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR08MB7242 Original-Authentication-Results: redhat.com; dkim=none (message not signed) header.d=none;redhat.com; dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: VE1EUR03FT059.eop-EUR03.prod.protection.outlook.com X-MS-Office365-Filtering-Correlation-Id-Prvs: 02dd3f4a-2d44-4aaf-3c4a-08d94c594547 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: hzA7FJ/6AAJnskm3+MghPWOhhxrPNBVKFTu0S5AetIsyGjjh304AsX/4QzExUDTq3YU77wK83EAd2d+YnGE6WTO9FBI/3uhX7shxNaLUJmxk8Wooo51zhFJfixuvleYLp7w6qbn57asFY32DduF6iB5rhqvWAd7dVc6oU3uiEdNpcljiPw3Yj3iqXBqnM1txbdQdaRJAjEQiNOzg1aCK9KoLX69h3FW3zTNnie8fN4+Av34Fn8p0cFfXjg8mzuw4cqRFEZeI9CS0vGvCBwJHO/uQoPsbC35GCsLyI7au4u0jgoqTGAt2YIqzGIX7OlPSDvvbuASxOXcHjdUb+yKo9t9DWVgnY6E+QxewwUbw4kPCnbt0SP/5zT/HZjn0kTPv9aYhi75lycTlQ805nmdwbpg7Bl27V9Aj+1r84zczy0USEJXE5Z9UsAt/Q/ZlgJp4a7ugxfCVOOOfx97cdZXJqRZnA9J1hANO2Nudk/mqeIVOB260x3tkx9FNf/Qw4a7k2EZ4sToWOLFiBH2hEftUMj0zcA9btXpliKIi3ATKR51VquY5AjkViG5Dff8eWIrPk4zWtDeCmPmx3C0pMJI6+LUz02sSJJY/PIE7Lr9Tixs1jvShPpun0csxA/mbXV0MKVG5XkhalxXb0O1h9lUbcz6iEVjqqW7L6ZtyJKqleEA3YPZKc0KSwBwnxVqrG4rIMQWHiIdjGqBf1DBa6bB7YQvfoCbtV65kjnGzOWwm3zTRR7bed0Iig8TNJGA0HhjS7Oh65SRgc+JZ9E35CEMZIY2tnG/Lds+bT65GHYzamEHM3tZLqMZPipvdbbBtU5lB3IfpuSucLKiXuIM6SsJrDQ== X-Forefront-Antispam-Report: CIP:63.35.35.123; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:CAL; SFV:NSPM; H:64aa7808-outbound-1.mta.getcheckrecipient.com; PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com; CAT:NONE; SFS:(4636009)(39850400004)(396003)(136003)(346002)(376002)(36840700001)(46966006)(54906003)(26005)(82740400003)(356005)(8676002)(86362001)(186003)(70586007)(47076005)(2616005)(6916009)(2906002)(956004)(6486002)(36860700001)(6666004)(5660300002)(235185007)(81166007)(33964004)(44832011)(6496006)(36756003)(82310400003)(8936002)(478600001)(70206006)(107886003)(66616009)(336012)(4326008)(316002); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Jul 2021 15:07:51.8758 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 15f94ddc-6160-46c4-ac0f-08d94c594f90 X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d; Ip=[63.35.35.123]; Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com] X-MS-Exchange-CrossTenant-AuthSource: VE1EUR03FT059.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PR3PR08MB5594 X-Spam-Status: No, score=-12.6 required=5.0 tests=BAYES_00, DATE_IN_PAST_12_24, DKIM_SIGNED, DKIM_VALID, GIT_PATCH_0, MSGID_FROM_MTA_HEADER, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_PASS, TXREP, UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: binutils@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Binutils mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 21 Jul 2021 15:07:57 -0000 Message-ID: <20210720153852.4V-0qV6pSEmYP80P8-dlLnaSjv4fiAk0kaeKInMoHOQ@z> --=-=-= Content-Type: text/plain Hi all, second patch of the series adding support for PACBTI for Cortex-M. See: - Armv8.1-M Pointer Authentication and Branch Target Identification Extension [1] - Armv8-M Architecture Reference Manual [2] This is to add the 'pacbti' instruction. This version is incorporating Nick suggestion to skip the armv8_1-m-pacbti-bad test on PE format targets. The series was tested and does not introduce regressions. Regards Andrea [1] [2] --=-=-= Content-Type: text/plain; charset=utf-8 Content-Disposition: attachment; filename=0001-PATCH-2-10-arm-add-pacbti-instruction-for-Armv8.1-M-.patch >From 936f5b0ed14703ce5ae5cf7959acf85bdc22ed79 Mon Sep 17 00:00:00 2001 From: Andrea Corallo Date: Tue, 18 May 2021 11:28:17 +0200 Subject: [PATCH] PATCH [2/10] arm: add 'pacbti' instruction for Armv8.1-M pacbti extension gas/ 2021-06-11 Andrea Corallo * config/tc-arm.c (enum operand_parse_code): Add OP_SP and OP_R12. (parse_operands): Add switch cases for OP_SP and OP_R12. (T16_32_TAB): Add '_pacbti'. (do_t_pacbti): New function. (insns): Add 'pacbti'. * testsuite/gas/arm/armv8_1-m-pacbti-bad.d: New file. * testsuite/gas/arm/armv8_1-m-pacbti-bad.l: Likewise. * testsuite/gas/arm/armv8_1-m-pacbti-bad.s: Likewise. * testsuite/gas/arm/armv8_1-m-pacbti.d: Add 'pacbti' to testcase. * testsuite/gas/arm/armv8_1-m-pacbti.s: Likewise. opcodes/ 2021-06-11 Andrea Corallo * arm-dis.c (thumb32_opcodes): Add 'pacbti' instruction. --- gas/config/tc-arm.c | 22 ++++++++++++++++++++ gas/testsuite/gas/arm/armv8_1-m-pacbti-bad.d | 5 +++++ gas/testsuite/gas/arm/armv8_1-m-pacbti-bad.l | 4 ++++ gas/testsuite/gas/arm/armv8_1-m-pacbti-bad.s | 8 +++++++ gas/testsuite/gas/arm/armv8_1-m-pacbti.d | 1 + gas/testsuite/gas/arm/armv8_1-m-pacbti.s | 1 + opcodes/arm-dis.c | 2 ++ 7 files changed, 43 insertions(+) create mode 100644 gas/testsuite/gas/arm/armv8_1-m-pacbti-bad.d create mode 100644 gas/testsuite/gas/arm/armv8_1-m-pacbti-bad.l create mode 100644 gas/testsuite/gas/arm/armv8_1-m-pacbti-bad.s diff --git a/gas/config/tc-arm.c b/gas/config/tc-arm.c index d7f8fca803b..ed870f01aee 100644 --- a/gas/config/tc-arm.c +++ b/gas/config/tc-arm.c @@ -7115,6 +7115,8 @@ enum operand_parse_code /* New operands for Armv8.1-M Mainline. */ OP_LR, /* ARM LR register */ + OP_SP, /* ARM SP register */ + OP_R12, OP_RRe, /* ARM register, only even numbered. */ OP_RRo, /* ARM register, only odd numbered, not r13 or r15. */ OP_RRnpcsp_I32, /* ARM register (no BadReg) or literal 1 .. 32 */ @@ -7425,6 +7427,8 @@ parse_operands (char *str, const unsigned int *pattern, bool thumb) case OP_RRo: case OP_LR: case OP_oLR: + case OP_SP: + case OP_R12: case OP_RR: po_reg_or_fail (REG_TYPE_RN); break; case OP_RCP: po_reg_or_fail (REG_TYPE_CP); break; case OP_RCN: po_reg_or_fail (REG_TYPE_CN); break; @@ -8122,6 +8126,16 @@ parse_operands (char *str, const unsigned int *pattern, bool thumb) inst.error = _("operand must be LR register"); break; + case OP_SP: + if (inst.operands[i].reg != REG_SP) + inst.error = _("operand must be SP register"); + break; + + case OP_R12: + if (inst.operands[i].reg != REG_R12) + inst.error = _("operand must be r12"); + break; + case OP_RMQRZ: case OP_oRMQRZ: case OP_RR_ZR: @@ -11491,6 +11505,7 @@ encode_thumb32_addr_mode (int i, bool is_t, bool is_d) X(_negs, 4240, f1d00000), /* rsbs #0 */ \ X(_orr, 4300, ea400000), \ X(_orrs, 4300, ea500000), \ + X(_pacbti, 0000, f3af800d), \ X(_pop, bc00, e8bd0000), /* ldmia sp!,... */ \ X(_push, b400, e92d0000), /* stmdb sp!,... */ \ X(_rev, ba00, fa90f080), \ @@ -22317,6 +22332,12 @@ do_vmmla (void) neon_three_args (1); } +static void +do_t_pacbti (void) +{ + inst.instruction = THUMB_OP32 (inst.instruction); +} + /* Overall per-instruction processing. */ @@ -26306,6 +26327,7 @@ static const struct asm_opcode insns[] = #undef THUMB_VARIANT #define THUMB_VARIANT & arm_ext_v8_1m_main ToU("bti", f3af800f, 0, (), noargs), + toU("pacbti", _pacbti, 3, (R12, LR, SP), t_pacbti), toU("cinc", _cinc, 3, (RRnpcsp, RR_ZR, COND), t_cond), toU("cinv", _cinv, 3, (RRnpcsp, RR_ZR, COND), t_cond), toU("cneg", _cneg, 3, (RRnpcsp, RR_ZR, COND), t_cond), diff --git a/gas/testsuite/gas/arm/armv8_1-m-pacbti-bad.d b/gas/testsuite/gas/arm/armv8_1-m-pacbti-bad.d new file mode 100644 index 00000000000..77638ee3f62 --- /dev/null +++ b/gas/testsuite/gas/arm/armv8_1-m-pacbti-bad.d @@ -0,0 +1,5 @@ +#name: Invalid Armv8.1-M pointer authentication and branch target identification extention +#skip: *-*-pe +#source: armv8_1-m-pacbti-bad.s +#as: -march=armv8.1-m.main +#error_output: armv8_1-m-pacbti-bad.l diff --git a/gas/testsuite/gas/arm/armv8_1-m-pacbti-bad.l b/gas/testsuite/gas/arm/armv8_1-m-pacbti-bad.l new file mode 100644 index 00000000000..a812603d88d --- /dev/null +++ b/gas/testsuite/gas/arm/armv8_1-m-pacbti-bad.l @@ -0,0 +1,4 @@ +.*: Assembler messages: +.*:6: Error: operand must be r12 -- `pacbti r11,lr,sp' +.*:7: Error: operand must be LR register -- `pacbti r12,r10,sp' +.*:8: Error: operand must be SP register -- `pacbti r12,lr,r10' diff --git a/gas/testsuite/gas/arm/armv8_1-m-pacbti-bad.s b/gas/testsuite/gas/arm/armv8_1-m-pacbti-bad.s new file mode 100644 index 00000000000..64e71e70c11 --- /dev/null +++ b/gas/testsuite/gas/arm/armv8_1-m-pacbti-bad.s @@ -0,0 +1,8 @@ + .syntax unified + .text + .thumb +.Lstart: + bti + pacbti r11, lr, sp + pacbti r12, r10, sp + pacbti r12, lr, r10 diff --git a/gas/testsuite/gas/arm/armv8_1-m-pacbti.d b/gas/testsuite/gas/arm/armv8_1-m-pacbti.d index 3c693728468..593ac34ed49 100644 --- a/gas/testsuite/gas/arm/armv8_1-m-pacbti.d +++ b/gas/testsuite/gas/arm/armv8_1-m-pacbti.d @@ -7,4 +7,5 @@ Disassembly of section .text: 0[0-9a-f]+ <[^>]+> f3af 800f bti +0[0-9a-f]+ <[^>]+> f3af 800d pacbti r12, lr, sp #... diff --git a/gas/testsuite/gas/arm/armv8_1-m-pacbti.s b/gas/testsuite/gas/arm/armv8_1-m-pacbti.s index 38929e3dd02..39db4542e39 100644 --- a/gas/testsuite/gas/arm/armv8_1-m-pacbti.s +++ b/gas/testsuite/gas/arm/armv8_1-m-pacbti.s @@ -3,3 +3,4 @@ .thumb .Lstart: bti + pacbti r12, lr, sp diff --git a/opcodes/arm-dis.c b/opcodes/arm-dis.c index 1e096997543..34b0ace58bc 100644 --- a/opcodes/arm-dis.c +++ b/opcodes/arm-dis.c @@ -4656,6 +4656,8 @@ static const struct opcode32 thumb32_opcodes[] = Identification Extension. */ {ARM_FEATURE_CORE_HIGH (ARM_EXT2_V8_1M_MAIN), 0xf3af800f, 0xffffffff, "bti"}, + {ARM_FEATURE_CORE_HIGH (ARM_EXT2_V8_1M_MAIN), + 0xf3af800d, 0xffffffff, "pacbti\tr12, lr, sp"}, /* Armv8.1-M Mainline and Armv8.1-M Mainline Security Extensions instructions. */ -- 2.20.1 --=-=-=--