From patchwork Thu Dec 24 23:45:58 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "H.J. Lu" X-Patchwork-Id: 41554 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 432533857C40; Thu, 24 Dec 2020 23:46:09 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 432533857C40 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1608853569; bh=isSwj+88KNaxiQKcGspA7yYIOpVFNCsqNCa9ES4/17Y=; h=To:Subject:Date:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:From; b=Oi0newih3B5Hb1iYNuYp8elDbpcH83amBJPc/rONXKDitq9lvU1JAI829mpCDMpX6 YtTapBNfIbuPnvgD3BTu8Rr7XUa69wIt7ntxjaegQwonPbRivX5HUeik0dLM6RSI7C lPFkTvAHmsEMoViGousRwgeIUqmoRoNlXkp1fP/g= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from mail-pl1-x635.google.com (mail-pl1-x635.google.com [IPv6:2607:f8b0:4864:20::635]) by sourceware.org (Postfix) with ESMTPS id BF557385802E for ; Thu, 24 Dec 2020 23:46:04 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org BF557385802E Received: by mail-pl1-x635.google.com with SMTP id 4so1862231plk.5 for ; Thu, 24 Dec 2020 15:46:04 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:mime-version :content-transfer-encoding; bh=isSwj+88KNaxiQKcGspA7yYIOpVFNCsqNCa9ES4/17Y=; b=kyo381jraA7mba7Xg5Ab348jJornw/y3Rcq38pts9Nmopa1HBY+UN0Su/59IeePu3l I0z8RbkKG/YR6d74E3vLUZSBETBS5E61EYpkgIR5gK+dalswi94W5+91bsTclmQ9J0bj NvcElEWCvCriYKHEykpU438E1QAYh7kC90r2VbEIN/RYz1/9pnuu0Oq9TckmkRMKbL/5 EJXxN4WMjB3Q1Y2f4XMYjfWz4r7pIvfuwIW8Nc92o1g9esohMZ4lz/nqbtcLwDuFJKOR DPXcu6XoidKuPo09Hn8dRwBcNg/ViOC9KGfTfnOiE4VtSrcTo4zr+drdtrfwv3DpNFxw UCXA== X-Gm-Message-State: AOAM531h5onoR57nxY7K+GHbKqlrM6aL5QxUKC2R6poq5VCRZqxHqjE+ nVr12amZpXRogR/jPKfwvr6hvNwoQN4= X-Google-Smtp-Source: ABdhPJzMsYCJX65gUfuXYpYUy2AxDAfNEcWkptinezIV9Oew2uSs9oDhRy+nYk5qbG2bKlYeNmEpMA== X-Received: by 2002:a17:902:7895:b029:dc:4bf0:2b74 with SMTP id q21-20020a1709027895b02900dc4bf02b74mr7070309pll.32.1608853563478; Thu, 24 Dec 2020 15:46:03 -0800 (PST) Received: from gnu-cfl-2.localdomain (c-69-181-90-243.hsd1.ca.comcast.net. [69.181.90.243]) by smtp.gmail.com with ESMTPSA id er23sm3621196pjb.12.2020.12.24.15.46.02 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 24 Dec 2020 15:46:02 -0800 (PST) Received: from gnu-tgl-2.localdomain (unknown [192.168.1.34]) by gnu-cfl-2.localdomain (Postfix) with ESMTPS id 4842C1A0237 for ; Thu, 24 Dec 2020 15:46:01 -0800 (PST) Received: from gnu-tgl-2.localdomain (localhost [IPv6:::1]) by gnu-tgl-2.localdomain (Postfix) with ESMTP id 43E803000EC for ; Thu, 24 Dec 2020 15:46:00 -0800 (PST) To: libc-alpha@sourceware.org Subject: [PATCH] Remove _ISOMAC check from Date: Thu, 24 Dec 2020 15:45:58 -0800 Message-Id: <20201224234558.1952004-1-hjl.tools@gmail.com> X-Mailer: git-send-email 2.29.2 MIME-Version: 1.0 X-Spam-Status: No, score=-3039.7 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: "H.J. Lu via Libc-alpha" From: "H.J. Lu" Reply-To: "H.J. Lu" Errors-To: libc-alpha-bounces@sourceware.org Sender: "Libc-alpha" Remove _ISOMAC check from since it isn't an installer header file. --- sysdeps/x86/include/cpu-features.h | 156 ++++++++++++++--------------- 1 file changed, 75 insertions(+), 81 deletions(-) diff --git a/sysdeps/x86/include/cpu-features.h b/sysdeps/x86/include/cpu-features.h index 0df57d9a17..a53194a6ca 100644 --- a/sysdeps/x86/include/cpu-features.h +++ b/sysdeps/x86/include/cpu-features.h @@ -23,20 +23,16 @@ # error this should be impossible #endif -#ifndef _ISOMAC /* Get most of the contents from the public header, but we define a different `struct cpu_features' type for private use. */ -# define cpu_features cpu_features_public -# define __x86_get_cpu_features __x86_get_cpu_features_public -#endif +#define cpu_features cpu_features_public +#define __x86_get_cpu_features __x86_get_cpu_features_public #include -#ifndef _ISOMAC - -# undef cpu_features -# undef __x86_get_cpu_features -# define __get_cpu_features() __x86_get_cpu_features (0) +#undef cpu_features +#undef __x86_get_cpu_features +#define __get_cpu_features() __x86_get_cpu_features (0) enum { @@ -48,79 +44,79 @@ enum }; /* Only used directly in cpu-features.c. */ -# define CPU_FEATURE_SET(ptr, name) \ +#define CPU_FEATURE_SET(ptr, name) \ ptr->features[index_cpu_##name].usable.reg_##name |= bit_cpu_##name; -# define CPU_FEATURE_UNSET(ptr, name) \ +#define CPU_FEATURE_UNSET(ptr, name) \ ptr->features[index_cpu_##name].usable.reg_##name &= ~bit_cpu_##name; -# define CPU_FEATURE_SET_USABLE(ptr, name) \ +#define CPU_FEATURE_SET_USABLE(ptr, name) \ ptr->features[index_cpu_##name].usable.reg_##name \ |= ptr->features[index_cpu_##name].cpuid.reg_##name & bit_cpu_##name; -# define CPU_FEATURE_PREFERRED_P(ptr, name) \ +#define CPU_FEATURE_PREFERRED_P(ptr, name) \ ((ptr->preferred[index_arch_##name] & bit_arch_##name) != 0) /* HAS_CPU_FEATURE evaluates to true if CPU supports the feature. */ -# undef HAS_CPU_FEATURE -# define HAS_CPU_FEATURE(name) \ +#undef HAS_CPU_FEATURE +#define HAS_CPU_FEATURE(name) \ CPU_FEATURE_CPU_P (__x86_get_cpu_features (0), name) /* CPU_FEATURE_USABLE evaluates to true if the feature is usable. */ -# undef CPU_FEATURE_USABLE -# define CPU_FEATURE_USABLE(name) \ +#undef CPU_FEATURE_USABLE +#define CPU_FEATURE_USABLE(name) \ CPU_FEATURE_USABLE_P (__x86_get_cpu_features (0), name) /* CPU_FEATURE_PREFER evaluates to true if we prefer the feature at runtime. */ -# define CPU_FEATURE_PREFERRED(name) \ +#define CPU_FEATURE_PREFERRED(name) \ CPU_FEATURE_PREFERRED_P(__get_cpu_features (), name) -# define CPU_FEATURES_CPU_P(ptr, name) \ +#define CPU_FEATURES_CPU_P(ptr, name) \ CPU_FEATURE_CPU_P (ptr, name) -# define CPU_FEATURES_ARCH_P(ptr, name) \ +#define CPU_FEATURES_ARCH_P(ptr, name) \ CPU_FEATURE_PREFERRED_P (ptr, name) -# define HAS_ARCH_FEATURE(name) \ +#define HAS_ARCH_FEATURE(name) \ CPU_FEATURE_PREFERRED (name) /* PREFERRED_FEATURE_INDEX_1. */ -# define bit_arch_I586 (1u << 0) -# define bit_arch_I686 (1u << 1) -# define bit_arch_Fast_Rep_String (1u << 2) -# define bit_arch_Fast_Copy_Backward (1u << 3) -# define bit_arch_Fast_Unaligned_Load (1u << 4) -# define bit_arch_Fast_Unaligned_Copy (1u << 5) -# define bit_arch_Slow_BSF (1u << 6) -# define bit_arch_Slow_SSE4_2 (1u << 7) -# define bit_arch_AVX_Fast_Unaligned_Load (1u << 8) -# define bit_arch_Prefer_MAP_32BIT_EXEC (1u << 9) -# define bit_arch_Prefer_PMINUB_for_stringop (1u << 10) -# define bit_arch_Prefer_No_VZEROUPPER (1u << 11) -# define bit_arch_Prefer_ERMS (1u << 12) -# define bit_arch_Prefer_FSRM (1u << 13) -# define bit_arch_Prefer_No_AVX512 (1u << 14) -# define bit_arch_MathVec_Prefer_No_AVX512 (1u << 15) - -# define index_arch_Fast_Rep_String PREFERRED_FEATURE_INDEX_1 -# define index_arch_Fast_Copy_Backward PREFERRED_FEATURE_INDEX_1 -# define index_arch_Slow_BSF PREFERRED_FEATURE_INDEX_1 -# define index_arch_Fast_Unaligned_Load PREFERRED_FEATURE_INDEX_1 -# define index_arch_Prefer_PMINUB_for_stringop PREFERRED_FEATURE_INDEX_1 -# define index_arch_Fast_Unaligned_Copy PREFERRED_FEATURE_INDEX_1 -# define index_arch_I586 PREFERRED_FEATURE_INDEX_1 -# define index_arch_I686 PREFERRED_FEATURE_INDEX_1 -# define index_arch_Slow_SSE4_2 PREFERRED_FEATURE_INDEX_1 -# define index_arch_AVX_Fast_Unaligned_Load PREFERRED_FEATURE_INDEX_1 -# define index_arch_Prefer_MAP_32BIT_EXEC PREFERRED_FEATURE_INDEX_1 -# define index_arch_Prefer_No_VZEROUPPER PREFERRED_FEATURE_INDEX_1 -# define index_arch_Prefer_ERMS PREFERRED_FEATURE_INDEX_1 -# define index_arch_Prefer_No_AVX512 PREFERRED_FEATURE_INDEX_1 -# define index_arch_MathVec_Prefer_No_AVX512 PREFERRED_FEATURE_INDEX_1 -# define index_arch_Prefer_FSRM PREFERRED_FEATURE_INDEX_1 +#define bit_arch_I586 (1u << 0) +#define bit_arch_I686 (1u << 1) +#define bit_arch_Fast_Rep_String (1u << 2) +#define bit_arch_Fast_Copy_Backward (1u << 3) +#define bit_arch_Fast_Unaligned_Load (1u << 4) +#define bit_arch_Fast_Unaligned_Copy (1u << 5) +#define bit_arch_Slow_BSF (1u << 6) +#define bit_arch_Slow_SSE4_2 (1u << 7) +#define bit_arch_AVX_Fast_Unaligned_Load (1u << 8) +#define bit_arch_Prefer_MAP_32BIT_EXEC (1u << 9) +#define bit_arch_Prefer_PMINUB_for_stringop (1u << 10) +#define bit_arch_Prefer_No_VZEROUPPER (1u << 11) +#define bit_arch_Prefer_ERMS (1u << 12) +#define bit_arch_Prefer_FSRM (1u << 13) +#define bit_arch_Prefer_No_AVX512 (1u << 14) +#define bit_arch_MathVec_Prefer_No_AVX512 (1u << 15) + +#define index_arch_Fast_Rep_String PREFERRED_FEATURE_INDEX_1 +#define index_arch_Fast_Copy_Backward PREFERRED_FEATURE_INDEX_1 +#define index_arch_Slow_BSF PREFERRED_FEATURE_INDEX_1 +#define index_arch_Fast_Unaligned_Load PREFERRED_FEATURE_INDEX_1 +#define index_arch_Prefer_PMINUB_for_stringop PREFERRED_FEATURE_INDEX_1 +#define index_arch_Fast_Unaligned_Copy PREFERRED_FEATURE_INDEX_1 +#define index_arch_I586 PREFERRED_FEATURE_INDEX_1 +#define index_arch_I686 PREFERRED_FEATURE_INDEX_1 +#define index_arch_Slow_SSE4_2 PREFERRED_FEATURE_INDEX_1 +#define index_arch_AVX_Fast_Unaligned_Load PREFERRED_FEATURE_INDEX_1 +#define index_arch_Prefer_MAP_32BIT_EXEC PREFERRED_FEATURE_INDEX_1 +#define index_arch_Prefer_No_VZEROUPPER PREFERRED_FEATURE_INDEX_1 +#define index_arch_Prefer_ERMS PREFERRED_FEATURE_INDEX_1 +#define index_arch_Prefer_No_AVX512 PREFERRED_FEATURE_INDEX_1 +#define index_arch_MathVec_Prefer_No_AVX512 PREFERRED_FEATURE_INDEX_1 +#define index_arch_Prefer_FSRM PREFERRED_FEATURE_INDEX_1 /* XCR0 Feature flags. */ -# define bit_XMM_state (1u << 1) -# define bit_YMM_state (1u << 2) -# define bit_Opmask_state (1u << 5) -# define bit_ZMM0_15_state (1u << 6) -# define bit_ZMM16_31_state (1u << 7) -# define bit_XTILECFG_state (1u << 17) -# define bit_XTILEDATA_state (1u << 18) +#define bit_XMM_state (1u << 1) +#define bit_YMM_state (1u << 2) +#define bit_Opmask_state (1u << 5) +#define bit_ZMM0_15_state (1u << 6) +#define bit_ZMM16_31_state (1u << 7) +#define bit_XTILECFG_state (1u << 17) +#define bit_XTILEDATA_state (1u << 18) struct cpu_features { @@ -153,30 +149,28 @@ struct cpu_features unsigned long int rep_stosb_threshold; }; -# if defined (_LIBC) && !IS_IN (nonlib) +#if defined (_LIBC) && !IS_IN (nonlib) /* Unused for x86. */ -# define INIT_ARCH() -# define __x86_get_cpu_features(max) (&GLRO(dl_x86_cpu_features)) +# define INIT_ARCH() +# define __x86_get_cpu_features(max) (&GLRO(dl_x86_cpu_features)) extern void _dl_x86_init_cpu_features (void) attribute_hidden; -# endif +#endif -# ifdef __x86_64__ -# define HAS_CPUID 1 -# elif (defined __i586__ || defined __pentium__ \ +#ifdef __x86_64__ +# define HAS_CPUID 1 +#elif (defined __i586__ || defined __pentium__ \ || defined __geode__ || defined __k6__) -# define HAS_CPUID 1 -# define HAS_I586 1 -# define HAS_I686 HAS_ARCH_FEATURE (I686) -# elif defined __i486__ -# define HAS_CPUID 0 -# define HAS_I586 HAS_ARCH_FEATURE (I586) -# define HAS_I686 HAS_ARCH_FEATURE (I686) -# else -# define HAS_CPUID 1 -# define HAS_I586 1 -# define HAS_I686 1 +# define HAS_CPUID 1 +# define HAS_I586 1 +# define HAS_I686 HAS_ARCH_FEATURE (I686) +#elif defined __i486__ +# define HAS_CPUID 0 +# define HAS_I586 HAS_ARCH_FEATURE (I586) +# define HAS_I686 HAS_ARCH_FEATURE (I686) +#else +# define HAS_CPUID 1 +# define HAS_I586 1 +# define HAS_I686 1 # endif -#endif /* !_ISOMAC */ - #endif /* include/cpu-features.h */