aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2010-04-13 19:17:10 -0700
committerUlrich Drepper <drepper@redhat.com>2010-04-13 19:17:10 -0700
commitbbbdd7780916358c65e8bc98c989126a7db2f43e (patch)
treeb382c00e9ad092f3a7b511588b2ba55f3b2c861e
parent3d1020f0cc2adc408211ef163e71184e6084192b (diff)
downloadglibc-bbbdd7780916358c65e8bc98c989126a7db2f43e.tar
glibc-bbbdd7780916358c65e8bc98c989126a7db2f43e.tar.gz
glibc-bbbdd7780916358c65e8bc98c989126a7db2f43e.tar.bz2
glibc-bbbdd7780916358c65e8bc98c989126a7db2f43e.zip
Update x86-64 cpu multiarch selection header.
-rw-r--r--ChangeLog5
-rw-r--r--sysdeps/x86_64/multiarch/init-arch.h38
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 <drepper@redhat.com>
+
+ * sysdeps/x86_64/multiarch/init-arch.h: Pretty printing.
+ Add SSE 4.1 macros.
+
2010-04-10 Matt Fleming <matt@console-pimps.org>
* 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 <ifunc-defines.h>
+# include <ifunc-defines.h>
-#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 <sys/param.h>
+# include <sys/param.h>
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__ */