From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by sourceware.org (Postfix) with ESMTP id 7C0B13854156 for ; Thu, 29 Sep 2022 10:42:43 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 7C0B13854156 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=arm.com Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id E7BCC15BF for ; Thu, 29 Sep 2022 03:42:49 -0700 (PDT) Received: from localhost (e121540-lin.manchester.arm.com [10.32.98.62]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id E1DB13F73B for ; Thu, 29 Sep 2022 03:42:42 -0700 (PDT) From: Richard Sandiford To: gcc-patches@gcc.gnu.org Mail-Followup-To: gcc-patches@gcc.gnu.org, richard.sandiford@arm.com Subject: [PATCH 15/17] aarch64: Tweak contents of flags_on/off fields References: Date: Thu, 29 Sep 2022 11:42:41 +0100 In-Reply-To: (Richard Sandiford's message of "Thu, 29 Sep 2022 11:39:11 +0100") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Status: No, score=-45.7 required=5.0 tests=BAYES_00,GIT_PATCH_0,KAM_DMARC_NONE,KAM_DMARC_STATUS,KAM_LAZY_DOMAIN_SECURITY,SPF_HELO_NONE,SPF_NONE,TXREP 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: After previous changes, it's more convenient if the flags_on and flags_off fields of all_extensions include the feature flag itself. gcc/ * common/config/aarch64/aarch64-common.cc (all_extensions): Include the feature flag in flags_on and flags_off. (aarch64_parse_extension): Update accordingly. (aarch64_get_extension_string_for_isa_flags): Likewise. --- gcc/common/config/aarch64/aarch64-common.cc | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/gcc/common/config/aarch64/aarch64-common.cc b/gcc/common/config/aarch64/aarch64-common.cc index bebcfd4c9d3..ffa83bb478f 100644 --- a/gcc/common/config/aarch64/aarch64-common.cc +++ b/gcc/common/config/aarch64/aarch64-common.cc @@ -137,10 +137,8 @@ struct aarch64_option_extension static constexpr aarch64_option_extension all_extensions[] = { #define AARCH64_OPT_EXTENSION(NAME, IDENT, C, D, E, F) \ - {NAME, AARCH64_FL_##IDENT, \ - feature_deps::IDENT ().explicit_on & ~AARCH64_FL_##IDENT, \ - feature_deps::get_flags_off (feature_deps::root_off_##IDENT) \ - & ~AARCH64_FL_##IDENT}, + {NAME, AARCH64_FL_##IDENT, feature_deps::IDENT ().explicit_on, \ + feature_deps::get_flags_off (feature_deps::root_off_##IDENT)}, #include "config/aarch64/aarch64-option-extensions.def" {NULL, 0, 0, 0} }; @@ -228,9 +226,9 @@ aarch64_parse_extension (const char *str, aarch64_feature_flags *isa_flags, { /* Add or remove the extension. */ if (adding_ext) - *isa_flags |= (opt->flags_on | opt->flag_canonical); + *isa_flags |= opt->flags_on; else - *isa_flags &= ~(opt->flags_off | opt->flag_canonical); + *isa_flags &= ~opt->flags_off; break; } } @@ -304,7 +302,7 @@ aarch64_get_extension_string_for_isa_flags if ((flags & isa_flags & (explicit_flags | ~current_flags)) == flags) { - current_flags |= opt.flag_canonical | opt.flags_on; + current_flags |= opt.flags_on; added |= opt.flag_canonical; } } @@ -319,7 +317,7 @@ aarch64_get_extension_string_for_isa_flags for (auto &opt : all_extensions) if (opt.flag_canonical & current_flags & ~isa_flags) { - current_flags &= ~(opt.flag_canonical | opt.flags_off); + current_flags &= ~opt.flags_off; outstr += "+no"; outstr += opt.name; } -- 2.25.1