58 lines
2.0 KiB
Diff
58 lines
2.0 KiB
Diff
commit d394eb742a3565d7fe7a4b02710a60b5f219ee64
|
|
Author: H.J. Lu <hjl.tools@gmail.com>
|
|
Date: Fri Oct 12 09:21:47 2012 -0700
|
|
|
|
Use __uint64_t in x86 __bswap_64
|
|
|
|
diff --git a/sysdeps/x86/bits/byteswap.h b/sysdeps/x86/bits/byteswap.h
|
|
index 4178439..babe567 100644
|
|
--- a/sysdeps/x86/bits/byteswap.h
|
|
+++ b/sysdeps/x86/bits/byteswap.h
|
|
@@ -24,6 +24,7 @@
|
|
#define _BITS_BYTESWAP_H 1
|
|
|
|
#include <features.h>
|
|
+#include <bits/types.h>
|
|
#include <bits/wordsize.h>
|
|
|
|
/* Swap bytes in 16 bit value. */
|
|
@@ -104,15 +105,15 @@ __bswap_32 (unsigned int __bsx)
|
|
| (((x) & 0x00000000000000ffull) << 56)))
|
|
|
|
# if __GNUC_PREREQ (4, 2)
|
|
-static __inline unsigned long long int
|
|
-__bswap_64 (unsigned long long int __bsx)
|
|
+static __inline __uint64_t
|
|
+__bswap_64 (__uint64_t __bsx)
|
|
{
|
|
return __builtin_bswap64 (__bsx);
|
|
}
|
|
# elif __WORDSIZE == 64
|
|
# define __bswap_64(x) \
|
|
(__extension__ \
|
|
- ({ register unsigned long __v, __x = (x); \
|
|
+ ({ register __uint64_t __v, __x = (x); \
|
|
if (__builtin_constant_p (__x)) \
|
|
__v = __bswap_constant_64 (__x); \
|
|
else \
|
|
@@ -121,7 +122,7 @@ __bswap_64 (unsigned long long int __bsx)
|
|
# else
|
|
# define __bswap_64(x) \
|
|
(__extension__ \
|
|
- ({ union { __extension__ unsigned long long int __ll; \
|
|
+ ({ union { __extension__ __uint64_t __ll; \
|
|
unsigned int __l[2]; } __w, __r; \
|
|
if (__builtin_constant_p (x)) \
|
|
__r.__ll = __bswap_constant_64 (x); \
|
|
@@ -144,8 +145,8 @@ __bswap_64 (unsigned long long int __bsx)
|
|
| (((x) & 0x000000000000ff00ull) << 40) \
|
|
| (((x) & 0x00000000000000ffull) << 56))
|
|
|
|
-static __inline unsigned long long int
|
|
-__bswap_64 (unsigned long long int __bsx)
|
|
+static __inline __uint64_t
|
|
+__bswap_64 (__uint64_t __bsx)
|
|
{
|
|
return __bswap_constant_64 (__bsx);
|
|
}
|