From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05on2081.outbound.protection.outlook.com [40.107.22.81]) by sourceware.org (Postfix) with ESMTPS id CDDE53858D32 for ; Tue, 5 Dec 2023 19:33:48 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org CDDE53858D32 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 CDDE53858D32 Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=40.107.22.81 ARC-Seal: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1701804830; cv=pass; b=vTyt86xn8X4rrpz/5iUiVjNuXbeqCeTkkmtP6IkiyCGfaR7RQ6dvICnr0coNo1gbgbDBkvSP+yOWCSldXP59R0zbCcv4eLrBa7+wsfsT3YdDFWyzCSNzReN3CuAt8uMRltzm7tC6hsGPEL3kpeZt0m1l+eZNXFWjY8d0k2I7Sew= ARC-Message-Signature: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1701804830; c=relaxed/simple; bh=Wpn9Ud2rSNBEwOmhYhro02vhXisGaxG7RApoGbFs67M=; h=DKIM-Signature:DKIM-Signature:Date:From:To:Subject:Message-ID: MIME-Version; b=cwaAz/1ET5vz1spnlsBXIcqfIPBT6cbGSORc/E0snLV85iztAvjB3b+wq+A4mKsUhJmHOymsdOHwciIcJLkQmOnFDomXgMya4u1pHCY0hJAPbrwDYOqlzn2c0YP2cidCGpKewJrkpZTiIQl+WHQQhUhIQHvhpbOGXSY7hQpYC8U= ARC-Authentication-Results: i=3; server2.sourceware.org ARC-Seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass; b=GP3IRRHJJQrLH4rzUXpw5SQN9TVeEVoUAaEP7G1l5qESPaly8/yrJ5V99rsIyxrcYxjlbuWLoGKzasDXTXf2BaHhdWyxqrS20UzF+3GgnM5hHUl23guOED/Jec1HpSlJu0IfzvfMFq134aCjCRETWsdppvZAMnoxmDWilGJealV2xc5Y2j1vOEhRQ6D1t6Q27bh/2VPrxJoLYdUzRy9gJmZU4EQhLS3KHmgyU5pFySYoghLaGI3QJ3ZpbOuC+rQX8P5/UQ1N5GRUCvXSwZXB9F/YBTiZ5c2t92Izwx+iiLyMrrnUqqhsOrVbSQwAh5WFCZCDt6NkxQpVS5lahE+xfQ== 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=6uOw7RBxxyR86weXuMTEPY+P0ZZhheuy85TUPvvkLaM=; b=VpCQCwSXS1wB6KVP6rqiga0NMCn53PZKoIF3fVIhjCn7PaCiYfj+o9nciUARmWGjI8zBqmXY3qsEwF2VPd/SaQLlgXd9S8IlemcVokHnyKGDD2BcJuw5qxhDzfhTnpY13IVl3XYjpA0XGigGaLcR3z8WPTz74AK69NvlQcVZUEm+Irvv5elkxiDhZhL5clFvVbn898/2U/0FUjSNfLbv1yp5N8islJ89XfejUlHEBjhzBTQ++KGqEiFAmMkkm4151iXUt2mQrSRGhmys0GrSPZL9Wnp4JnXqX63/EjzwMCUiRPMyn5c2OLvmhgKkkS0O+Sn9QiyvF86bO7pElzRi1g== ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is 63.35.35.123) smtp.rcpttodomain=gcc.gnu.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] dkim=[1,1,header.d=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=6uOw7RBxxyR86weXuMTEPY+P0ZZhheuy85TUPvvkLaM=; b=M9DZY3V1n1Etgq7McvPGVzoAnNGQO/TO+Irox0vE6TQMcjolisCUGsusCatkanbi6NJ/l6DKwS9yrVeLmF+vaMRek6bnqHAv75Xe8mJ+07uM5OCef1iEq8amo9Y/jlTqbX6t8ezywunKaXBri1TAOHuWVnx7A05t/UQsREx/BMU= Received: from AS9PR06CA0573.eurprd06.prod.outlook.com (2603:10a6:20b:486::8) by PAWPR08MB8888.eurprd08.prod.outlook.com (2603:10a6:102:33c::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.34; Tue, 5 Dec 2023 19:33:45 +0000 Received: from AMS0EPF00000191.eurprd05.prod.outlook.com (2603:10a6:20b:486:cafe::84) by AS9PR06CA0573.outlook.office365.com (2603:10a6:20b:486::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.33 via Frontend Transport; Tue, 5 Dec 2023 19:33:45 +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 AMS0EPF00000191.mail.protection.outlook.com (10.167.16.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.20 via Frontend Transport; Tue, 5 Dec 2023 19:33:44 +0000 Received: ("Tessian outbound e243565b0037:v228"); Tue, 05 Dec 2023 19:33:44 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: f2d0044f933a4832 X-CR-MTA-TID: 64aa7808 Received: from 35e17610dcb9.2 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 3DF8B159-C2D9-4447-99EE-652815D09C66.1; Tue, 05 Dec 2023 19:33:37 +0000 Received: from EUR04-DB3-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 35e17610dcb9.2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Tue, 05 Dec 2023 19:33:37 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=gdgZDmSpDkQQSCOtSuRkXyVXtzv8QeaAYLI00FRyY37Po+Ok1YiwlwrNSv2ZIwmg8/apJH7TyO+I++uppDbxnISsjx9aBhO50+V4/q3R9rU7vyIk/eE8Nkcx7GinwljfQc9KeH0pNZXCu1swUePMWXIrtgaqP9hQn4xa3kMboLuSSfHicegFhySNW5zhAgSvu0O+SqvIU70ysdFuLONcIsKod8GOz2s35dOjZ5zngO8hRpR9NPe+wD2tJawT7mWKcKZXskHSwu177lK0fGG/pxULMG/o1xsY160Nw66uC2Ycd3+p5tF6uXxKI0gqmO+bPjOgpJOssO6+hMAW6qD4ww== 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=6uOw7RBxxyR86weXuMTEPY+P0ZZhheuy85TUPvvkLaM=; b=UOali+YQhY9O/he+w+3M9CvaRDE3jw48y7G3zlty1FAk+LYCebZ4vGAK3ahAmdykv9+oCOeGn9X39HiXyt3oqTGL+e2Wwwtml+7iPCkVJtgHdAZyxcjrdj/kWKogRUbUmZQPXnbU9yvYCLnKTlz8cHkazaBKXWn7vqguyyggZc2oPlULIG7o4GBfcCa90GYDD1J9/t1utJxkmVHRHFVEzapvdHsCHL7QKxXcRpov89MWxuT7wgh9gs+ucRe9zpUvz3XdG7rjb2TfNLN9vd25fQibvrRaIL3cW9l5/UHVkzgrREFD3JTZpPn/no28x7ZJ22s4yOI/yfBADgUsZktUwQ== 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=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=6uOw7RBxxyR86weXuMTEPY+P0ZZhheuy85TUPvvkLaM=; b=M9DZY3V1n1Etgq7McvPGVzoAnNGQO/TO+Irox0vE6TQMcjolisCUGsusCatkanbi6NJ/l6DKwS9yrVeLmF+vaMRek6bnqHAv75Xe8mJ+07uM5OCef1iEq8amo9Y/jlTqbX6t8ezywunKaXBri1TAOHuWVnx7A05t/UQsREx/BMU= Authentication-Results-Original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; Received: from AS8PR08MB6678.eurprd08.prod.outlook.com (2603:10a6:20b:398::8) by PAVPR08MB9652.eurprd08.prod.outlook.com (2603:10a6:102:31c::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.34; Tue, 5 Dec 2023 19:33:36 +0000 Received: from AS8PR08MB6678.eurprd08.prod.outlook.com ([fe80::af15:c9d7:cd8c:6da2]) by AS8PR08MB6678.eurprd08.prod.outlook.com ([fe80::af15:c9d7:cd8c:6da2%7]) with mapi id 15.20.7046.034; Tue, 5 Dec 2023 19:33:36 +0000 Date: Tue, 5 Dec 2023 19:33:33 +0000 From: Andrew Carlotti To: gcc-patches@gcc.gnu.org Cc: Richard Sandiford , Richard Earnshaw Subject: aarch64: Fix +nocrypto handling Message-ID: <58ac7f4d-04d3-260c-1612-1ca09c420ce5@e124511.cambridge.arm.com> Content-Type: text/plain; charset=us-ascii Content-Disposition: inline X-ClientProxiedBy: LO2P265CA0273.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:a1::21) To AS8PR08MB6678.eurprd08.prod.outlook.com (2603:10a6:20b:398::8) MIME-Version: 1.0 X-MS-TrafficTypeDiagnostic: AS8PR08MB6678:EE_|PAVPR08MB9652:EE_|AMS0EPF00000191:EE_|PAWPR08MB8888:EE_ X-MS-Office365-Filtering-Correlation-Id: 5f11d006-c2d0-49a1-9c49-08dbf5c91862 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: Bw8cz96nUItUm2WHRYJ/kJ8oAkByJHYkOw1Wx4mWNlZZ/1/quj78nbuBrcoaAxGFwEFX+YR8X4J5WF19EpudMazU93PW2yC6HYBCQUKWFebh+g+jjHTYBb011kFlWLaJTh50lZwJGA3G/xiyz7xm/N7zxVP1g+b2JNlXV+9J6XhuWcht4tBn81rDkTuIoCzGlHhyiV9Xb8t7YJAwl/tOTShz/+gwbNDVdmadcfxanSNOLdpgaauewHMhJqBpFV79Ayadx0WInNgWTU6+wKaPK96e/xCNHrKV9lbmq6VVglU/n924IGkmcpHVUIuGZHAAJR2RPmAjh9ucr05LMiEdeJohx49syzVRse9VvUPA1k6AmHJ2q6XGtETRF627TkSxs0lj6HN/O9uh6LGcr3/FEZQtm5cmhoKeqPBaZ8fCayqG6ea5iPSaSBxh988+9Y2xY5OanCmtpVECNXAVjICcuMr81fDowm9jXlyNI2uFKq3ggQGgrM6q9KQyIdTE3cay/vwPCsb+cEM3mLt8vSjtEvS92VqwdOuKe4bRl2R/f7U4FnJY5ShEtRzAIUqAI19W8EYuQf/FF/W8Wx7HxpUU2w== X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS8PR08MB6678.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(376002)(346002)(396003)(39860400002)(136003)(366004)(230922051799003)(451199024)(64100799003)(1800799012)(186009)(41300700001)(5660300002)(2906002)(44832011)(31696002)(86362001)(31686004)(6506007)(6666004)(83380400001)(6486002)(478600001)(26005)(6512007)(84970400001)(66946007)(38100700002)(4326008)(8936002)(66556008)(66476007)(8676002)(316002)(54906003)(6916009);DIR:OUT;SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAVPR08MB9652 Original-Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: AMS0EPF00000191.eurprd05.prod.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 80c19598-fcfc-4111-768f-08dbf5c9133a X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: zzn+FQnlAupSO8TP8nfAKdXWp2atafuzFRgZerlapoTNXNSPCBcoonjP9iKG7o3ePYceAIbf+l37ruOQxYu0lctz0hnJyNuFKRSJuysTj27pX3e/nDHrtKDY+mOkoxIzFg7/T15oPFS78HujWeA5YnecVSzg7JHQn93wVFe04eTPnnqX/VW7YoUz9AfQpdtuExTVj+9d8KlLh3CuoRCnO+4+7/EipNsyOmzcwpdussQYEOX9hJFArPdoQ7gdi7fdMw50uLg1vyrFnmVSYfHnJaf2fi2IoLvJX2FRQGz8fiy60H4fsa9QTJLUI1CSKnAOWmHY/zZnQ+OI4MiY0gFp+z3UiSHl5DBykzCz8v96X3M4k1yKtezPOWAW+lXky1+JegopsIpEoROZQ1V73JDDhoOsU0/HFCcchYVNt1kAxqktjC9YfThoB2HFtUhvTWdphNmZu4t5VPrhzXhh1AsLnkf9NZ0i8n6mrnGL3mNPBDovrxJjI9x+ytgZvQLMp2Gk4tld43gJjafFlLT9hswYMXQxnGiJlpjA7JYR1cnLaTW9QU6jnoXEc+WV75/+MegdM9/AEmeLttm1bK6icQpysST8KXvgkNzDusbjUcT/Qszb0ZQLMkog3qXHZ4VHKN031MMd6v0yBGVyanK/S6Mp/nnkEgvIy2y787UGgdo/P6iclfsiLU0YGjAV9vYl8APimmkd0RacDe+F6eGKhAss44PtCocjLPe1O1rhZGE3PYwv7i8Q112/VdqsSdPJnelveUM/xw8aHGbxGuPFGjroMQ== 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)(376002)(346002)(396003)(39860400002)(136003)(230922051799003)(451199024)(82310400011)(64100799003)(1800799012)(186009)(46966006)(40470700004)(36840700001)(41300700001)(5660300002)(2906002)(44832011)(31696002)(86362001)(40460700003)(31686004)(82740400003)(47076005)(70586007)(356005)(70206006)(81166007)(6506007)(6666004)(83380400001)(6486002)(478600001)(26005)(336012)(6512007)(84970400001)(40480700001)(4326008)(8936002)(36860700001)(8676002)(316002)(54906003)(6916009);DIR:OUT;SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Dec 2023 19:33:44.8779 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 5f11d006-c2d0-49a1-9c49-08dbf5c91862 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: AMS0EPF00000191.eurprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR08MB8888 X-Spam-Status: No, score=-12.1 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,FORGED_SPF_HELO,GIT_PATCH_0,KAM_DMARC_NONE,KAM_LOTSOFHASH,KAM_SHORT,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 List-Id: Additionally, replace all checks for the AARCH64_FL_CRYPTO bit with checks for (AARCH64_FL_AES | AARCH64_FL_SHA2) instead. The value of the AARCH64_FL_CRYPTO bit within isa_flags is now ignored, but it is retained because removing it would make processing the data in option-extensions.def significantly more complex. Ok for master? gcc/ChangeLog: * common/config/aarch64/aarch64-common.cc (aarch64_get_extension_string_for_isa_flags): Fix generation of the "+nocrypto" extension. * config/aarch64/aarch64.h (AARCH64_ISA_CRYPTO): Remove. (TARGET_CRYPTO): Remove. * config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): Don't use TARGET_CRYPTO. gcc/testsuite/ChangeLog: * gcc.target/aarch64/options_set_27.c: New test. * gcc.target/aarch64/options_set_28.c: New test. diff --git a/gcc/common/config/aarch64/aarch64-common.cc b/gcc/common/config/aarch64/aarch64-common.cc index 20bc4e1291bba9b73798398fea659f1154afa205..6d12454143cd64ebaafa7f5e6c23869ee0bfa543 100644 --- a/gcc/common/config/aarch64/aarch64-common.cc +++ b/gcc/common/config/aarch64/aarch64-common.cc @@ -310,6 +310,7 @@ aarch64_get_extension_string_for_isa_flags But in order to make the output more readable, it seems better to add the strings in definition order. */ aarch64_feature_flags added = 0; + auto flags_crypto = AARCH64_FL_AES | AARCH64_FL_SHA2; for (unsigned int i = ARRAY_SIZE (all_extensions); i-- > 0; ) { auto &opt = all_extensions[i]; @@ -319,7 +320,7 @@ aarch64_get_extension_string_for_isa_flags per-feature crypto flags. */ auto flags = opt.flag_canonical; if (flags == AARCH64_FL_CRYPTO) - flags = AARCH64_FL_AES | AARCH64_FL_SHA2; + flags = flags_crypto; if ((flags & isa_flags & (explicit_flags | ~current_flags)) == flags) { @@ -337,9 +338,27 @@ aarch64_get_extension_string_for_isa_flags /* Remove the features in current_flags & ~isa_flags. If the feature does not have an HWCAPs then it shouldn't be taken into account for feature detection because one way or another we can't tell if it's available - or not. */ + or not. + + As a special case, emit "+nocrypto" instead of "+noaes+nosha2", in order + to support assemblers that predate the separate per-feature crypto flags. + Only use "+nocrypto" when "simd" is enabled (to avoid redundant feature + removal), and when "sm4" is not already enabled (to avoid dependending on + whether "+nocrypto" also disables "sm4") */ + for (auto &opt : all_extensions) + if ((opt.flag_canonical == AARCH64_FL_CRYPTO) + && ((flags_crypto & current_flags & ~isa_flags) == flags_crypto) + && (current_flags & AARCH64_FL_SIMD) + && !(current_flags & AARCH64_FL_SM4)) + { + current_flags &= ~opt.flags_off; + outstr += "+no"; + outstr += opt.name; + } + for (auto &opt : all_extensions) if (opt.native_detect_p + && (opt.flag_canonical != AARCH64_FL_CRYPTO) && (opt.flag_canonical & current_flags & ~isa_flags)) { current_flags &= ~opt.flags_off; diff --git a/gcc/config/aarch64/aarch64-c.cc b/gcc/config/aarch64/aarch64-c.cc index ab8844f6049dc95b97648b651bfcd3a4ccd3ca0b..4f9ee01d52f3ac42f95edbb030bdb2d09fc36d16 100644 --- a/gcc/config/aarch64/aarch64-c.cc +++ b/gcc/config/aarch64/aarch64-c.cc @@ -140,7 +140,7 @@ aarch64_update_cpp_builtins (cpp_reader *pfile) aarch64_def_or_undef (TARGET_ILP32, "_ILP32", pfile); aarch64_def_or_undef (TARGET_ILP32, "__ILP32__", pfile); - aarch64_def_or_undef (TARGET_CRYPTO, "__ARM_FEATURE_CRYPTO", pfile); + aarch64_def_or_undef (TARGET_AES && TARGET_SHA2, "__ARM_FEATURE_CRYPTO", pfile); aarch64_def_or_undef (TARGET_SIMD_RDMA, "__ARM_FEATURE_QRDMX", pfile); aarch64_def_or_undef (TARGET_SVE, "__ARM_FEATURE_SVE", pfile); cpp_undef (pfile, "__ARM_FEATURE_SVE_BITS"); diff --git a/gcc/config/aarch64/aarch64.h b/gcc/config/aarch64/aarch64.h index 1ac298926ce1606a87bcdcaf691f182ca416d600..d3613a0a42b7b6d2c4452739841b133014909a39 100644 --- a/gcc/config/aarch64/aarch64.h +++ b/gcc/config/aarch64/aarch64.h @@ -177,10 +177,13 @@ enum class aarch64_feature : unsigned char { #endif -/* Macros to test ISA flags. */ +/* Macros to test ISA flags. + + There is intentionally no macro for AARCH64_FL_CRYPTO, since this flag bit + is not always set when its constituent features are present. + Check (TARGET_AES && TARGET_SHA2) instead. */ #define AARCH64_ISA_CRC (aarch64_isa_flags & AARCH64_FL_CRC) -#define AARCH64_ISA_CRYPTO (aarch64_isa_flags & AARCH64_FL_CRYPTO) #define AARCH64_ISA_FP (aarch64_isa_flags & AARCH64_FL_FP) #define AARCH64_ISA_SIMD (aarch64_isa_flags & AARCH64_FL_SIMD) #define AARCH64_ISA_LSE (aarch64_isa_flags & AARCH64_FL_LSE) @@ -223,9 +226,6 @@ enum class aarch64_feature : unsigned char { #define AARCH64_ISA_LS64 (aarch64_isa_flags & AARCH64_FL_LS64) #define AARCH64_ISA_CSSC (aarch64_isa_flags & AARCH64_FL_CSSC) -/* Crypto is an optional extension to AdvSIMD. */ -#define TARGET_CRYPTO (AARCH64_ISA_CRYPTO) - /* SHA2 is an optional extension to AdvSIMD. */ #define TARGET_SHA2 (AARCH64_ISA_SHA2) diff --git a/gcc/testsuite/gcc.target/aarch64/options_set_27.c b/gcc/testsuite/gcc.target/aarch64/options_set_27.c new file mode 100644 index 0000000000000000000000000000000000000000..08f2b5962ad5f4204eca4d2020ace74dbfd7c7ea --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/options_set_27.c @@ -0,0 +1,11 @@ +/* { dg-do compile } */ +/* { dg-additional-options "-march=armv8.2-a+aes+sha2" } */ + +int main () +{ + return 0; +} + +/* { dg-final { scan-assembler-times {\.arch armv8\.2\-a\+crc\+crypto\n} 1 } } */ + +/* Checking if enabling default features drops the superfluous bits. */ diff --git a/gcc/testsuite/gcc.target/aarch64/options_set_28.c b/gcc/testsuite/gcc.target/aarch64/options_set_28.c new file mode 100644 index 0000000000000000000000000000000000000000..ec7619c6c937f44bc5a3ddc29c93ecfa5dafa2f5 --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/options_set_28.c @@ -0,0 +1,11 @@ +/* { dg-do compile } */ +/* { dg-additional-options "-march=armv8.2-a+aes+sha3" } */ + +int main () +{ + return 0; +} + +/* { dg-final { scan-assembler-times {\.arch armv8\.2\-a\+crc\+aes\+sha3\n} 1 } } */ + +/* Checking if enabling default features drops the superfluous bits. */