This is the mail archive of the glibc-cvs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

GNU C Library master sources branch, master, updated. glibc-2.15-1150-g0e4a3cd


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, master has been updated
       via  0e4a3cd70809f9e67813fdbd781573f3081127cb (commit)
       via  6704c645b05b8516915e07ccba4703b2924a9842 (commit)
      from  48495318fa5ae223a8b777ed144bd769d9f6c67f (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=0e4a3cd70809f9e67813fdbd781573f3081127cb

commit 0e4a3cd70809f9e67813fdbd781573f3081127cb
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Mon Jun 4 13:45:43 2012 -0700

    Use i486 bits/string.h for i386 and x86_64

diff --git a/ChangeLog b/ChangeLog
index 87123bf..56f7637 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,10 @@
 2012-06-04  H.J. Lu  <hongjiu.lu@intel.com>
 
 	[BZ #14117]
+	* sysdeps/i386/i486/bits/string.h: Renamed to ...
+	* sysdeps/x86/bits/string.h: This.
+	* sysdeps/x86_64/bits/string.h: Removed.
+
 	* sysdeps/i386/i486/bits/string.h: Define inline functions only
 	if not compiling for x86-64, but compiling for >= i486.
 
diff --git a/sysdeps/i386/i486/bits/string.h b/sysdeps/x86/bits/string.h
similarity index 100%
rename from sysdeps/i386/i486/bits/string.h
rename to sysdeps/x86/bits/string.h
diff --git a/sysdeps/x86_64/bits/string.h b/sysdeps/x86_64/bits/string.h
deleted file mode 100644
index 0ca5fe2..0000000
--- a/sysdeps/x86_64/bits/string.h
+++ /dev/null
@@ -1,25 +0,0 @@
-/* Optimized, inlined string functions.  AMD x86-64 version.
-   Copyright (C) 2001 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#ifndef _STRING_H
-# error "Never use <bits/string.h> directly; include <string.h> instead."
-#endif
-
-/* Currently the only purpose of this file is to tell the generic inline
-   macros that unaligned memory access is possible for x86-64.  */
-#define _STRING_ARCH_unaligned	1

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=6704c645b05b8516915e07ccba4703b2924a9842

commit 6704c645b05b8516915e07ccba4703b2924a9842
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Mon Jun 4 13:44:46 2012 -0700

    Provide 32-bit inline string functions for >= i486

diff --git a/ChangeLog b/ChangeLog
index 24ad1e5..87123bf 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,9 @@
 2012-06-04  H.J. Lu  <hongjiu.lu@intel.com>
 
 	[BZ #14117]
+	* sysdeps/i386/i486/bits/string.h: Define inline functions only
+	if not compiling for x86-64, but compiling for >= i486.
+
 	* sysdeps/unix/sysv/linux/x86_64/bits/sigcontext.h: Renamed to ...
 	* sysdeps/unix/sysv/linux/x86/bits/sigcontext.h: This.
 
diff --git a/sysdeps/i386/i486/bits/string.h b/sysdeps/i386/i486/bits/string.h
index a5edf51..d47a31c 100644
--- a/sysdeps/i386/i486/bits/string.h
+++ b/sysdeps/i386/i486/bits/string.h
@@ -1,6 +1,5 @@
-/* Optimized, inlined string functions.  i486 version.
-   Copyright (C) 1997,1998,1999,2000,2001,2002,2003,2004,2007,2011,2012
-   Free Software Foundation, Inc.
+/* Optimized, inlined string functions.  i486/x86-64 version.
+   Copyright (C) 2001-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -24,25 +23,34 @@
 /* The ix86 processors can access unaligned multi-byte variables.  */
 #define _STRING_ARCH_unaligned	1
 
+/* Enable inline functions only for i486 or bette when compiling for
+   ia32.  */
+#if !defined __x86_64__ && (defined __i486__ || defined __pentium__	      \
+			    || defined __pentiumpro__ || defined __pentium4__ \
+			    || defined __nocona__ || defined __atom__ 	      \
+			    || defined __core2__ || defined __corei7__	      \
+			    || defined __k6__ || defined __geode__	      \
+			    || defined __k8__ || defined __athlon__	      \
+			    || defined __amdfam10__)
 
 /* We only provide optimizations if the user selects them and if
    GNU CC is used.  */
-#if !defined __NO_STRING_INLINES && defined __USE_STRING_INLINES \
+# if !defined __NO_STRING_INLINES && defined __USE_STRING_INLINES \
     && defined __GNUC__ && __GNUC__ >= 2 && !__BOUNDED_POINTERS__
 
-#ifndef __STRING_INLINE
-# ifndef __extern_inline
-#  define __STRING_INLINE inline
-# else
-#  define __STRING_INLINE __extern_inline
+# ifndef __STRING_INLINE
+#  ifndef __extern_inline
+#   define __STRING_INLINE inline
+#  else
+#   define __STRING_INLINE __extern_inline
+#  endif
 # endif
-#endif
 
 /* The macros are used in some of the optimized implementations below.  */
-#define __STRING_SMALL_GET16(src, idx) \
+# define __STRING_SMALL_GET16(src, idx) \
   ((((const unsigned char *) (src))[idx + 1] << 8)			      \
    | ((const unsigned char *) (src))[idx])
-#define __STRING_SMALL_GET32(src, idx) \
+# define __STRING_SMALL_GET32(src, idx) \
   (((((const unsigned char *) (src))[idx + 3] << 8			      \
      | ((const unsigned char *) (src))[idx + 2]) << 8			      \
     | ((const unsigned char *) (src))[idx + 1]) << 8			      \
@@ -50,12 +58,12 @@
 
 
 /* Copy N bytes of SRC to DEST.  */
-#define _HAVE_STRING_ARCH_memcpy 1
-#define memcpy(dest, src, n) \
+# define _HAVE_STRING_ARCH_memcpy 1
+# define memcpy(dest, src, n) \
   (__extension__ (__builtin_constant_p (n)				      \
 		  ? __memcpy_c ((dest), (src), (n))			      \
 		  : __memcpy_g ((dest), (src), (n))))
-#define __memcpy_c(dest, src, n) \
+# define __memcpy_c(dest, src, n) \
   ((n) == 0								      \
    ? (dest)								      \
    : (((n) % 4 == 0)							      \
@@ -139,11 +147,11 @@ __memcpy_g (void *__dest, const void *__src, size_t __n)
   return __dest;
 }
 
-#define _HAVE_STRING_ARCH_memmove 1
-#ifndef _FORCE_INLINES
+# define _HAVE_STRING_ARCH_memmove 1
+# ifndef _FORCE_INLINES
 /* Copy N bytes of SRC to DEST, guaranteeing
    correct behavior for overlapping strings.  */
-#define memmove(dest, src, n) __memmove_g (dest, src, n)
+#  define memmove(dest, src, n) __memmove_g (dest, src, n)
 
 __STRING_INLINE void *__memmove_g (void *, const void *, size_t)
      __asm__ ("memmove");
@@ -173,12 +181,12 @@ __memmove_g (void *__dest, const void *__src, size_t __n)
 	 "m" ( *(struct { __extension__ char __x[__n]; } *)__src));
   return __dest;
 }
-#endif
+# endif
 
 /* Compare N bytes of S1 and S2.  */
-#define _HAVE_STRING_ARCH_memcmp 1
-#ifndef _FORCE_INLINES
-# ifndef __PIC__
+# define _HAVE_STRING_ARCH_memcmp 1
+# ifndef _FORCE_INLINES
+#  ifndef __PIC__
 /* gcc has problems to spill registers when using PIC.  */
 __STRING_INLINE int
 memcmp (const void *__s1, const void *__s2, size_t __n)
@@ -200,13 +208,13 @@ memcmp (const void *__s1, const void *__s2, size_t __n)
      : "cc");
   return __res;
 }
