From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR02-HE1-obe.outbound.protection.outlook.com (mail-eopbgr10045.outbound.protection.outlook.com [40.107.1.45]) by sourceware.org (Postfix) with ESMTPS id 53062384840C for ; Tue, 20 Jul 2021 15:44:52 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 53062384840C Received: from AM7PR02CA0012.eurprd02.prod.outlook.com (2603:10a6:20b:100::22) by DB8PR08MB5259.eurprd08.prod.outlook.com (2603:10a6:10:bf::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4331.26; Tue, 20 Jul 2021 15:44:48 +0000 Received: from AM5EUR03FT018.eop-EUR03.prod.protection.outlook.com (2603:10a6:20b:100:cafe::44) by AM7PR02CA0012.outlook.office365.com (2603:10a6:20b:100::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4331.21 via Frontend Transport; Tue, 20 Jul 2021 15:44:48 +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 AM5EUR03FT018.mail.protection.outlook.com (10.152.16.114) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4331.21 via Frontend Transport; Tue, 20 Jul 2021 15:44:47 +0000 Received: ("Tessian outbound 870783c3513f:v99"); Tue, 20 Jul 2021 15:44:47 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 08b45f92e2f951a1 X-CR-MTA-TID: 64aa7808 Received: from 22147adb3f05.2 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 26EBC30B-A43C-45A0-93AC-F7DF220239C6.1; Tue, 20 Jul 2021 15:44:45 +0000 Received: from EUR05-AM6-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 22147adb3f05.2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Tue, 20 Jul 2021 15:44:45 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=EcNoMuEewg2cXVK5SKVqbT0zovZBjZHXwJ9i1CABVwrz+XFiyA+AEq/VR8CZLrVriBgTGXLmQ5mrTgZ4q4UhdTySjV49zuKLrDzGw7aU8V3d2H2k3xU+iryR8inTlMN58HPwcj/MYyNGcSj0ihOApy2U90zVkqsbXMGD2oXX09/emxbxtRKB2r5cCk1VhGGlPBbW7A+RfhM3kOr0AUukilIn77PUzUXF3viBWxw9IHD6sApTlw+cIa1u590fPeHDh82G9lsdxgBkfCY8YB3fPt7mcrs15Fvj/lQsgiQxbBu5PpDJvUrKywXpl3saTWKgJy2UAm0yBGIHgqmMbwcu7g== 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=roul6T2VQhmfpdPQ/yRkBQhZvE2PsF9SxCpaWghFj0Y=; b=PtaRgG85aABx5fd7YdbW6heX4UifeJD3dc5x05BDKVAdvzIdTqit0gYXxNFRrPAX//LxYIQVfqv6lwjOlsE3T46VAQf/deY9TcISndoOWEmcc6hAZZaeT63REX6tNKCPjb1JTrM2BxgUNYtKEgMyGxpj7p0qVr5yL7xlKbycTDSDUKz2Y7i50Satu1L5pDJXm4L/PcOhVENNPnmGYJiHRw8vhaOInqraj2SN1oUoY8bu9QAA5+nXlv03EaWnylhnD9lMi7OjiW7POTrBz105OxJyJugXeUCaxgEVRjZXyqKeHJUGFE/XC6GsTBan3BmvmfIIwV0q3maYo/6GlLugUQ== 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: arm.com; dkim=none (message not signed) header.d=none;arm.com; dmarc=none action=none header.from=arm.com; Received: from AM9PR08MB7226.eurprd08.prod.outlook.com (2603:10a6:20b:411::19) by AM9PR08MB7197.eurprd08.prod.outlook.com (2603:10a6:20b:3de::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4331.21; Tue, 20 Jul 2021 15:44:44 +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; Tue, 20 Jul 2021 15:44:44 +0000 From: Andrea Corallo To: Binutils Cc: "richard.earnshaw@arm.com" Subject: PATCH [5/10] arm: Extend again arm_feature_set struct to provide more bits Date: Tue, 20 Jul 2021 17:38:52 +0200 Message-ID: Content-Type: multipart/mixed; boundary="=-=-=" X-ClientProxiedBy: LO4P123CA0144.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:193::23) 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 LO4P123CA0144.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:193::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4331.21 via Frontend Transport; Tue, 20 Jul 2021 15:44:44 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: e9a66b0d-6faa-441f-e483-08d94b954de5 X-MS-TrafficTypeDiagnostic: AM9PR08MB7197:|DB8PR08MB5259: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true NoDisclaimer: true X-MS-Oob-TLC-OOBClassifiers: OLM:6108;OLM:6108; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: PQk69YygLV1uBxJLFXnbvtJ8uLX5lpGfGvXOsEDmYKesvnVWRw6xB4IRIyNfz+wF5dCdDpUhTlstQWTC+CgHZMRupIIxT/za0kbbq+XAHxfE2ZllhzNZaDwa/13/NfpWWz/ceq0ydCi3w2zCXUcfGT6Rmed704NwawJc+bYi5LlzqKnsAGSZT+Cyjo/PTWrj0zRToYw5V5npPb8M9ZqI8EmiWzsB3vjBRwwRfSta40RotpTE4fUU0BVPFS34ZcjVrGnJyOh2YNuph4AjDgFFYgIWnKo0NCxcT1Wu8kOnWTmTF128dQGiUhQvGBjqKAMQzM7afzmaCBNBF6KE945H0ZzRCIEkZKN0iVPv5LbjeCCMkHAkO79MgnPlLOx3ocnji6aAn3pvg8mlp0AXNmAB0kZtkjCfZos/IrGtFGl2+mZXSU8OahkPq8zRhAF0Rt0a+WuRL5rESMmKa+iIGNKMCJ1M/b3hQvOdZtmKD3h4HhLiLxOionGKtktdNXzGkqo06eYBCAjhktYrseFcWwRgCyAsJLlRJIgiY+5hMyfJvRkgZBK6Af8cL/o5CtY68t9vLUn7DnavGXV8J+Ybs0nYC1q41OOcKwOAL9aRs3Z2IoZFPCsC0yh6E863atUbeiZ4vrNEDo1hq6ULKxx6WljtjHv9ZbsFCFZANvBIAfD3I5LBQhwEmGD6xfV+pHX9SBb8zyLc4qQROXz6jYEy40oZhQ== 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)(376002)(366004)(346002)(39840400004)(136003)(396003)(5660300002)(235185007)(66616009)(316002)(8936002)(36756003)(44832011)(8676002)(2616005)(956004)(83380400001)(38100700002)(38350700002)(86362001)(6666004)(6486002)(2906002)(33964004)(6496006)(26005)(66476007)(6916009)(52116002)(478600001)(186003)(4326008)(66946007)(66556008); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?FFVJXv/RJCebWw1ngVV6wIHjcNRmNilxz+FBrpPh3Dg5ohTkaN+L5wYAETMP?= =?us-ascii?Q?PW+eBm6raaIhd2X7BTHLDjGTNjLJkgkrGeM1Uw6l6CqKioAo6oNSjqvQANub?= =?us-ascii?Q?J1dQ3Sev6PTmVWVLnAfwVxSizDh6dglqenllrZ0ieLBeS+r/s/tpKEnciOTg?= =?us-ascii?Q?mxOoQwGp+DwZm5RxDgznghLvKI9YHfZYJb8V7W8jTn0YgHN6JFSOW4LIxFQm?= =?us-ascii?Q?D9HqYGAJCLmwJDFDq+mluVZm+yQXwY0G4Lzi0vZ1DiJ1DXRtk/C2g7CuOn3D?= =?us-ascii?Q?GU6EiHPlQ8T4i5BHc8hftQQDeH4pqqIUhEuFOFQdmNuWqVrhgx5MUgvG0DkK?= =?us-ascii?Q?uAAAPjp3sFtQNr9F/8eMZUwhjgv3P5+IhcPI6ou1q4rN7NfdZSm0vnkGEJ1U?= =?us-ascii?Q?39hD81U3RP9JaPeYdsy1xM4q31xpN5h358PQWB9Ta/IoRPIna40PwjkDTjwu?= =?us-ascii?Q?ETFKWVUuMJfcN1P6QN2DVk+Fc6lgyjVDXMI2pQlOkhkChEkcu68oz85lsf9T?= =?us-ascii?Q?e/sI6WQD9Aqrzr2XSPhrNofnpniCtIdhYavRU4dfFnwQ7cN7SCT8eFDYl+5p?= =?us-ascii?Q?m4gdEcK3QhWZlblM6eNVilZxAhopP+wH91tQEnxohH/8Gv4NdtNRrK8etaL9?= =?us-ascii?Q?c2yG7wg/dXmC3oRDvVtoJ5CsDj2oPdh5taMilCofbmv6Jl1IYrKPA1T2lSYe?= =?us-ascii?Q?AAhX7fjyEDDl5xOFc4ixgJ28MorWFou+jeFs34sR9y1ZkRzPkPHCiv+Stdby?= =?us-ascii?Q?kZvVmkvbuiLngzmjzD4lHrZzeqLf9Kn2q8kouVpxVcrCiL9vaJ3FoH18+LMa?= =?us-ascii?Q?sJ6zULtTB+RoX0/oUgkguUIwNAuf5knNKBywpmgNlibDpMxcZfhxVc5QzOtb?= =?us-ascii?Q?+3LzAr7+sSkDj6GSClGzDpu1XLXuOLyS84gX8lnTYfa3GEiFo0W6iYBlLlPJ?= =?us-ascii?Q?PRB/acqH9QQyPRYgGuF+cxl3CUFjnuQJqyUVaVu3CvyzBZcueA/R4mcd9isg?= =?us-ascii?Q?qYLfmXAI4IU5ufRPwXMOtC/kB172eUBK7LfOB+O9wJ7GjD1gsm+Rmyh6egrN?= =?us-ascii?Q?ztOfc6qvD5bP+b0IQrpvS/0eafvsWYMlj1lwkzdLLANkMwTpqcKVBSeQdt/X?= =?us-ascii?Q?JE+YPh5WV6eS6gMo5JX6fs7Hv8ba1MLYRcGaKz26XFn0h99Fc9id1L0nQFWW?= =?us-ascii?Q?K6eiZcIrch6aFQigCvX5oP9YQrH+t9AJuip1aryV3+eIsEAZLgTUDUduQdmj?= =?us-ascii?Q?MI7ekcM+f4U+5UbJ9doPfgwh9YMS9iK3a6b8YNpWO/MwF2CUvTXuMeBPEza1?= =?us-ascii?Q?rCbDuSL8XJQTTU3IlmMSwf8z?= X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR08MB7197 Original-Authentication-Results: arm.com; dkim=none (message not signed) header.d=none;arm.com; dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: AM5EUR03FT018.eop-EUR03.prod.protection.outlook.com X-MS-Office365-Filtering-Correlation-Id-Prvs: fafec0a0-cf2a-44cd-46d3-08d94b954c03 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: FDtcXg6KNdgaY/vftbumAZIi9OQV/UxPbkmN/omw0ULnA/BdtEh45GrOlXPIIUi7evN/DDuGvBNghKTSxkqN5cqWcNzb5jaap+PkBe32fD/e7I4uLurDFcagG+euzgLjXHTr9L9flfg8M9/e1klGW9isWAIpHNnbHqFlNyB3ubaDeaNGQ2gKA0ex37jhj9LeQuYKHDfJKE/ljJylYvWDXLV1H+xhLQImJ9USPOj5OMRK0ezEKwvbY+8JFofV9Q1UyoCCGkMiBRTXm1Fgr67fqRW+JxQRO9oevJaQo0elhIdMjBPeZRfXizsQIAf8N/vdS+BYM4koow/tZAMYylBxC1AV84tnh0x1t1N4ObBSFfsrbIz7uyq/OSaXnazffvtsU8kTENHQAkotFzxQm5zaY6XCJtoANhYzHjVYifm427ctWTN/7LIcGXJxMqtaGvsnpIe6cosrsggVjH2Gco82U64WUR6FSEN1J4PvLRXVqGf9LWOVydnuLErSUf40HypZtXvfeLwRrIUO/pjihdiku5j7fshui0FyLIkDVm5Ptq6GxBjTQAvi7dUhX2lk0DeZ8keqQlEOa6ua6MyEM34zywxUHDgFZwyY9rr3VQMJcrNtRc1EZWakol8si/qLZplUB3VTruQmxWJC9H0zH8hr0If55zxTYTm4IOdbZCzcDx1aVPRhhmafaD8ZS0y82yPlKKZbJyv5ZDtIv7gDRBrD2w== 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)(346002)(39840400004)(136003)(376002)(396003)(46966006)(36840700001)(70586007)(6496006)(83380400001)(66616009)(47076005)(316002)(186003)(4326008)(33964004)(36756003)(8676002)(70206006)(44832011)(6916009)(26005)(356005)(81166007)(82310400003)(2616005)(86362001)(6666004)(478600001)(8936002)(2906002)(5660300002)(235185007)(336012)(956004)(6486002)(36860700001); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Jul 2021 15:44:47.8178 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: e9a66b0d-6faa-441f-e483-08d94b954de5 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: AM5EUR03FT018.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB8PR08MB5259 X-Spam-Status: No, score=-13.2 required=5.0 tests=BAYES_00, 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: Tue, 20 Jul 2021 15:44:54 -0000 Message-ID: <20210720153852.zEHH7ATpHe7-iwx-qdaC9Qc-zDzZlPe8g2t5w6_PlMs@z> --=-=-= Content-Type: text/plain Hi all, fifth patch of the series adding support for PACBTI for Cortex-M. As all the bits in the 'core' field of 'arm_feature_set' struct are in use this adding a third element to it and is updating the accessor macros we have. This is in order to support the following patch that adds "-march=armv8.1-m.main+pacbti" flag. Regards Andrea --=-=-= Content-Type: text/plain; charset=utf-8 Content-Disposition: attachment; filename=0005-PATCH-5-10-arm-Extend-again-arm_feature_set-struct-t.patch >From 5f466825eb8240711888c9d32c67ef81be494b47 Mon Sep 17 00:00:00 2001 From: Andrea Corallo Date: Thu, 3 Jun 2021 16:48:05 +0200 Subject: [PATCH 05/10] PATCH [5/10] arm: Extend again arm_feature_set struct to provide more bits include/ 2021-06-11 Andrea Corallo * opcode/arm.h (arm_feature_set): Extend 'core' field. (ARM_CPU_HAS_FEATURE, ARM_FSET_CPU_SUBSET, ARM_CPU_IS_ANY) (ARM_MERGE_FEATURE_SETS, ARM_CLEAR_FEATURE, ARM_FEATURE_EQUAL) (ARM_FEATURE_ZERO, ARM_FEATURE_CORE_EQUAL): Account for 'core[2]'. (ARM_FEATURE_CORE_HIGH_HIGH): New macro. --- include/opcode/arm.h | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/include/opcode/arm.h b/include/opcode/arm.h index 90c09a70658..1152e781222 100644 --- a/include/opcode/arm.h +++ b/include/opcode/arm.h @@ -427,7 +427,7 @@ and use macro ARM_FEATURE to initialize the feature set variable. */ typedef struct { - unsigned long core[2]; + unsigned long core[3]; unsigned long coproc; } arm_feature_set; @@ -435,23 +435,27 @@ typedef struct #define ARM_CPU_HAS_FEATURE(CPU,FEAT) \ (((CPU).core[0] & (FEAT).core[0]) != 0 \ || ((CPU).core[1] & (FEAT).core[1]) != 0 \ + || ((CPU).core[2] & (FEAT).core[2]) != 0 \ || ((CPU).coproc & (FEAT).coproc) != 0) /* Tests whether the features of A are a subset of B. */ #define ARM_FSET_CPU_SUBSET(A,B) \ (((A).core[0] & (B).core[0]) == (A).core[0] \ && ((A).core[1] & (B).core[1]) == (A).core[1] \ + && ((A).core[2] & (B).core[2]) == (A).core[2] \ && ((A).coproc & (B).coproc) == (A).coproc) #define ARM_CPU_IS_ANY(CPU) \ ((CPU).core[0] == ((arm_feature_set)ARM_ANY).core[0] \ - && (CPU).core[1] == ((arm_feature_set)ARM_ANY).core[1]) + && (CPU).core[1] == ((arm_feature_set)ARM_ANY).core[1] \ + && (CPU).core[2] == ((arm_feature_set)ARM_ANY).core[2]) #define ARM_MERGE_FEATURE_SETS(TARG,F1,F2) \ do \ { \ (TARG).core[0] = (F1).core[0] | (F2).core[0]; \ (TARG).core[1] = (F1).core[1] | (F2).core[1]; \ + (TARG).core[2] = (F1).core[2] | (F2).core[2]; \ (TARG).coproc = (F1).coproc | (F2).coproc; \ } \ while (0) @@ -461,6 +465,7 @@ typedef struct { \ (TARG).core[0] = (F1).core[0] &~ (F2).core[0]; \ (TARG).core[1] = (F1).core[1] &~ (F2).core[1]; \ + (TARG).core[2] = (F1).core[2] &~ (F2).core[2]; \ (TARG).coproc = (F1).coproc &~ (F2).coproc; \ } \ while (0) @@ -468,17 +473,24 @@ typedef struct #define ARM_FEATURE_EQUAL(T1,T2) \ ( (T1).core[0] == (T2).core[0] \ && (T1).core[1] == (T2).core[1] \ + && (T1).core[2] == (T2).core[2] \ && (T1).coproc == (T2).coproc) #define ARM_FEATURE_ZERO(T) \ - ((T).core[0] == 0 && (T).core[1] == 0 && (T).coproc == 0) + ((T).core[0] == 0 \ + && (T).core[1] == 0 \ + && (T).core[2] == 0 \ + && (T).coproc == 0) #define ARM_FEATURE_CORE_EQUAL(T1, T2) \ - ((T1).core[0] == (T2).core[0] && (T1).core[1] == (T2).core[1]) + ((T1).core[0] == (T2).core[0] \ + && (T1).core[1] == (T2).core[1] \ + && (T1).core[2] == (T2).core[2]) #define ARM_FEATURE_LOW(core, coproc) {{(core), 0}, (coproc)} #define ARM_FEATURE_CORE(core1, core2) {{(core1), (core2)}, 0} #define ARM_FEATURE_CORE_LOW(core) {{(core), 0}, 0} #define ARM_FEATURE_CORE_HIGH(core) {{0, (core)}, 0} +#define ARM_FEATURE_CORE_HIGH_HIGH(core) {{0, 0, (core)}, 0} #define ARM_FEATURE_COPROC(coproc) {{0, 0}, (coproc)} #define ARM_FEATURE(core1, core2, coproc) {{(core1), (core2)}, (coproc)} -- 2.20.1 --=-=-=--