[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[commits] r12518 - in /fsf/trunk/libc: ChangeLog bits/select.h sysdeps/i386/bits/select.h sysdeps/x86_64/bits/select.h



Author: eglibc
Date: Mon Jan 10 00:03:37 2011
New Revision: 12518

Log:
Import glibc-mainline for 2011-01-10

Modified:
    fsf/trunk/libc/ChangeLog
    fsf/trunk/libc/bits/select.h
    fsf/trunk/libc/sysdeps/i386/bits/select.h
    fsf/trunk/libc/sysdeps/x86_64/bits/select.h

Modified: fsf/trunk/libc/ChangeLog
==============================================================================
--- fsf/trunk/libc/ChangeLog (original)
+++ fsf/trunk/libc/ChangeLog Mon Jan 10 00:03:37 2011
@@ -1,3 +1,12 @@
+2011-01-09  Ulrich Drepper  <drepper@xxxxxxxxx>
+
+	* sysdeps/i386/bits/select.h: Don't use asm code for __FD_SET,
+	__FD_CLR, and __FS_ISSET.  gcc generates better code on its own.
+
+	* sysdeps/x86_64/bits/select.h: Mark value of __FD_SET and __FD_CLR as
+	void.
+	* bits/select.h: Likewise.
+
 2011-01-08  Ulrich Drepper  <drepper@xxxxxxxxx>
 
 	* po/ja.po: Update from translation team.

Modified: fsf/trunk/libc/bits/select.h
==============================================================================
--- fsf/trunk/libc/bits/select.h (original)
+++ fsf/trunk/libc/bits/select.h Mon Jan 10 00:03:37 2011
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997, 1998, 2001 Free Software Foundation, Inc.
+/* Copyright (C) 1997, 1998, 2001, 2011 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
@@ -30,6 +30,8 @@
     for (__i = 0; __i < sizeof (fd_set) / sizeof (__fd_mask); ++__i)	      \
       __FDS_BITS (__arr)[__i] = 0;					      \
   } while (0)
-#define __FD_SET(d, s)     (__FDS_BITS (s)[__FDELT(d)] |= __FDMASK(d))
-#define __FD_CLR(d, s)     (__FDS_BITS (s)[__FDELT(d)] &= ~__FDMASK(d))
-#define __FD_ISSET(d, s)   ((__FDS_BITS (s)[__FDELT(d)] & __FDMASK(d)) != 0)
+#define __FD_SET(d, s) \
+  ((void) (__FDS_BITS (s)[__FDELT(d)] |= __FDMASK(d)))
+#define __FD_CLR(d, s) \
+  ((void) (__FDS_BITS (s)[__FDELT(d)] &= ~__FDMASK(d)))
+#define __FD_ISSET(d, s)   ((__FDS_BITS (s)[__FDELT (d)] & __FDMASK (d)) != 0)

Modified: fsf/trunk/libc/sysdeps/i386/bits/select.h
==============================================================================
--- fsf/trunk/libc/sysdeps/i386/bits/select.h (original)
+++ fsf/trunk/libc/sysdeps/i386/bits/select.h Mon Jan 10 00:03:37 2011
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997, 1998, 1999, 2001 Free Software Foundation, Inc.
+/* Copyright (C) 1997, 1998, 1999, 2001, 2011 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
@@ -22,7 +22,6 @@
 
 
 #if defined __GNUC__ && __GNUC__ >= 2
-
 # define __FD_ZERO(fdsp) \
   do {									      \
     int __d0, __d1;							      \
@@ -33,26 +32,6 @@
 			    "1" (&__FDS_BITS (fdsp)[0])			      \
 			  : "memory");					      \
   } while (0)
-
-# define __FD_SET(fd, fdsp) \
-  __asm__ __volatile__ ("btsl %1,%0"					      \
-			: "=m" (__FDS_BITS (fdsp)[__FDELT (fd)])	      \
-			: "r" (((int) (fd)) % __NFDBITS)		      \
-			: "cc","memory")
-# define __FD_CLR(fd, fdsp) \
-  __asm__ __volatile__ ("btrl %1,%0"					      \
-			: "=m" (__FDS_BITS (fdsp)[__FDELT (fd)])	      \
-			: "r" (((int) (fd)) % __NFDBITS)		      \
-			: "cc","memory")
-# define __FD_ISSET(fd, fdsp) \
-  (__extension__							      \
-   ({register char __result;						      \
-     __asm__ __volatile__ ("btl %1,%2 ; setcb %b0"			      \
-			   : "=q" (__result)				      \
-			   : "r" (((int) (fd)) % __NFDBITS),		      \
-			     "m" (__FDS_BITS (fdsp)[__FDELT (fd)])	      \
-			   : "cc");					      \
-     __result; }))
 
 #else	/* ! GNU CC */
 
@@ -65,8 +44,12 @@
     for (__i = 0; __i < sizeof (fd_set) / sizeof (__fd_mask); ++__i)	      \
       __FDS_BITS (__arr)[__i] = 0;					      \
   } while (0)
-# define __FD_SET(d, set)    (__FDS_BITS (set)[__FDELT (d)] |= __FDMASK (d))
-# define __FD_CLR(d, set)    (__FDS_BITS (set)[__FDELT (d)] &= ~__FDMASK (d))
-# define __FD_ISSET(d, set)  (__FDS_BITS (set)[__FDELT (d)] & __FDMASK (d))
 
 #endif	/* GNU CC */
+
+#define __FD_SET(d, set) \
+  ((void) (__FDS_BITS (set)[__FDELT (d)] |= __FDMASK (d)))
+#define __FD_CLR(d, set) \
+  ((void) (__FDS_BITS (set)[__FDELT (d)] &= ~__FDMASK (d)))
+#define __FD_ISSET(d, set) \
+  ((__FDS_BITS (set)[__FDELT (d)] & __FDMASK (d)) != 0)

Modified: fsf/trunk/libc/sysdeps/x86_64/bits/select.h
==============================================================================
--- fsf/trunk/libc/sysdeps/x86_64/bits/select.h (original)
+++ fsf/trunk/libc/sysdeps/x86_64/bits/select.h Mon Jan 10 00:03:37 2011
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997,1998,1999,2001,2008,2009 Free Software Foundation, Inc.
+/* Copyright (C) 1997-1999,2001,2008,2009,2011 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
@@ -56,7 +56,9 @@
 
 #endif	/* GNU CC */
 
-#define __FD_SET(d, set)    (__FDS_BITS (set)[__FDELT (d)] |= __FDMASK (d))
-#define __FD_CLR(d, set)    (__FDS_BITS (set)[__FDELT (d)] &= ~__FDMASK (d))
+#define __FD_SET(d, set) \
+  ((void) (__FDS_BITS (set)[__FDELT (d)] |= __FDMASK (d)))
+#define __FD_CLR(d, set) \
+  ((void) (__FDS_BITS (set)[__FDELT (d)] &= ~__FDMASK (d)))
 #define __FD_ISSET(d, set) \
   ((__FDS_BITS (set)[__FDELT (d)] & __FDMASK (d)) != 0)