* sysdeps/generic/bits/byteswap.h (__bswap_constant_16): New macro.

(__bswap_16): Use it.
	(__bswap_constant_32): New macro.
	(__bswap_32): Use it.
This commit is contained in:
Ulrich Drepper 2005-10-10 15:49:43 +00:00
parent e265551875
commit a550d3c967
3 changed files with 29 additions and 16 deletions

View File

@ -1,3 +1,10 @@
2005-10-10 Daniel Jacobowitz <dan@codesourcery.com>
* sysdeps/generic/bits/byteswap.h (__bswap_constant_16): New macro.
(__bswap_16): Use it.
(__bswap_constant_32): New macro.
(__bswap_32): Use it.
2005-10-10 Ulrich Drepper <drepper@redhat.com>
* malloc/arena.c (ptmalloc_unlock_all2): Reset atfork_recursive_cntr.

View File

@ -25,32 +25,35 @@
#define _BITS_BYTESWAP_H 1
/* Swap bytes in 16 bit value. */
#define __bswap_constant_16(x) \
((((x) >> 8) & 0xffu) | (((x) & 0xffu) << 8))
#ifdef __GNUC__
# define __bswap_16(x) \
(__extension__ \
({ unsigned short int __bsx = (x); \
((((__bsx) >> 8) & 0xffu) | (((__bsx) & 0xffu) << 8)); }))
({ unsigned short int __bsx = (x); __bswap_constant_16 (__bsx); }))
#else
static __inline unsigned short int
__bswap_16 (unsigned short int __bsx)
{
return ((((__bsx) >> 8) & 0xffu) | (((__bsx) & 0xffu) << 8));
return __bswap_constant_16 (__bsx);
}
#endif
/* Swap bytes in 32 bit value. */
#define __bswap_constant_32(x) \
((((x) & 0xff000000u) >> 24) | (((x) & 0x00ff0000u) >> 8) | \
(((x) & 0x0000ff00u) << 8) | (((x) & 0x000000ffu) << 24))
#ifdef __GNUC__
# define __bswap_32(x) \
(__extension__ \
({ unsigned int __bsx = (x); \
((((__bsx) & 0xff000000u) >> 24) | (((__bsx) & 0x00ff0000u) >> 8) | \
(((__bsx) & 0x0000ff00u) << 8) | (((__bsx) & 0x000000ffu) << 24)); }))
({ register unsigned int __bsx = (x); __bswap_constant_32 (__bsx); }))
#else
static __inline unsigned int
__bswap_32 (unsigned int __bsx)
{
return ((((__bsx) & 0xff000000u) >> 24) | (((__bsx) & 0x00ff0000u) >> 8) |
(((__bsx) & 0x0000ff00u) << 8) | (((__bsx) & 0x000000ffu) << 24));
return __bswap_constant_32 (__bsx);
}
#endif

View File

@ -25,32 +25,35 @@
#define _BITS_BYTESWAP_H 1
/* Swap bytes in 16 bit value. */
#define __bswap_constant_16(x) \
((((x) >> 8) & 0xffu) | (((x) & 0xffu) << 8))
#ifdef __GNUC__
# define __bswap_16(x) \
(__extension__ \
({ unsigned short int __bsx = (x); \
((((__bsx) >> 8) & 0xffu) | (((__bsx) & 0xffu) << 8)); }))
({ unsigned short int __bsx = (x); __bswap_constant_16 (__bsx); }))
#else
static __inline unsigned short int
__bswap_16 (unsigned short int __bsx)
{
return ((((__bsx) >> 8) & 0xffu) | (((__bsx) & 0xffu) << 8));
return __bswap_constant_16 (__bsx);
}
#endif
/* Swap bytes in 32 bit value. */
#define __bswap_constant_32(x) \
((((x) & 0xff000000u) >> 24) | (((x) & 0x00ff0000u) >> 8) | \
(((x) & 0x0000ff00u) << 8) | (((x) & 0x000000ffu) << 24))
#ifdef __GNUC__
# define __bswap_32(x) \
(__extension__ \
({ unsigned int __bsx = (x); \
((((__bsx) & 0xff000000u) >> 24) | (((__bsx) & 0x00ff0000u) >> 8) | \
(((__bsx) & 0x0000ff00u) << 8) | (((__bsx) & 0x000000ffu) << 24)); }))
({ register unsigned int __bsx = (x); __bswap_constant_32 (__bsx); }))
#else
static __inline unsigned int
__bswap_32 (unsigned int __bsx)
{
return ((((__bsx) & 0xff000000u) >> 24) | (((__bsx) & 0x00ff0000u) >> 8) |
(((__bsx) & 0x0000ff00u) << 8) | (((__bsx) & 0x000000ffu) << 24));
return __bswap_constant_32 (__bsx);
}
#endif