Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Clean up some bits/select.h headers.
  • Loading branch information
Ulrich Drepper committed Jan 9, 2011
1 parent fa9c15c commit f257bbd
Show file tree
Hide file tree
Showing 4 changed files with 28 additions and 32 deletions.
9 changes: 9 additions & 0 deletions 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.
Expand Down
10 changes: 6 additions & 4 deletions 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
Expand Down Expand Up @@ -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)
33 changes: 8 additions & 25 deletions 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
Expand All @@ -22,7 +22,6 @@


#if defined __GNUC__ && __GNUC__ >= 2

# define __FD_ZERO(fdsp) \
do { \
int __d0, __d1; \
Expand All @@ -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
Expand All @@ -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)
8 changes: 5 additions & 3 deletions 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
Expand Down Expand Up @@ -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)

0 comments on commit f257bbd

Please sign in to comment.