Skip to content

Commit

Permalink
Define bit_SSE2 and index_SSE2.
Browse files Browse the repository at this point in the history
  • Loading branch information
H.J. Lu authored and Ulrich Drepper committed Dec 13, 2009
1 parent 23b8575 commit 2510d01
Show file tree
Hide file tree
Showing 5 changed files with 20 additions and 8 deletions.
10 changes: 10 additions & 0 deletions ChangeLog
Original file line number Diff line number Diff line change
@@ -1,3 +1,13 @@
2009-12-13 H.J. Lu <hongjiu.lu@intel.com>

* sysdeps/i386/i686/multiarch/strcspn.S Include <init-arch.h>
instead of <ifunc-defines.h>. Use bit_XXX and index_XXX to
check processor feature.
* sysdeps/i386/i686/multiarch/strlen.S: Likewise.
* sysdeps/i386/i686/multiarch/strspn.S: Likewise.
* sysdeps/x86_64/multiarch/init-arch.h (bit_SSE2): New definition.
(index_SSE2): Likewise.

2009-12-09 H.J. Lu <hongjiu.lu@intel.com>

* sysdeps/x86_64/multiarch/init-arch.h: Include <ifunc-defines.h>
Expand Down
6 changes: 3 additions & 3 deletions sysdeps/i386/i686/multiarch/strcspn.S
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
#ifdef HAVE_SSE4_SUPPORT

#include <sysdep.h>
#include <ifunc-defines.h>
#include <init-arch.h>

#ifdef USE_AS_STRPBRK
#define STRCSPN_SSE42 __strpbrk_sse42
Expand Down Expand Up @@ -64,7 +64,7 @@ ENTRY(STRCSPN)
jne 1f
call __init_cpu_features
1: leal STRCSPN_IA32@GOTOFF(%ebx), %eax
testl $(1<<20), CPUID_OFFSET+COMMON_CPUID_INDEX_1*CPUID_SIZE+CPUID_ECX_OFFSET+__cpu_features@GOTOFF(%ebx)
testl $bit_SSE4_2, CPUID_OFFSET+index_SSE4_2+__cpu_features@GOTOFF(%ebx)
jz 2f
leal STRCSPN_SSE42@GOTOFF(%ebx), %eax
2: popl %ebx
Expand All @@ -80,7 +80,7 @@ ENTRY(STRCSPN)
jne 1f
call __init_cpu_features
1: leal STRCSPN_IA32, %eax
testl $(1<<20), CPUID_OFFSET+COMMON_CPUID_INDEX_1*CPUID_SIZE+CPUID_ECX_OFFSET+__cpu_features
testl $bit_SSE4_2, CPUID_OFFSET+index_SSE4_2+__cpu_features
jz 2f
leal STRCSPN_SSE42, %eax
2: ret
Expand Down
4 changes: 2 additions & 2 deletions sysdeps/i386/i686/multiarch/strlen.S
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
02111-1307 USA. */

#include <sysdep.h>
#include <ifunc-defines.h>
#include <init-arch.h>

/* Define multiple versions only for the definition in libc and for the
DSO. In static binaries, we need strlen before the initialization
Expand All @@ -46,7 +46,7 @@ ENTRY(strlen)
jne 1f
call __init_cpu_features
1: leal __strlen_ia32@GOTOFF(%ebx), %eax
testl $(1<<26), CPUID_OFFSET+COMMON_CPUID_INDEX_1*CPUID_SIZE+CPUID_EDX_OFFSET+__cpu_features@GOTOFF(%ebx)
testl $bit_SSE2, CPUID_OFFSET+index_SSE2+__cpu_features@GOTOFF(%ebx)
jz 2f
leal __strlen_sse2@GOTOFF(%ebx), %eax
2: popl %ebx
Expand Down
6 changes: 3 additions & 3 deletions sysdeps/i386/i686/multiarch/strspn.S
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
#ifdef HAVE_SSE4_SUPPORT

#include <sysdep.h>
#include <ifunc-defines.h>
#include <init-arch.h>

/* Define multiple versions only for the definition in libc. */
#ifndef NOT_IN_libc
Expand All @@ -49,7 +49,7 @@ ENTRY(strspn)
jne 1f
call __init_cpu_features
1: leal __strspn_ia32@GOTOFF(%ebx), %eax
testl $(1<<20), CPUID_OFFSET+COMMON_CPUID_INDEX_1*CPUID_SIZE+CPUID_ECX_OFFSET+__cpu_features@GOTOFF(%ebx)
testl $bit_SSE4_2, CPUID_OFFSET+index_SSE4_2+__cpu_features@GOTOFF(%ebx)
jz 2f
leal __strspn_sse42@GOTOFF(%ebx), %eax
2: popl %ebx
Expand All @@ -65,7 +65,7 @@ ENTRY(strspn)
jne 1f
call __init_cpu_features
1: leal __strspn_ia32, %eax
testl $(1<<20), CPUID_OFFSET+COMMON_CPUID_INDEX_1*CPUID_SIZE+CPUID_ECX_OFFSET+__cpu_features
testl $index_SSE2, CPUID_OFFSET+index_SSE4_2+__cpu_features
jz 2f
leal __strspn_sse42, %eax
2: ret
Expand Down
2 changes: 2 additions & 0 deletions sysdeps/x86_64/multiarch/init-arch.h
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,11 @@

#include <ifunc-defines.h>

#define bit_SSE2 (1 << 26)
#define bit_SSSE3 (1 << 9)
#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

Expand Down

0 comments on commit 2510d01

Please sign in to comment.