aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/ia64/bits
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@gmail.com>2011-12-23 13:52:59 -0500
committerUlrich Drepper <drepper@gmail.com>2011-12-23 13:52:59 -0500
commit67371b5666310a0012ec39b6c9bc41fe0c1b0bc4 (patch)
tree6059d358471785cc7223dd2a11e87584211824e0 /sysdeps/ia64/bits
parentbbe315ea364e86166bb985e2e605af029482a124 (diff)
downloadglibc-67371b5666310a0012ec39b6c9bc41fe0c1b0bc4.tar
glibc-67371b5666310a0012ec39b6c9bc41fe0c1b0bc4.tar.gz
glibc-67371b5666310a0012ec39b6c9bc41fe0c1b0bc4.tar.bz2
glibc-67371b5666310a0012ec39b6c9bc41fe0c1b0bc4.zip
Prevent warnings due to long long constants
Diffstat (limited to 'sysdeps/ia64/bits')
-rw-r--r--sysdeps/ia64/bits/byteswap.h35
1 files changed, 23 insertions, 12 deletions
diff --git a/sysdeps/ia64/bits/byteswap.h b/sysdeps/ia64/bits/byteswap.h
index d64914f36e..29d0e37d12 100644
--- a/sysdeps/ia64/bits/byteswap.h
+++ b/sysdeps/ia64/bits/byteswap.h
@@ -1,5 +1,6 @@
/* Macros to swap the order of bytes in integer values.
- Copyright (C) 1997,1998,2000,2002,2003,2008 Free Software Foundation, Inc.
+ Copyright (C) 1997,1998,2000,2002,2003,2008,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
@@ -77,17 +78,17 @@ __bswap_32 (unsigned int __bsx)
/* Swap bytes in 64 bit value. */
-#define __bswap_constant_64(x) \
- ((((x) & 0xff00000000000000ul) >> 56) \
- | (((x) & 0x00ff000000000000ul) >> 40) \
- | (((x) & 0x0000ff0000000000ul) >> 24) \
- | (((x) & 0x000000ff00000000ul) >> 8) \
- | (((x) & 0x00000000ff000000ul) << 8) \
- | (((x) & 0x0000000000ff0000ul) << 24) \
- | (((x) & 0x000000000000ff00ul) << 40) \
- | (((x) & 0x00000000000000fful) << 56))
-
#if defined __GNUC__ && __GNUC__ >= 2
+# define __bswap_constant_64(x) \
+ (__extension__ ((((x) & 0xff00000000000000ul) >> 56) \
+ | (((x) & 0x00ff000000000000ul) >> 40) \
+ | (((x) & 0x0000ff0000000000ul) >> 24) \
+ | (((x) & 0x000000ff00000000ul) >> 8) \
+ | (((x) & 0x00000000ff000000ul) << 8) \
+ | (((x) & 0x0000000000ff0000ul) << 24) \
+ | (((x) & 0x000000000000ff00ul) << 40) \
+ | (((x) & 0x00000000000000fful) << 56)))
+
# define __bswap_64(x) \
(__extension__ \
({ register unsigned long int __v, __x = (x); \
@@ -97,9 +98,19 @@ __bswap_32 (unsigned int __bsx)
__asm__ __volatile__ ("mux1 %0 = %1, @rev ;;" \
: "=r" (__v) \
: "r" ((unsigned long int) (__x))); \
- __v; }))
+ __v; }))
#else
+# define __bswap_constant_64(x) \
+ ((((x) & 0xff00000000000000ul) >> 56) \
+ | (((x) & 0x00ff000000000000ul) >> 40) \
+ | (((x) & 0x0000ff0000000000ul) >> 24) \
+ | (((x) & 0x000000ff00000000ul) >> 8) \
+ | (((x) & 0x00000000ff000000ul) << 8) \
+ | (((x) & 0x0000000000ff0000ul) << 24) \
+ | (((x) & 0x000000000000ff00ul) << 40) \
+ | (((x) & 0x00000000000000fful) << 56))
+
static __inline unsigned long int
__bswap_64 (unsigned long int __bsx)
{