aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@gmail.com>2011-01-09 16:49:17 -0500
committerUlrich Drepper <drepper@gmail.com>2011-01-09 16:49:17 -0500
commitf257bbd77dfcfdf9fa305e220b295e4ad57f405d (patch)
tree37d451738cd8feb3fdda5945149822015f282bd5
parentfa9c15cb83a256da27f8ab99207b752e598c4937 (diff)
downloadglibc-f257bbd77dfcfdf9fa305e220b295e4ad57f405d.tar
glibc-f257bbd77dfcfdf9fa305e220b295e4ad57f405d.tar.gz
glibc-f257bbd77dfcfdf9fa305e220b295e4ad57f405d.tar.bz2
glibc-f257bbd77dfcfdf9fa305e220b295e4ad57f405d.zip
Clean up some bits/select.h headers.
-rw-r--r--ChangeLog9
-rw-r--r--bits/select.h10
-rw-r--r--sysdeps/i386/bits/select.h33
-rw-r--r--sysdeps/x86_64/bits/select.h8
4 files changed, 28 insertions, 32 deletions
diff --git a/ChangeLog b/ChangeLog
index 1ce25541e6..0d735765cc 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2011-01-09 Ulrich Drepper <drepper@gmail.com>
+
+ * 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@gmail.com>
* po/ja.po: Update from translation team.
diff --git a/bits/select.h b/bits/select.h
index 47e7dedc30..8a4e537b94 100644
--- a/bits/select.h
+++ b/bits/select.h
@@ -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)
diff --git a/sysdeps/i386/bits/select.h b/sysdeps/i386/bits/select.h
index 972bfb685a..ab9aa3d10e 100644
--- a/sysdeps/i386/bits/select.h
+++ b/sysdeps/i386/bits/select.h
@@ -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; \
@@ -34,26 +33,6 @@
: "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 */
/* We don't use `memset' because this would require a prototype and
@@ -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)
diff --git a/sysdeps/x86_64/bits/select.h b/sysdeps/x86_64/bits/select.h
index 5f31b84080..a300d58d33 100644
--- a/sysdeps/x86_64/bits/select.h
+++ b/sysdeps/x86_64/bits/select.h
@@ -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)