From bbbdd7780916358c65e8bc98c989126a7db2f43e Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Tue, 13 Apr 2010 19:17:10 -0700 Subject: Update x86-64 cpu multiarch selection header. --- ChangeLog | 5 +++++ sysdeps/x86_64/multiarch/init-arch.h | 38 ++++++++++++++++++++---------------- 2 files changed, 26 insertions(+), 17 deletions(-) diff --git a/ChangeLog b/ChangeLog index 448eeec991..44debe81a8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2010-04-13 Ulrich Drepper + + * sysdeps/x86_64/multiarch/init-arch.h: Pretty printing. + Add SSE 4.1 macros. + 2010-04-10 Matt Fleming * elf/elf.h: Add SH specific ELF header flags. diff --git a/sysdeps/x86_64/multiarch/init-arch.h b/sysdeps/x86_64/multiarch/init-arch.h index 5c73813404..b2f2de3796 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__ */ -- cgit v1.2.3