aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2005-10-10 15:49:43 +0000
committerUlrich Drepper <drepper@redhat.com>2005-10-10 15:49:43 +0000
commita550d3c967af6af9855ab2e4ea0e3e2642ac5e6a (patch)
tree3b3b4c6de053de03428a60914bb3112085c3f86e
parente2655518752cec1878796a7e859d11143a0d7d3a (diff)
downloadglibc-a550d3c967af6af9855ab2e4ea0e3e2642ac5e6a.tar
glibc-a550d3c967af6af9855ab2e4ea0e3e2642ac5e6a.tar.gz
glibc-a550d3c967af6af9855ab2e4ea0e3e2642ac5e6a.tar.bz2
glibc-a550d3c967af6af9855ab2e4ea0e3e2642ac5e6a.zip
* sysdeps/generic/bits/byteswap.h (__bswap_constant_16): New macro.
(__bswap_16): Use it. (__bswap_constant_32): New macro. (__bswap_32): Use it.
-rw-r--r--ChangeLog7
-rw-r--r--bits/byteswap.h19
-rw-r--r--sysdeps/generic/bits/byteswap.h19
3 files changed, 29 insertions, 16 deletions
diff --git a/ChangeLog b/ChangeLog
index eef606b8b4..275603d307 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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.
diff --git a/bits/byteswap.h b/bits/byteswap.h
index 5f08fed613..949ed0bc9d 100644
--- a/bits/byteswap.h
+++ b/bits/byteswap.h
@@ -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
diff --git a/sysdeps/generic/bits/byteswap.h b/sysdeps/generic/bits/byteswap.h
index 5f08fed613..949ed0bc9d 100644
--- a/sysdeps/generic/bits/byteswap.h
+++ b/sysdeps/generic/bits/byteswap.h
@@ -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