From patchwork Tue Oct 31 17:49:05 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Srinath Parvathaneni X-Patchwork-Id: 160298 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b90f:0:b0:403:3b70:6f57 with SMTP id t15csp410461vqg; Tue, 31 Oct 2023 10:49:31 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFTuxfJbbTdfbAqP1TF03Qq83s5EW26TMdiI7LcR6/bpcdla7QanvOEzrWaqLsnyuOcXBcJ X-Received: by 2002:a05:620a:3703:b0:778:8da0:be4d with SMTP id de3-20020a05620a370300b007788da0be4dmr14997455qkb.6.1698774570813; Tue, 31 Oct 2023 10:49:30 -0700 (PDT) Received: from server2.sourceware.org (server2.sourceware.org. [8.43.85.97]) by mx.google.com with ESMTPS id f1-20020a05620a280100b00773cb326234si1582669qkp.413.2023.10.31.10.49.30 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 31 Oct 2023 10:49:30 -0700 (PDT) Received-SPF: pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 as permitted sender) client-ip=8.43.85.97; Authentication-Results: mx.google.com; dkim=pass header.i=@armh.onmicrosoft.com header.s=selector2-armh-onmicrosoft-com header.b=VNb3pX8d; dkim=pass header.i=@armh.onmicrosoft.com header.s=selector2-armh-onmicrosoft-com header.b=VNb3pX8d; arc=fail (signature failed); spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 as permitted sender) smtp.mailfrom="binutils-bounces+ouuuleilei=gmail.com@sourceware.org"; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=arm.com Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 8E9993857BB2 for ; Tue, 31 Oct 2023 17:49:30 +0000 (GMT) X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05on2070.outbound.protection.outlook.com [40.107.22.70]) by sourceware.org (Postfix) with ESMTPS id E25EC3858413 for ; Tue, 31 Oct 2023 17:49:21 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org E25EC3858413 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 E25EC3858413 Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=40.107.22.70 ARC-Seal: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1698774564; cv=pass; b=AHzVqLl5UOdIpQFYxQHw2XuP9cqBCk3FNKuvv4R9R9kc5DJHgddKp5PMvpsLx14tychvPIkgWq4+zquhg9UeahEP/7E9Kv973IstXpuwZqQLDW1QUyMu24JRCtWBd9u8S06YP1akhiRNoD5U+9TDw4eDvFXfnCRQ2Iy95BcJuLI= ARC-Message-Signature: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1698774564; c=relaxed/simple; bh=5KixYjnnT/QAOumb9AD46GeJVYU65DIVwiLNqeVdo/Y=; h=DKIM-Signature:DKIM-Signature:Message-ID:Date:MIME-Version:To: From:Subject; b=Uh/ARxChjfCq/D1pxzptwG84G2NKn3SfXFK01eOnL0PRsWtPtmBPdhqTA8giWu035OcOvkdiWHMPjWrKHUkNtAp3KJFJ8/Ndf3Vt7WSh2CvSf6QBFYJHgUnayxS1RexCH+zQ5ubcegq9nNkYXmliHCi/hfX/W6anse+0W87KeJg= ARC-Authentication-Results: i=3; server2.sourceware.org ARC-Seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass; b=b+ZUDEthpIJKSAYT9+fFSdAXep+1FE+p/Hw9unRJQB6IdgysPe3XykQNRnCzBfa3nPfvqVeXUt+KtB7DshikLuuHk7dQnfPsVlORowBojyGqYRLgIeFE6Asd5Wy0nqcKRBs+f2PfyEz9ia3iyXO4cLxf3grpggGv2HS8qF1Ebbei253AkDcdO8osFceMuUmMc5icAC3CO4lp3Z/oQJJkB+aul6pOAp9zNwPUrO/E09VzVWONfH3Zh0l+RhauEJQaViGyJL6JldnKbBN+yzdzcQwGIieTk9UJx7MWcFIdEUKDFD7OMmJoe3Pwvrg8nI1Xtk9xhJXBJugFZ9RIzFBCuA== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=xlhakfUWHyya6FUmHtdE0lv2bpIaHyazUQPqOWic4h8=; b=Dz9Skazo4+AcBRkDae/zmplvntdrOepVliIn+ErsI4Qm/cV0pD1llxvhzKZsRBWEVXVGTRaFxJ4ka2f8Zs5XhgV2xJLW1vYC0c553j1FO2nwZgVd/9Hx8E6riC5fUGQpFiMZqXG5nKjb+mPGfbc1+kzfgMq5kG50t5xwcm09Pr0/aVVz3/5ZEHMJmCg2IcuZFy+QmT3u22AmMNzhRMPfUeDonj6xCGcEaopqbEW0Z6msezNEzQc/1IvlxmAUB3D7yN0C3LN6J3mycPCuhZZ+Two116vovymlvIOC9lj3oQ63Yv9Ne/u8pV8Q8LIjidZ8+fw/6elgZB5PXv9w+8Picw== ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is 63.35.35.123) 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=armh.onmicrosoft.com; arc=pass (0 oda=1 ltdi=1 spf=[1, 1, smtp.mailfrom=arm.com] dmarc=[1, 1, header.from=arm.com]) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=xlhakfUWHyya6FUmHtdE0lv2bpIaHyazUQPqOWic4h8=; b=VNb3pX8dK+HBZEytICOgSdWvwrPwgVVCo274KxX+xbrlLTe/8yC48D57dpha/ud2FY/pKufpBlLixt6hRJJtXqxBXqEG6/aVkGyPHvp+VZ3Z4ztGLC2zRwyNzDL3XwoQo8ZCmb1461Lwe6caYsITPbzVncLSqyUJs+62yKw/LMQ= Received: from DB9PR02CA0022.eurprd02.prod.outlook.com (2603:10a6:10:1d9::27) by AS8PR08MB9431.eurprd08.prod.outlook.com (2603:10a6:20b:5ed::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6933.28; Tue, 31 Oct 2023 17:49:18 +0000 Received: from DB5PEPF00014B94.eurprd02.prod.outlook.com (2603:10a6:10:1d9:cafe::fa) by DB9PR02CA0022.outlook.office365.com (2603:10a6:10:1d9::27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6933.29 via Frontend Transport; Tue, 31 Oct 2023 17:49:18 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;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; pr=C Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by DB5PEPF00014B94.mail.protection.outlook.com (10.167.8.232) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6954.19 via Frontend Transport; Tue, 31 Oct 2023 17:49:17 +0000 Received: ("Tessian outbound 8289ea11ec17:v228"); Tue, 31 Oct 2023 17:49:17 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 2e663edb1a4957fc X-CR-MTA-TID: 64aa7808 Received: from d79b9eb2ce4b.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 055B7479-6724-444A-9C0E-4094409E1539.1; Tue, 31 Oct 2023 17:49:10 +0000 Received: from EUR05-AM6-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id d79b9eb2ce4b.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Tue, 31 Oct 2023 17:49:10 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=beQyhy5dV6kunMnv+tvOsES9vLhrzPNn/j93WRs1U8ePKOveNKAm6leke1c/WeQ7v3POQWnyXhT/v4/5/8BC0mUzYIT8uPW9SPPFl3BrvESU3DxjXd07Z6Wbro7mJNBI3sa5EcJVmMPfwxuFebt+sFp9x0w01whos2pOQju8a/myRBcntnP+qV/2RQz0cpt+1gfMiofiPlG7dhAmt/fjhY9s+QJq52k5yIpgeGBdHOi3A/SSubs9R+gusrmbVfOZiMtHlX9Qy1j8gfgXrekpHLG9tebwxlyQu6ggXujA8h2p9cN9rOAhfBcBhvIRSMH2o5DpkjP2qNX9XqhX42f52w== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=xlhakfUWHyya6FUmHtdE0lv2bpIaHyazUQPqOWic4h8=; b=LPA//TPVlyu/IO3wBt/zGzBfN9s4AYPmz4ha21YNA1/FsyEMKwFoMRvtJ+HgSnzOuqezlmwKxDDimwFW6CrI/cUmtN6AI1k9N04NYXJy1ZidRSklV7N8QevDH3Z+9WWnDCYtKqsJ3RgM3Uhlc9DsIYpAl/f0tE+3iJQ8DBODI9a5t/DLml9u84tqQiR9P4JX7xOoIW4981XvkT3z2OHQEJ/kOIqVSg/QeA1xcv411agOi5B16UAXAvCSd7pHrzGWC6H3oGHru+PULw38rMN+G01gvkF7g/19QbE44r1P+2dIzODAiBHon5Fc3btS1Q+r0LzclZ9CpD/V+bvpVS5eNQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 40.67.248.234) smtp.rcpttodomain=sourceware.org smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=xlhakfUWHyya6FUmHtdE0lv2bpIaHyazUQPqOWic4h8=; b=VNb3pX8dK+HBZEytICOgSdWvwrPwgVVCo274KxX+xbrlLTe/8yC48D57dpha/ud2FY/pKufpBlLixt6hRJJtXqxBXqEG6/aVkGyPHvp+VZ3Z4ztGLC2zRwyNzDL3XwoQo8ZCmb1461Lwe6caYsITPbzVncLSqyUJs+62yKw/LMQ= Received: from DUZPR01CA0063.eurprd01.prod.exchangelabs.com (2603:10a6:10:3c2::13) by PAWPR08MB8816.eurprd08.prod.outlook.com (2603:10a6:102:338::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6933.28; Tue, 31 Oct 2023 17:49:06 +0000 Received: from DU6PEPF0000B621.eurprd02.prod.outlook.com (2603:10a6:10:3c2:cafe::ce) by DUZPR01CA0063.outlook.office365.com (2603:10a6:10:3c2::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6933.28 via Frontend Transport; Tue, 31 Oct 2023 17:49:06 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 40.67.248.234) smtp.mailfrom=arm.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 40.67.248.234 as permitted sender) receiver=protection.outlook.com; client-ip=40.67.248.234; helo=nebula.arm.com; pr=C Received: from nebula.arm.com (40.67.248.234) by DU6PEPF0000B621.mail.protection.outlook.com (10.167.8.138) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.6954.19 via Frontend Transport; Tue, 31 Oct 2023 17:49:06 +0000 Received: from AZ-NEU-EX04.Arm.com (10.251.24.32) by AZ-NEU-EX03.Arm.com (10.251.24.31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.32; Tue, 31 Oct 2023 17:49:05 +0000 Received: from [10.57.37.60] (10.57.37.60) by mail.arm.com (10.251.24.32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.32 via Frontend Transport; Tue, 31 Oct 2023 17:49:05 +0000 Message-ID: Date: Tue, 31 Oct 2023 17:49:05 +0000 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.15.1 Content-Language: en-US To: CC: Richard Earnshaw , From: Srinath Parvathaneni Subject: [PATCH 1/3][Binutils] aarch64: Add support for GCS extension. X-EOPAttributedMessage: 1 X-MS-TrafficTypeDiagnostic: DU6PEPF0000B621:EE_|PAWPR08MB8816:EE_|DB5PEPF00014B94:EE_|AS8PR08MB9431:EE_ X-MS-Office365-Filtering-Correlation-Id: 7730e9a3-4537-40a9-d250-08dbda39b487 X-LD-Processed: f34e5979-57d9-4aaa-ad4d-b122a662184d,ExtAddr x-checkrecipientrouted: true NoDisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: VcPm1x1dri9jY9GepaEWihK+n6Y6pjVvKMWNDuxEF+TCZ0mvCdPHDDL5Ko/01Dy3d0MEy1P6+GgsrSMi3T1HtJ0cCho12e1vKKNDnueQHR1/YIJKSP6fqmJIs5Hf+IDUusPQeivO50/IzTj0XGki2oc2f1rhVXn/TmRkarKXAQyxSGamko+rEDibP02eLWdO9icfxB4XLcen9CnsJlQVFuC8uszJc0Tc7Q2UYFUoEQNbSnNKy4Gc8G04qPIqhCHFA4g1x82AswQZRI7gyzfoku8pr69HsQHsADaP9mUj1sBEMCpDBHdsCGW+3wXh+Z5XYcIJfNbQqFekT3gwlhbDPb96EilqmZV6Ga3HZbW/WD48pA9xEWiCHtqQAU3kwc8toNwPUbW7h9gZ1yYztHCpCEqcOJIa5pwco2ptl4toF9xKEfi2R8QvO8nkA0evDqIzyLMJRLjpJ0MPlAnhO5hcMqg39a+WheUEJFG6lQKBYLE0rkFQj4Rp8+hyiVDbSwm9yBYhwecH7Q+g3dkg28jv1L9CeD7XyJUiNPJNcTpJemKRU/QAAJNYFyin4v0o+XglMdMo7zWiZ9CZIC9Iaa42uWFbxRGpmJ33p/nDUBDVdnuZOKnZLXRLWXkvqlVtRQbwEsmLHWWuMNcSCkFtAQ1EWFvL7GKbOW8xpu42xHWSzP/1qdwnjEP2AJaDPIwdTMO9HdwQ8daNGafbFEr8eHI3ZE1bRu1He2zEuNYhJD+AULWGWYf/dyEaBFzijF5BoHy193BlovkSw1uw4lb0iQvC+d6BDYHINhhbAW1Rj9bg60S9lzBCmIiJIBbdqA2m4zFeaIcYY1tem6NZE7yElp2gLQ== X-Forefront-Antispam-Report-Untrusted: CIP:40.67.248.234; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:nebula.arm.com; PTR:InfoDomainNonexistent; CAT:NONE; SFS:(13230031)(4636009)(39860400002)(136003)(396003)(376002)(346002)(230922051799003)(451199024)(1800799009)(186009)(82310400011)(64100799003)(46966006)(40470700004)(36840700001)(356005)(81166007)(40480700001)(82740400003)(70206006)(70586007)(336012)(16576012)(6916009)(316002)(54906003)(26005)(5660300002)(2616005)(426003)(8936002)(44832011)(8676002)(4326008)(41300700001)(478600001)(36860700001)(2906002)(235185007)(47076005)(33964004)(31696002)(86362001)(36756003)(40460700003)(31686004)(3940600001)(43740500002)(36900700001); DIR:OUT; SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR08MB8816 X-MS-Exchange-Transport-CrossTenantHeadersStripped: DB5PEPF00014B94.eurprd02.prod.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: c760902d-882b-42f9-94a5-08dbda39ad9a X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: QsnLgWUgEez970mIWuVfrpzw6Aaf1lgD1ZpV1M/ViyUE3YWYLThJVUrRGCC/Gq0CzTa7NGcgQjmaXmsGWLwZcwD05lYxLewOGwSxhxgDds+Unkj7XgCHUnGjYpZvKqvT06GzFRgnflT8fyVg/7q+FeI/0C1BSLojnRD+iwbsT34dmVkiVwlwQcPS1khRP1chyxlbdVMJcR8yjraQZQxn+bZVT1gXdaS0MgsAXs3rX8ep/yZ/OdZXOt5LQBHBZ4zatH4TvvnjHvA6QtOPeXHfTDP7oaUVsw6ELt2AHIHYnikYyZFWpB6NNjCKyM41mzO/CMlcq7emDbQRtzrFncih3X6B1tVAp0dnMWibbRPN25h8tAAHCXW8doCUTAbHM4LBuVpSxqIfTBOig9aw4yqAHG9h+cEqGmh2AidhUCcQ8ahu+xVmLp+UpRxlJYnAUcPdtGpg/LVw8/QWBoCm/euQCnLSc0712nP/7Zguw9lFwi2aqnE8EeT7YMQ+PhiwVVpERBAwFSKyZqnNSdgRjLJhTQcNhWoJRybghxcvwoDJvLrkJozBDPIWtGczkSC6sxOlkIzAjQEDiSd7nXs7Sa9e4bo9/CYqHXj41bCQSdNf7e/FlY4bk+oBgPx9XEyw2Jk8et12kKDPox3c1jXqckxOW/sftaPxEMysmVA2J/EnzX4KXR2x9+vNIErWE3XfGIeCZTXdJ/yG679MlUpKqS06RTHLsNn0JurY0yAEMStOKfJMDb8rS6y4Il5NA7DAK+65tiBc5DrEHDUwWoKTIu9ceYBKrmxXIGxEoYkluSG2OIk7DWRrHJixOQBhridxqNwY 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:(13230031)(4636009)(396003)(39860400002)(346002)(376002)(136003)(230922051799003)(186009)(64100799003)(451199024)(82310400011)(1800799009)(40470700004)(46966006)(36840700001)(40480700001)(40460700003)(2616005)(26005)(33964004)(4326008)(47076005)(478600001)(36860700001)(336012)(44832011)(2906002)(235185007)(426003)(41300700001)(70586007)(70206006)(8936002)(316002)(6916009)(107886003)(8676002)(5660300002)(16576012)(54906003)(36756003)(82740400003)(81166007)(31696002)(86362001)(31686004)(3940600001)(43740500002); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Oct 2023 17:49:17.9848 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 7730e9a3-4537-40a9-d250-08dbda39b487 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: DB5PEPF00014B94.eurprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB9431 X-Spam-Status: No, score=-12.5 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, FORGED_SPF_HELO, GIT_PATCH_0, KAM_DMARC_NONE, KAM_LOTSOFHASH, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_NONE, TXREP, T_SCC_BODY_TEXT_LINE, UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.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+ouuuleilei=gmail.com@sourceware.org X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1781294244297133997 X-GMAIL-MSGID: 1781294244297133997 Hi, This patch adds for Guarded Control Stack Extension (GCS) extension. GCS feature is optional from Armv9.4-A architecture and enabled by passing +gcs option to -march (eg: -march=armv9.4-a+gcs) or using ".arch_extension gcs" directive in the assembly file. Also this patch adds support for GCS instructions gcspushx, gcspopcx, gcspopx, gcsss1, gcsss2, gcspushm, gcspopm, gcsstr and gcssttr. For this feature in gas/doc/c-aarch64.texi: column 2 is marked N/A, as this column "minimum architecture" is not relevant any more and will be removed in the later patches. Regression tested for aarch64-none-elf target and found no regressions. Ok for binutils-master? Regards, Srinath. diff --git a/gas/NEWS b/gas/NEWS index 896ea2d7eb24cd7295f953ce0c619b0a778024f0..60f616c10735b929980f7181e95b6d1159ab967b 100644 --- a/gas/NEWS +++ b/gas/NEWS @@ -1,5 +1,7 @@ -*- text -*- +* Add support for Guarded Control Stack (GCS) for AArch64. + * Add support for AArch64 Check Feature Status Extension (CHK). * Add support for 'armv8.9-a' and 'armv9.4-a' for -march in AArch64 GAS. diff --git a/gas/config/tc-aarch64.c b/gas/config/tc-aarch64.c index f5b7b427dd6b5a0bc899cc3c79f05c02005b6c5b..6d2040037c3ff2c4c5d1ff967ad3c7222d878c93 100644 --- a/gas/config/tc-aarch64.c +++ b/gas/config/tc-aarch64.c @@ -10325,6 +10325,7 @@ static const struct aarch64_option_cpu_value_table aarch64_features[] = { {"hbc", AARCH64_FEATURE (HBC), AARCH64_NO_FEATURES}, {"cssc", AARCH64_FEATURE (CSSC), AARCH64_NO_FEATURES}, {"chk", AARCH64_FEATURE (CHK), AARCH64_NO_FEATURES}, + {"gcs", AARCH64_FEATURE (GCS), AARCH64_NO_FEATURES}, {NULL, AARCH64_NO_FEATURES, AARCH64_NO_FEATURES}, }; diff --git a/gas/doc/c-aarch64.texi b/gas/doc/c-aarch64.texi index f10a44eae9347d5432ad6f7d5a07da4946e53ae2..7e053185d30b378ca3a6da74dd4b925dba9b5422 100644 --- a/gas/doc/c-aarch64.texi +++ b/gas/doc/c-aarch64.texi @@ -261,6 +261,8 @@ automatically cause those extensions to be disabled. @tab Enable Transactional Memory Extensions. @item @code{chk} @tab ARMv8-A @tab No @tab Enable Check Feature Status Extension. +@item @code{gcs} @tab N/A @tab No + @tab Enable Guarded Control Stack Extension. @end multitable @node AArch64 Syntax diff --git a/gas/testsuite/gas/aarch64/gcs-1-bad.d b/gas/testsuite/gas/aarch64/gcs-1-bad.d new file mode 100644 index 0000000000000000000000000000000000000000..7c3a7ae50a8dc7bf411a6deb419f723d50ff3812 --- /dev/null +++ b/gas/testsuite/gas/aarch64/gcs-1-bad.d @@ -0,0 +1,3 @@ +#as: -march=armv9.2-a +#source: gcs-1.s +#error_output: gcs-1-bad.l diff --git a/gas/testsuite/gas/aarch64/gcs-1-bad.l b/gas/testsuite/gas/aarch64/gcs-1-bad.l new file mode 100644 index 0000000000000000000000000000000000000000..ca8d17ab8fc5123f2444a6c54193ab2354be1e6e --- /dev/null +++ b/gas/testsuite/gas/aarch64/gcs-1-bad.l @@ -0,0 +1,45 @@ +[^ :]+: Assembler messages: +[^ :]+:[0-9]+: Error: selected processor does not support `gcspushx' +[^ :]+:[0-9]+: Error: selected processor does not support `gcspopcx' +[^ :]+:[0-9]+: Error: selected processor does not support `gcspopx' +[^ :]+:[0-9]+: Error: selected processor does not support `gcspopm' +[^ :]+:[0-9]+: Error: selected processor does not support `gcspushm x0' +[^ :]+:[0-9]+: Error: selected processor does not support `gcspushm x15' +[^ :]+:[0-9]+: Error: selected processor does not support `gcspushm x30' +[^ :]+:[0-9]+: Error: selected processor does not support `gcspushm xzr' +[^ :]+:[0-9]+: Error: selected processor does not support `gcsss1 x0' +[^ :]+:[0-9]+: Error: selected processor does not support `gcsss1 x15' +[^ :]+:[0-9]+: Error: selected processor does not support `gcsss1 x30' +[^ :]+:[0-9]+: Error: selected processor does not support `gcsss1 xzr' +[^ :]+:[0-9]+: Error: selected processor does not support `gcsss2 x0' +[^ :]+:[0-9]+: Error: selected processor does not support `gcsss2 x15' +[^ :]+:[0-9]+: Error: selected processor does not support `gcsss2 x30' +[^ :]+:[0-9]+: Error: selected processor does not support `gcsss2 xzr' +[^ :]+:[0-9]+: Error: selected processor does not support `gcspopm x0' +[^ :]+:[0-9]+: Error: selected processor does not support `gcspopm x15' +[^ :]+:[0-9]+: Error: selected processor does not support `gcspopm x30' +[^ :]+:[0-9]+: Error: selected processor does not support `gcspopm xzr' +[^ :]+:[0-9]+: Error: selected processor does not support `gcsstr x0,x1' +[^ :]+:[0-9]+: Error: selected processor does not support `gcsstr x0,x16' +[^ :]+:[0-9]+: Error: selected processor does not support `gcsstr x0,sp' +[^ :]+:[0-9]+: Error: selected processor does not support `gcsstr x15,x1' +[^ :]+:[0-9]+: Error: selected processor does not support `gcsstr x15,x16' +[^ :]+:[0-9]+: Error: selected processor does not support `gcsstr x15,sp' +[^ :]+:[0-9]+: Error: selected processor does not support `gcsstr x30,x1' +[^ :]+:[0-9]+: Error: selected processor does not support `gcsstr x30,x16' +[^ :]+:[0-9]+: Error: selected processor does not support `gcsstr x30,sp' +[^ :]+:[0-9]+: Error: selected processor does not support `gcsstr xzr,x1' +[^ :]+:[0-9]+: Error: selected processor does not support `gcsstr xzr,x16' +[^ :]+:[0-9]+: Error: selected processor does not support `gcsstr xzr,sp' +[^ :]+:[0-9]+: Error: selected processor does not support `gcssttr x0,x1' +[^ :]+:[0-9]+: Error: selected processor does not support `gcssttr x0,x16' +[^ :]+:[0-9]+: Error: selected processor does not support `gcssttr x0,sp' +[^ :]+:[0-9]+: Error: selected processor does not support `gcssttr x15,x1' +[^ :]+:[0-9]+: Error: selected processor does not support `gcssttr x15,x16' +[^ :]+:[0-9]+: Error: selected processor does not support `gcssttr x15,sp' +[^ :]+:[0-9]+: Error: selected processor does not support `gcssttr x30,x1' +[^ :]+:[0-9]+: Error: selected processor does not support `gcssttr x30,x16' +[^ :]+:[0-9]+: Error: selected processor does not support `gcssttr x30,sp' +[^ :]+:[0-9]+: Error: selected processor does not support `gcssttr xzr,x1' +[^ :]+:[0-9]+: Error: selected processor does not support `gcssttr xzr,x16' +[^ :]+:[0-9]+: Error: selected processor does not support `gcssttr xzr,sp' diff --git a/gas/testsuite/gas/aarch64/gcs-1.d b/gas/testsuite/gas/aarch64/gcs-1.d new file mode 100644 index 0000000000000000000000000000000000000000..51f9dd6afc5cca1e69ad408849d71a6c7e3f09cf --- /dev/null +++ b/gas/testsuite/gas/aarch64/gcs-1.d @@ -0,0 +1,54 @@ +#name: Test of Guarded Control Stack Instructions. +#as: -march=armv9.3-a+gcs +#objdump: -dr + +[^:]+: file format .* + + +[^:]+: + +[^:]+: +.*: d508779f gcspushx +.*: d50877bf gcspopcx +.*: d50877df gcspopx +.*: d52b773f gcspopm +.*: d50b7700 gcspushm x0 +.*: d50b770f gcspushm x15 +.*: d50b771e gcspushm x30 +.*: d50b771f gcspushm xzr +.*: d50b7740 gcsss1 x0 +.*: d50b774f gcsss1 x15 +.*: d50b775e gcsss1 x30 +.*: d50b775f gcsss1 xzr +.*: d52b7760 gcsss2 x0 +.*: d52b776f gcsss2 x15 +.*: d52b777e gcsss2 x30 +.*: d52b777f gcsss2 xzr +.*: d52b7720 gcspopm x0 +.*: d52b772f gcspopm x15 +.*: d52b773e gcspopm x30 +.*: d52b773f gcspopm +.*: d91f0c20 gcsstr x0, x1 +.*: d91f0e00 gcsstr x0, x16 +.*: d91f0fe0 gcsstr x0, sp +.*: d91f0c2f gcsstr x15, x1 +.*: d91f0e0f gcsstr x15, x16 +.*: d91f0fef gcsstr x15, sp +.*: d91f0c3e gcsstr x30, x1 +.*: d91f0e1e gcsstr x30, x16 +.*: d91f0ffe gcsstr x30, sp +.*: d91f0c3f gcsstr xzr, x1 +.*: d91f0e1f gcsstr xzr, x16 +.*: d91f0fff gcsstr xzr, sp +.*: d91f1c20 gcssttr x0, x1 +.*: d91f1e00 gcssttr x0, x16 +.*: d91f1fe0 gcssttr x0, sp +.*: d91f1c2f gcssttr x15, x1 +.*: d91f1e0f gcssttr x15, x16 +.*: d91f1fef gcssttr x15, sp +.*: d91f1c3e gcssttr x30, x1 +.*: d91f1e1e gcssttr x30, x16 +.*: d91f1ffe gcssttr x30, sp +.*: d91f1c3f gcssttr xzr, x1 +.*: d91f1e1f gcssttr xzr, x16 +.*: d91f1fff gcssttr xzr, sp diff --git a/gas/testsuite/gas/aarch64/gcs-1.s b/gas/testsuite/gas/aarch64/gcs-1.s new file mode 100644 index 0000000000000000000000000000000000000000..9706587878d51d0c9874fdf1325d1052dd55ff57 --- /dev/null +++ b/gas/testsuite/gas/aarch64/gcs-1.s @@ -0,0 +1,19 @@ + .text + gcspushx + gcspopcx + gcspopx + gcspopm + + .irp op gcspushm, gcsss1, gcsss2, gcspopm + .irp reg1 x0, x15, x30, xzr + \op \reg1 + .endr + .endr + + .irp op gcsstr, gcssttr + .irp reg1 x0, x15, x30, xzr + .irp reg2 x1, x16, sp + \op \reg1, \reg2 + .endr + .endr + .endr diff --git a/include/opcode/aarch64.h b/include/opcode/aarch64.h index 004df9ec1eb59bb60c821a96ce8f2960b76a9a7c..fc6a01aefd6f957ceb4f1578d09977321ff270b6 100644 --- a/include/opcode/aarch64.h +++ b/include/opcode/aarch64.h @@ -161,6 +161,8 @@ enum aarch64_feature_bit { AARCH64_FEATURE_V8_9A, /* Check Feature Status Extension. */ AARCH64_FEATURE_CHK, + /* Guarded Control Stack. */ + AARCH64_FEATURE_GCS, /* SME2. */ AARCH64_FEATURE_SME2, DUMMY1, @@ -897,6 +899,7 @@ enum aarch64_insn_class dotproduct, bfloat16, cssc, + gcs, }; /* Opcode enumerators. */ diff --git a/opcodes/aarch64-tbl.h b/opcodes/aarch64-tbl.h index 8f4bfc3f2d8a2cc64a72320cb4882d35c66b208e..f281fd55070da59f3ce598115b9ab701fd754deb 100644 --- a/opcodes/aarch64-tbl.h +++ b/opcodes/aarch64-tbl.h @@ -2574,6 +2574,8 @@ static const aarch64_feature_set aarch64_feature_cssc = AARCH64_FEATURE (CSSC); static const aarch64_feature_set aarch64_feature_chk = AARCH64_FEATURE (CHK); +static const aarch64_feature_set aarch64_feature_gcs = + AARCH64_FEATURE (GCS); #define CORE &aarch64_feature_v8 #define FP &aarch64_feature_fp @@ -2633,6 +2635,7 @@ static const aarch64_feature_set aarch64_feature_chk = #define HBC &aarch64_feature_hbc #define CSSC &aarch64_feature_cssc #define CHK &aarch64_feature_chk +#define GCS &aarch64_feature_gcs #define CORE_INSN(NAME,OPCODE,MASK,CLASS,OP,OPS,QUALS,FLAGS) \ { NAME, OPCODE, MASK, CLASS, OP, CORE, OPS, QUALS, FLAGS, 0, 0, NULL } @@ -2782,6 +2785,8 @@ static const aarch64_feature_set aarch64_feature_chk = { NAME, OPCODE, MASK, cssc, 0, CSSC, OPS, QUALS, FLAGS, 0, 0, NULL } #define CHK_INSN(NAME, OPCODE, MASK, OPS, QUALS, FLAGS) \ { NAME, OPCODE, MASK, ic_system, 0, CHK, OPS, QUALS, FLAGS, 0, 0, NULL } +#define GCS_INSN(NAME, OPCODE, MASK, OPS, QUALS, FLAGS) \ + { NAME, OPCODE, MASK, gcs, 0, GCS, OPS, QUALS, FLAGS, 0, 0, NULL } #define MOPS_CPY_OP1_OP2_PME_INSN(NAME, OPCODE, MASK, FLAGS, CONSTRAINTS) \ MOPS_INSN (NAME, OPCODE, MASK, 0, \ @@ -4141,6 +4146,16 @@ const struct aarch64_opcode aarch64_opcode_table[] = CORE_INSN ("dmb", 0xd50330bf, 0xfffff0ff, ic_system, 0, OP1 (BARRIER), {}, 0), CORE_INSN ("isb", 0xd50330df, 0xfffff0ff, ic_system, 0, OP1 (BARRIER_ISB), {}, F_OPD0_OPT | F_DEFAULT (0xF)), SB_INSN ("sb", 0xd50330ff, 0xffffffff, ic_system, OP0 (), {}, 0), + GCS_INSN ("gcspushx", 0xd508779f, 0xffffffff, OP0 (), {}, 0), + GCS_INSN ("gcspopx", 0xd50877df, 0xffffffff, OP0 (), {}, 0), + GCS_INSN ("gcspopcx", 0xd50877bf, 0xffffffff, OP0 (), {}, 0), + GCS_INSN ("gcsss1", 0xd50b7740, 0xffffffe0, OP1 (Rt), QL_I1X, 0), + GCS_INSN ("gcspushm", 0xd50b7700, 0xffffffe0, OP1 (Rt), QL_I1X, 0), + GCS_INSN ("gcsss2", 0xd52b7760, 0xffffffe0, OP1 (Rt), QL_I1X, 0), + GCS_INSN ("gcspopm", 0xd52b773f, 0xffffffff, OP0 (), {}, 0), + GCS_INSN ("gcspopm", 0xd52b7720, 0xffffffe0, OP1 (Rt), QL_I1X, 0), + GCS_INSN ("gcsstr", 0xd91f0c00, 0xfffffc00, OP2 (Rt, Rn_SP), QL_I2SAMEX, 0), + GCS_INSN ("gcssttr", 0xd91f1c00, 0xfffffc00, OP2 (Rt, Rn_SP), QL_I2SAMEX, 0), CORE_INSN ("sys", 0xd5080000, 0xfff80000, ic_system, 0, OP5 (UIMM3_OP1, CRn, CRm, UIMM3_OP2, Rt), QL_SYS, F_HAS_ALIAS | F_OPD4_OPT | F_DEFAULT (0x1F)), CORE_INSN ("at", 0xd5080000, 0xfff80000, ic_system, 0, OP2 (SYSREG_AT, Rt), QL_SRC_X, F_ALIAS), CORE_INSN ("dc", 0xd5080000, 0xfff80000, ic_system, 0, OP2 (SYSREG_DC, Rt), QL_SRC_X, F_ALIAS),