From f63822fbae7d34ad97c20c97635940a056b4fda1 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Tue, 13 Apr 2010 19:17:10 -0700 Subject: [PATCH] Update x86-64 cpu multiarch selection header. --- ChangeLog.x86 | 5 ++++ sysdeps/x86_64/multiarch/init-arch.h | 38 ++++++++++++++++++--------------- 2 files changed, 26 insertions(+), 17 deletions(-) 2010-04-13 Ulrich Drepper * sysdeps/x86_64/multiarch/init-arch.h: Pretty printing. Add SSE 4.1 macros. diff --git a/sysdeps/x86_64/multiarch/init-arch.h b/sysdeps/x86_64/multiarch/init-arch.h index 69492cb..4c451e9 100644 --- a/sysdeps/x86_64/multiarch/init-arch.h +++ b/sysdeps/x86_64/multiarch/init-arch.h @@ -20,21 +20,23 @@ #ifdef __ASSEMBLER__ -#include +# include -#define bit_SSE2 (1 << 26) -#define bit_SSSE3 (1 << 9) -#define bit_SSE4_2 (1 << 20) +# define bit_SSE2 (1 << 26) +# define bit_SSSE3 (1 << 9) +# define bit_SSE4_1 (1 << 19) +# define bit_SSE4_2 (1 << 20) -#define index_SSE2 COMMON_CPUID_INDEX_1*CPUID_SIZE+CPUID_EDX_OFFSET -#define index_SSSE3 COMMON_CPUID_INDEX_1*CPUID_SIZE+CPUID_ECX_OFFSET -#define index_SSE4_2 COMMON_CPUID_INDEX_1*CPUID_SIZE+CPUID_ECX_OFFSET +# define index_SSE2 COMMON_CPUID_INDEX_1*CPUID_SIZE+CPUID_EDX_OFFSET +# define index_SSSE3 COMMON_CPUID_INDEX_1*CPUID_SIZE+CPUID_ECX_OFFSET +# define index_SSE4_1 COMMON_CPUID_INDEX_1*CPUID_SIZE+CPUID_ECX_OFFSET +# define index_SSE4_2 COMMON_CPUID_INDEX_1*CPUID_SIZE+CPUID_ECX_OFFSET #define index_Fast_Rep_String FEATURE_INDEX_1*FEATURE_SIZE #else /* __ASSEMBLER__ */ -#include +# include enum { @@ -84,20 +86,22 @@ extern void __init_cpu_features (void) attribute_hidden; extern const struct cpu_features *__get_cpu_features (void) __attribute__ ((const)); -#ifndef NOT_IN_libc -# define __get_cpu_features() (&__cpu_features) -#endif +# ifndef NOT_IN_libc +# define __get_cpu_features() (&__cpu_features) +# endif -#define HAS_CPU_FEATURE(idx, reg, bit) \ +# define HAS_CPU_FEATURE(idx, reg, bit) \ ((__get_cpu_features ()->cpuid[idx].reg & (1 << (bit))) != 0) /* Following are the feature tests used throughout libc. */ -#define HAS_SSE2 HAS_CPU_FEATURE (COMMON_CPUID_INDEX_1, edx, 26) -#define HAS_POPCOUNT HAS_CPU_FEATURE (COMMON_CPUID_INDEX_1, ecx, 23) -#define HAS_SSE4_2 HAS_CPU_FEATURE (COMMON_CPUID_INDEX_1, ecx, 20) -#define HAS_FMA HAS_CPU_FEATURE (COMMON_CPUID_INDEX_1, ecx, 12) +# define HAS_SSE2 HAS_CPU_FEATURE (COMMON_CPUID_INDEX_1, edx, 26) +# define HAS_POPCOUNT HAS_CPU_FEATURE (COMMON_CPUID_INDEX_1, ecx, 23) +# define HAS_SSSE3 HAS_CPU_FEATURE (COMMON_CPUID_INDEX_1, ecx, 9) +# define HAS_SSE4_1 HAS_CPU_FEATURE (COMMON_CPUID_INDEX_1, ecx, 19) +# define HAS_SSE4_2 HAS_CPU_FEATURE (COMMON_CPUID_INDEX_1, ecx, 20) +# define HAS_FMA HAS_CPU_FEATURE (COMMON_CPUID_INDEX_1, ecx, 12) -#define index_Fast_Rep_String FEATURE_INDEX_1 +# define index_Fast_Rep_String FEATURE_INDEX_1 #endif /* __ASSEMBLER__ */ -- 1.7.0.5