+#  endif
 # endif
-#endif
 
 /* Set N bytes of S to C.  */
-#define _HAVE_STRING_ARCH_memset 1
-#define _USE_STRING_ARCH_memset 1
-#define memset(s, c, n) \
+# define _HAVE_STRING_ARCH_memset 1
+# define _USE_STRING_ARCH_memset 1
+# define memset(s, c, n) \
   (__extension__ (__builtin_constant_p (n) && (n) <= 16			      \
 		  ? ((n) == 1						      \
 		     ? __memset_c1 ((s), (c))				      \
@@ -219,11 +227,11 @@ memcmp (const void *__s1, const void *__s2, size_t __n)
 			? __memset_gcn ((s), (c), (n))			      \
 			: memset ((s), (c), (n))))))
 
-#define __memset_c1(s, c) ({ void *__s = (s);				      \
-			     *((unsigned char *) __s) = (unsigned char) (c);  \
-			     __s; })
+# define __memset_c1(s, c) ({ void *__s = (s);				      \
+			      *((unsigned char *) __s) = (unsigned char) (c); \
+			      __s; })
 
-#define __memset_gc(s, c, n) \
+# define __memset_gc(s, c, n) \
   ({ void *__s = (s);							      \
      union {								      \
        unsigned int __ui;						      \
@@ -300,7 +308,7 @@ memcmp (const void *__s1, const void *__s2, size_t __n)
 									      \
      __s; })
 
-#define __memset_ccn(s, c, n) \
+# define __memset_ccn(s, c, n) \
   (((n) % 4 == 0)							      \
    ? __memset_ccn_by4 (s, ((unsigned int) ((unsigned char) (c))) * 0x01010101,\
 		       n)						      \
@@ -318,7 +326,7 @@ __memset_ccn_by4 (void *__s, unsigned int __c, size_t __n)
 {
   register void *__tmp = __s;
   register unsigned long int __d0;
-#ifdef __i686__
+# ifdef __i686__
   __asm__ __volatile__
     ("cld\n\t"
      "rep; stosl"
@@ -326,7 +334,7 @@ __memset_ccn_by4 (void *__s, unsigned int __c, size_t __n)
        "=m" ( *(struct { __extension__ char __x[__n]; } *)__s)
      : "0" ((unsigned int) __c), "1" (__tmp), "2" (__n / 4)
      : "cc");
-#else
+# else
   __asm__ __volatile__
     ("1:\n\t"
      "movl	%0,(%1)\n\t"
@@ -337,7 +345,7 @@ __memset_ccn_by4 (void *__s, unsigned int __c, size_t __n)
        "=m" ( *(struct { __extension__ char __x[__n]; } *)__s)
      : "0" ((unsigned int) __c), "1" (__tmp), "2" (__n / 4)
      : "cc");
-#endif
+# endif
   return __s;
 }
 
@@ -349,7 +357,7 @@ __memset_ccn_by2 (void *__s, unsigned int __c, size_t __n)
 {
   register unsigned long int __d0, __d1;
   register void *__tmp = __s;
-#ifdef __i686__
+# ifdef __i686__
   __asm__ __volatile__
     ("cld\n\t"
      "rep; stosl\n"
@@ -358,7 +366,7 @@ __memset_ccn_by2 (void *__s, unsigned int __c, size_t __n)
        "=m" ( *(struct { __extension__ char __x[__n]; } *)__s)
      : "0" ((unsigned int) __c), "1" (__tmp), "2" (__n / 4)
      : "cc");
-#else
+# else
   __asm__ __volatile__
     ("1:\tmovl	%0,(%1)\n\t"
      "leal	4(%1),%1\n\t"
@@ -373,7 +381,7 @@ __memset_ccn_by2 (void *__s, unsigned int __c, size_t __n)
   return __s;
 }
 
-#define __memset_gcn(s, c, n) \
+# define __memset_gcn(s, c, n) \
   (((n) % 4 == 0)							      \
    ? __memset_gcn_by4 (s, c, n)						      \
    : (((n) % 2 == 0)							      \
@@ -431,19 +439,19 @@ __memset_gcn_by2 (void *__s, int __c, size_t __n)
 
 
 /* Search N bytes of S for C.  */
-#define _HAVE_STRING_ARCH_memchr 1
-#ifndef _FORCE_INLINES
+# define _HAVE_STRING_ARCH_memchr 1
+# ifndef _FORCE_INLINES
 __STRING_INLINE void *
 memchr (const void *__s, int __c, size_t __n)
 {
   register unsigned long int __d0;
-#ifdef __i686__
+#  ifdef __i686__
   register unsigned long int __d1;
-#endif
+#  endif
   register unsigned char *__res;
   if (__n == 0)
     return NULL;
-#ifdef __i686__
+#  ifdef __i686__
   __asm__ __volatile__
     ("cld\n\t"
      "repne; scasb\n\t"
@@ -452,7 +460,7 @@ memchr (const void *__s, int __c, size_t __n)
      : "a" (__c), "0" (__s), "1" (__n), "2" (1),
        "m" ( *(struct { __extension__ char __x[__n]; } *)__s)
      : "cc");
-#else
+#  else
   __asm__ __volatile__
     ("cld\n\t"
      "repne; scasb\n\t"
@@ -463,26 +471,26 @@ memchr (const void *__s, int __c, size_t __n)
      : "a" (__c), "0" (__s), "1" (__n),
        "m" ( *(struct { __extension__ char __x[__n]; } *)__s)
      : "cc");
-#endif
+#  endif
   return __res - 1;
 }
-#endif
+# endif
 
-#define _HAVE_STRING_ARCH_memrchr 1
-#ifndef _FORCE_INLINES
+# define _HAVE_STRING_ARCH_memrchr 1
+# ifndef _FORCE_INLINES
 __STRING_INLINE void *__memrchr (const void *__s, int __c, size_t __n);
 
 __STRING_INLINE void *
 __memrchr (const void *__s, int __c, size_t __n)
 {
   register unsigned long int __d0;
-# ifdef __i686__
+#  ifdef __i686__
   register unsigned long int __d1;
-# endif
+#  endif
   register void *__res;
   if (__n == 0)
     return NULL;
-# ifdef __i686__
+#  ifdef __i686__
   __asm__ __volatile__
     ("std\n\t"
      "repne; scasb\n\t"
@@ -493,7 +501,7 @@ __memrchr (const void *__s, int __c, size_t __n)
      : "a" (__c), "0" (__s + __n - 1), "1" (__n), "2" (-1),
        "m" ( *(struct { __extension__ char __x[__n]; } *)__s)
      : "cc");
-# else
+#  else
   __asm__ __volatile__
     ("std\n\t"
      "repne; scasb\n\t"
@@ -505,19 +513,19 @@ __memrchr (const void *__s, int __c, size_t __n)
      : "a" (__c), "0" (__s + __n - 1), "1" (__n),
        "m" ( *(struct { __extension__ char __x[__n]; } *)__s)
      : "cc");
-# endif
+#  endif
   return __res;
 }
-# ifdef __USE_GNU
-#  define memrchr(s, c, n) __memrchr ((s), (c), (n))
+#  ifdef __USE_GNU
+#   define memrchr(s, c, n) __memrchr ((s), (c), (n))
+#  endif
 # endif
-#endif
 
 /* Return pointer to C in S.  */
-#define _HAVE_STRING_ARCH_rawmemchr 1
+# define _HAVE_STRING_ARCH_rawmemchr 1
 __STRING_INLINE void *__rawmemchr (const void *__s, int __c);
 
-#ifndef _FORCE_INLINES
+# ifndef _FORCE_INLINES
 __STRING_INLINE void *
 __rawmemchr (const void *__s, int __c)
 {
@@ -532,19 +540,19 @@ __rawmemchr (const void *__s, int __c)
      : "cc");
   return __res - 1;
 }
-# ifdef __USE_GNU
+#  ifdef __USE_GNU
 __STRING_INLINE void *
 rawmemchr (const void *__s, int __c)
 {
   return __rawmemchr (__s, __c);
 }
-# endif	/* use GNU */
-#endif
+#  endif /* use GNU */
+# endif
 
 
 /* Return the length of S.  */
-#define _HAVE_STRING_ARCH_strlen 1
-#define strlen(str) \
+# define _HAVE_STRING_ARCH_strlen 1
+# define strlen(str) \
   (__extension__ (__builtin_constant_p (str)				      \
 		  ? __builtin_strlen (str)				      \
 		  : __strlen_g (str)))
@@ -570,8 +578,8 @@ __strlen_g (const char *__str)
 
 
 /* Copy SRC to DEST.  */
-#define _HAVE_STRING_ARCH_strcpy 1
-#define strcpy(dest, src) \
+# define _HAVE_STRING_ARCH_strcpy 1
+# define strcpy(dest, src) \
   (__extension__ (__builtin_constant_p (src)				      \
 		  ? (sizeof ((src)[0]) == 1 && strlen (src) + 1 <= 8	      \
 		     ? __strcpy_a_small ((dest), (src), strlen (src) + 1)     \
@@ -580,7 +588,7 @@ __strlen_g (const char *__str)
 					strlen (src) + 1))		      \
 		  : __strcpy_g ((dest), (src))))
 
-#define __strcpy_a_small(dest, src, srclen) \
+# define __strcpy_a_small(dest, src, srclen) \
   (__extension__ ({ char *__dest = (dest);				      \
 		    union {						      \
 		      unsigned int __ui;				      \
@@ -654,16 +662,16 @@ __strcpy_g (char *__dest, const char *__src)
 }
 
 
-#ifdef __USE_GNU
-# define _HAVE_STRING_ARCH_stpcpy 1
+# ifdef __USE_GNU
+#  define _HAVE_STRING_ARCH_stpcpy 1
 /* Copy SRC to DEST.  */
-# define __stpcpy(dest, src) \
+#  define __stpcpy(dest, src) \
   (__extension__ (__builtin_constant_p (src)				      \
 		  ? (strlen (src) + 1 <= 8				      \
 		     ? __stpcpy_a_small ((dest), (src), strlen (src) + 1)     \
 		     : __stpcpy_c ((dest), (src), strlen (src) + 1))	      \
 		  : __stpcpy_g ((dest), (src))))
-# define __stpcpy_c(dest, src, srclen) \
+#  define __stpcpy_c(dest, src, srclen) \
   ((srclen) % 4 == 0							      \
    ? __mempcpy_by4 (dest, src, srclen) - 1				      \
    : ((srclen) % 2 == 0							      \
@@ -671,9 +679,9 @@ __strcpy_g (char *__dest, const char *__src)
       : __mempcpy_byn (dest, src, srclen) - 1))
 
 /* In glibc itself we use this symbol for namespace reasons.  */
-# define stpcpy(dest, src) __stpcpy ((dest), (src))
+#  define stpcpy(dest, src) __stpcpy ((dest), (src))
 
-# define __stpcpy_a_small(dest, src, srclen) \
+#  define __stpcpy_a_small(dest, src, srclen) \
   (__extension__ ({ union {						      \
 		      unsigned int __ui;				      \
 		      unsigned short int __usi;				      \
@@ -826,19 +834,19 @@ __stpcpy_g (char *__dest, const char *__src)
      : "cc");
   return __tmp - 1;
 }
-#endif
+# endif
 
 
 /* Copy no more than N characters of SRC to DEST.  */
-#define _HAVE_STRING_ARCH_strncpy 1
-#define strncpy(dest, src, n) \
+# define _HAVE_STRING_ARCH_strncpy 1
+# define strncpy(dest, src, n) \
   (__extension__ (__builtin_constant_p (src)				      \
 		  ? ((strlen (src) + 1 >= ((size_t) (n))		      \
 		      ? (char *) memcpy ((char *) (dest),		      \
 					 (const char *) (src), n)	      \
 		      : __strncpy_cg ((dest), (src), strlen (src) + 1, n)))   \
 		  : __strncpy_gg ((dest), (src), n)))
-#define __strncpy_cg(dest, src, srclen, n) \
+# define __strncpy_cg(dest, src, srclen, n) \
   (((srclen) % 4 == 0)							      \
    ? __strncpy_by4 (dest, src, srclen, n)				      \
    : (((srclen) % 2 == 0)						      \
@@ -962,8 +970,8 @@ __strncpy_gg (char *__dest, const char *__src, size_t __n)
 
 
 /* Append SRC onto DEST.  */
-#define _HAVE_STRING_ARCH_strcat 1
-#define strcat(dest, src) \
+# define _HAVE_STRING_ARCH_strcat 1
+# define strcat(dest, src) \
   (__extension__ (__builtin_constant_p (src)				      \
 		  ? __strcat_c ((dest), (src), strlen (src) + 1)	      \
 		  : __strcat_g ((dest), (src))))
@@ -974,7 +982,7 @@ __STRING_INLINE char *__strcat_c (char *__dest, const char __src[],
 __STRING_INLINE char *
 __strcat_c (char *__dest, const char __src[], size_t __srclen)
 {
-#ifdef __i686__
+# ifdef __i686__
   register unsigned long int __d0;
   register char *__tmp;
   __asm__ __volatile__
@@ -985,7 +993,7 @@ __strcat_c (char *__dest, const char __src[], size_t __srclen)
        "m" ( *(struct { __extension__ char __x[__srclen]; } *)__src)
      : "cc");
   --__tmp;
-#else
+# else
   register char *__tmp = __dest - 1;
   __asm__ __volatile__
     ("1:\n\t"
@@ -997,7 +1005,7 @@ __strcat_c (char *__dest, const char __src[], size_t __srclen)
      : "0" (__tmp),
        "m" ( *(struct { __extension__ char __x[__srclen]; } *)__src)
      : "cc");
-#endif
+# endif
   (void) memcpy (__tmp, __src, __srclen);
   return __dest;
 }
@@ -1031,8 +1039,8 @@ __strcat_g (char *__dest, const char *__src)
 
 
 /* Append no more than N characters from SRC onto DEST.  */
-#define _HAVE_STRING_ARCH_strncat 1
-#define strncat(dest, src, n) \
+# define _HAVE_STRING_ARCH_strncat 1
+# define strncat(dest, src, n) \
   (__extension__ ({ char *__dest = (dest);				      \
 		    __builtin_constant_p (src) && __builtin_constant_p (n)    \
 		    ? (strlen (src) < ((size_t) (n))			      \
@@ -1050,7 +1058,7 @@ __strncat_g (char *__dest, const char __src[], size_t __n)
 {
   register char *__tmp = __dest;
   register char __dummy;
-#ifdef __i686__
+# ifdef __i686__
   __asm__ __volatile__
     ("repne; scasb\n"
      "movl %4, %3\n\t"
@@ -1068,7 +1076,7 @@ __strncat_g (char *__dest, const char __src[], size_t __n)
      : "=&a" (__dummy), "=&D" (__tmp), "=&S" (__src), "=&c" (__n)
      :  "g" (__n), "0" (0), "1" (__tmp), "2" (__src), "3" (0xffffffff)
      : "memory", "cc");
-#else
+# else
   --__tmp;
   __asm__ __volatile__
     ("1:\n\t"
@@ -1096,8 +1104,8 @@ __strncat_g (char *__dest, const char __src[], size_t __n)
 
 
 /* Compare S1 and S2.  */
-#define _HAVE_STRING_ARCH_strcmp 1
-#define strcmp(s1, s2) \
+# define _HAVE_STRING_ARCH_strcmp 1
+# define strcmp(s1, s2) \
   (__extension__ (__builtin_constant_p (s1) && __builtin_constant_p (s2)      \
 		  && (sizeof ((s1)[0]) != 1 || strlen (s1) >= 4)	      \
 		  && (sizeof ((s2)[0]) != 1 || strlen (s2) >= 4)	      \
@@ -1124,7 +1132,7 @@ __strncat_g (char *__dest, const char __src[], size_t __n)
 					  strlen (s2)))			      \
 			: __strcmp_gg ((s1), (s2))))))
 
-#define __strcmp_cc(s1, s2, l) \
+# define __strcmp_cc(s1, s2, l) \
   (__extension__ ({ register int __result = (s1)[0] - (s2)[0];		      \
 		    if (l > 0 && __result == 0)				      \
 		      {							      \
@@ -1138,7 +1146,7 @@ __strncat_g (char *__dest, const char __src[], size_t __n)
 		      }							      \
 		    __result; }))
 
-#define __strcmp_cg(s1, s2, l1) \
+# define __strcmp_cg(s1, s2, l1) \
   (__extension__ ({ const unsigned char *__s2 = (s2);			      \
 		    register int __result = (s1)[0] - __s2[0];		      \
 		    if (l1 > 0 && __result == 0)			      \
@@ -1153,7 +1161,7 @@ __strncat_g (char *__dest, const char __src[], size_t __n)
 		      }							      \
 		    __result; }))
 
-#define __strcmp_gc(s1, s2, l2) \
+# define __strcmp_gc(s1, s2, l2) \
   (__extension__ ({ const unsigned char *__s1 = (s1);			      \
 		    register int __result = __s1[0] - (s2)[0];		      \
 		    if (l2 > 0 && __result == 0)			      \
@@ -1200,8 +1208,8 @@ __strcmp_gg (const char *__s1, const char *__s2)
 
 
 /* Compare N characters of S1 and S2.  */
-#define _HAVE_STRING_ARCH_strncmp 1
-#define strncmp(s1, s2, n) \
+# define _HAVE_STRING_ARCH_strncmp 1
+# define strncmp(s1, s2, n) \
   (__extension__ (__builtin_constant_p (s1) && strlen (s1) < ((size_t) (n))   \
 		  ? strcmp ((s1), (s2))					      \
 		  : (__builtin_constant_p (s2) && strlen (s2) < ((size_t) (n))\
@@ -1244,9 +1252,9 @@ __strncmp_g (const char *__s1, const char *__s2, size_t __n)
 
 
 /* Find the first occurrence of C in S.  */
-#define _HAVE_STRING_ARCH_strchr 1
-#define _USE_STRING_ARCH_strchr 1
-#define strchr(s, c) \
+# define _HAVE_STRING_ARCH_strchr 1
+# define _USE_STRING_ARCH_strchr 1
+# define strchr(s, c) \
   (__extension__ (__builtin_constant_p (c)				      \
 		  ? ((c) == '\0'					      \
 		     ? (char *) __rawmemchr ((s), (c))			      \
@@ -1304,8 +1312,8 @@ __strchr_g (const char *__s, int __c)
 
 
 /* Find the first occurrence of C in S or the final NUL byte.  */
-#define _HAVE_STRING_ARCH_strchrnul 1
-#define __strchrnul(s, c) \
+# define _HAVE_STRING_ARCH_strchrnul 1
+# define __strchrnul(s, c) \
   (__extension__ (__builtin_constant_p (c)				      \
 		  ? ((c) == '\0'					      \
 		     ? (char *) __rawmemchr ((s), c)			      \
@@ -1360,29 +1368,29 @@ __strchrnul_g (const char *__s, int __c)
      : "cc");
   return __res;
 }
-#ifdef __USE_GNU
-# define strchrnul(s, c) __strchrnul ((s), (c))
-#endif
+# ifdef __USE_GNU
+#  define strchrnul(s, c) __strchrnul ((s), (c))
+# endif
 
 
-#if defined __USE_BSD || defined __USE_XOPEN_EXTENDED
+# if defined __USE_BSD || defined __USE_XOPEN_EXTENDED
 /* Find the first occurrence of C in S.  This is the BSD name.  */
-# define _HAVE_STRING_ARCH_index 1
-# define index(s, c) \
+#  define _HAVE_STRING_ARCH_index 1
+#  define index(s, c) \
   (__extension__ (__builtin_constant_p (c)				      \
 		  ? __strchr_c ((s), ((c) & 0xff) << 8)			      \
 		  : __strchr_g ((s), (c))))
-#endif
+# endif
 
 
 /* Find the last occurrence of C in S.  */
-#define _HAVE_STRING_ARCH_strrchr 1
-#define strrchr(s, c) \
+# define _HAVE_STRING_ARCH_strrchr 1
+# define strrchr(s, c) \
   (__extension__ (__builtin_constant_p (c)				      \
 		  ? __strrchr_c ((s), ((c) & 0xff) << 8)		      \
 		  : __strrchr_g ((s), (c))))
 
-#ifdef __i686__
+# ifdef __i686__
 __STRING_INLINE char *__strrchr_c (const char *__s, int __c);
 
 __STRING_INLINE char *
@@ -1427,7 +1435,7 @@ __strrchr_g (const char *__s, int __c)
      : "cc");
   return __res - 1;
 }
-#else
+# else
 __STRING_INLINE char *__strrchr_c (const char *__s, int __c);
 
 __STRING_INLINE char *
@@ -1476,23 +1484,23 @@ __strrchr_g (const char *__s, int __c)
      : "cc");
   return __res;
 }
-#endif
+# endif
 
 
-#if defined __USE_BSD || defined __USE_XOPEN_EXTENDED
+# if defined __USE_BSD || defined __USE_XOPEN_EXTENDED
 /* Find the last occurrence of C in S.  This is the BSD name.  */
-# define _HAVE_STRING_ARCH_rindex 1
-# define rindex(s, c) \
+#  define _HAVE_STRING_ARCH_rindex 1
+#  define rindex(s, c) \
   (__extension__ (__builtin_constant_p (c)				      \
 		  ? __strrchr_c ((s), ((c) & 0xff) << 8)		      \
 		  : __strrchr_g ((s), (c))))
-#endif
+# endif
 
 
 /* Return the length of the initial segment of S which
    consists entirely of characters not in REJECT.  */
-#define _HAVE_STRING_ARCH_strcspn 1
-#define strcspn(s, reject) \
+# define _HAVE_STRING_ARCH_strcspn 1
+# define strcspn(s, reject) \
   (__extension__ (__builtin_constant_p (reject) && sizeof ((reject)[0]) == 1  \
 		  ? ((reject)[0] == '\0'				      \
 		     ? strlen (s)					      \
@@ -1503,7 +1511,7 @@ __strrchr_g (const char *__s, int __c)
 
 __STRING_INLINE size_t __strcspn_c1 (const char *__s, int __reject);
 
-#ifndef _FORCE_INLINES
+# ifndef _FORCE_INLINES
 __STRING_INLINE size_t
 __strcspn_c1 (const char *__s, int __reject)
 {
@@ -1524,7 +1532,7 @@ __strcspn_c1 (const char *__s, int __reject)
      : "cc");
   return (__res - 1) - __s;
 }
-#endif
+# endif
 
 __STRING_INLINE size_t __strcspn_cg (const char *__s, const char __reject[],
 				     size_t __reject_len);
@@ -1552,7 +1560,7 @@ __strcspn_cg (const char *__s, const char __reject[], size_t __reject_len)
 }
 
 __STRING_INLINE size_t __strcspn_g (const char *__s, const char *__reject);
-#ifdef __PIC__
+# ifdef __PIC__
 
 __STRING_INLINE size_t
 __strcspn_g (const char *__s, const char *__reject)
@@ -1581,7 +1589,7 @@ __strcspn_g (const char *__s, const char *__reject)
      : "memory", "cc");
   return (__res - 1) - __s;
 }
-#else
+# else
 __STRING_INLINE size_t
 __strcspn_g (const char *__s, const char *__reject)
 {
@@ -1607,13 +1615,13 @@ __strcspn_g (const char *__s, const char *__reject)
      : "memory", "cc");
   return (__res - 1) - __s;
 }
-#endif
+# endif
 
 
 /* Return the length of the initial segment of S which
    consists entirely of characters in ACCEPT.  */
-#define _HAVE_STRING_ARCH_strspn 1
-#define strspn(s, accept) \
+# define _HAVE_STRING_ARCH_strspn 1
+# define strspn(s, accept) \
   (__extension__ (__builtin_constant_p (accept) && sizeof ((accept)[0]) == 1  \
 		  ? ((accept)[0] == '\0'				      \
 		     ? ((void) (s), 0)					      \
@@ -1622,7 +1630,7 @@ __strcspn_g (const char *__s, const char *__reject)
 			: __strspn_cg ((s), (accept), strlen (accept))))      \
 		  : __strspn_g ((s), (accept))))
 
-#ifndef _FORCE_INLINES
+# ifndef _FORCE_INLINES
 __STRING_INLINE size_t __strspn_c1 (const char *__s, int __accept);
 
 __STRING_INLINE size_t
@@ -1643,7 +1651,7 @@ __strspn_c1 (const char *__s, int __accept)
      : "cc");
   return (__res - 1) - __s;
 }
-#endif
+# endif
 
 __STRING_INLINE size_t __strspn_cg (const char *__s, const char __accept[],
 				    size_t __accept_len);
@@ -1675,7 +1683,7 @@ __strspn_cg (const char *__s, const char __accept[], size_t __accept_len)
 }
 
 __STRING_INLINE size_t __strspn_g (const char *__s, const char *__accept);
-#ifdef __PIC__
+# ifdef __PIC__
 
 __STRING_INLINE size_t
 __strspn_g (const char *__s, const char *__accept)
@@ -1703,7 +1711,7 @@ __strspn_g (const char *__s, const char *__accept)
      : "memory", "cc");
   return (__res - 1) - __s;
 }
-#else
+# else
 __STRING_INLINE size_t
 __strspn_g (const char *__s, const char *__accept)
 {
@@ -1728,12 +1736,12 @@ __strspn_g (const char *__s, const char *__accept)
      : "memory", "cc");
   return (__res - 1) - __s;
 }
-#endif
+# endif
 
 
 /* Find the first occurrence in S of any character in ACCEPT.  */
-#define _HAVE_STRING_ARCH_strpbrk 1
-#define strpbrk(s, accept) \
+# define _HAVE_STRING_ARCH_strpbrk 1
+# define strpbrk(s, accept) \
   (__extension__ (__builtin_constant_p (accept) && sizeof ((accept)[0]) == 1  \
 		  ? ((accept)[0] == '\0'				      \
 		     ? ((void) (s), (char *) 0)				      \
@@ -1772,7 +1780,7 @@ __strpbrk_cg (const char *__s, const char __accept[], size_t __accept_len)
 }
 
 __STRING_INLINE char *__strpbrk_g (const char *__s, const char *__accept);
-#ifdef __PIC__
+# ifdef __PIC__
 
 __STRING_INLINE char *
 __strpbrk_g (const char *__s, const char *__accept)
@@ -1805,7 +1813,7 @@ __strpbrk_g (const char *__s, const char *__accept)
      : "memory", "cc");
   return __res;
 }
-#else
+# else
 __STRING_INLINE char *
 __strpbrk_g (const char *__s, const char *__accept)
 {
@@ -1835,12 +1843,12 @@ __strpbrk_g (const char *__s, const char *__accept)
      : "memory", "cc");
   return __res;
 }
-#endif
+# endif
 
 
 /* Find the first occurrence of NEEDLE in HAYSTACK.  */
-#define _HAVE_STRING_ARCH_strstr 1
-#define strstr(haystack, needle) \
+# define _HAVE_STRING_ARCH_strstr 1
+# define strstr(haystack, needle) \
   (__extension__ (__builtin_constant_p (needle) && sizeof ((needle)[0]) == 1  \
 		  ? ((needle)[0] == '\0'				      \
 		     ? (haystack)					      \
@@ -1883,7 +1891,7 @@ __strstr_cg (const char *__haystack, const char __needle[],
 
 __STRING_INLINE char *__strstr_g (const char *__haystack,
 				  const char *__needle);
-#ifdef __PIC__
+# ifdef __PIC__
 
 __STRING_INLINE char *
 __strstr_g (const char *__haystack, const char *__needle)
@@ -1915,7 +1923,7 @@ __strstr_g (const char *__haystack, const char *__needle)
      : "memory", "cc");
   return __res;
 }
-#else
+# else
 __STRING_INLINE char *
 __strstr_g (const char *__haystack, const char *__needle)
 {
@@ -1944,32 +1952,34 @@ __strstr_g (const char *__haystack, const char *__needle)
      : "memory", "cc");
   return __res;
 }
-#endif
+# endif
 
 
 /* Bit find functions.  We define only the i686 version since for the other
    processors gcc generates good code.  */
-#if defined __USE_BSD || defined __USE_XOPEN_EXTENDED
-# ifdef __i686__
-#  define _HAVE_STRING_ARCH_ffs 1
-#  define ffs(word) (__builtin_constant_p (word)			      \
-		     ? __builtin_ffs (word)				      \
-		     : ({ int __cnt, __tmp;				      \
-			  __asm__ __volatile__				      \
-			    ("bsfl %2,%0\n\t"				      \
-			     "cmovel %1,%0"				      \
-			     : "=&r" (__cnt), "=r" (__tmp)		      \
-			     : "rm" (word), "1" (-1));			      \
-			  __cnt + 1; }))
-
-#  ifndef ffsl
-#   define ffsl(word) ffs(word)
-#  endif
-# endif	/* i686 */
-#endif	/* BSD || X/Open */
+# if defined __USE_BSD || defined __USE_XOPEN_EXTENDED
+#  ifdef __i686__
+#   define _HAVE_STRING_ARCH_ffs 1
+#   define ffs(word) (__builtin_constant_p (word)			      \
+		      ? __builtin_ffs (word)				      \
+		      : ({ int __cnt, __tmp;				      \
+			   __asm__ __volatile__				      \
+			     ("bsfl %2,%0\n\t"				      \
+			      "cmovel %1,%0"				      \
+			      : "=&r" (__cnt), "=r" (__tmp)		      \
+			      : "rm" (word), "1" (-1));			      \
+			   __cnt + 1; }))
+
+#   ifndef ffsl
+#    define ffsl(word) ffs(word)
+#   endif
+#  endif /* i686 */
+# endif	/* BSD || X/Open */
+
+# ifndef _FORCE_INLINES
+#  undef __STRING_INLINE
+# endif
 
-#ifndef _FORCE_INLINES
-# undef __STRING_INLINE
-#endif
+# endif	/* use string inlines && GNU CC */
 
-#endif	/* use string inlines && GNU CC */
+#endif

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog                                |    7 +
 sysdeps/{i386/i486 => x86}/bits/string.h |  326 +++++++++++++++---------------
 sysdeps/x86_64/bits/string.h             |   25 ---
 3 files changed, 175 insertions(+), 183 deletions(-)
 rename sysdeps/{i386/i486 => x86}/bits/string.h (92%)
 delete mode 100644 sysdeps/x86_64/bits/string.h


hooks/post-receive
-- 
GNU C Library master sources


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]