32#if (defined(__linux) || defined(__APPLE__)) && \
33 (defined(__i386__) || defined(__x86_64__)) && \
34 (defined(__GNUC__) && __GNUC__ >= 2)
44#define R__bswap_constant_16(x) \
45 ((((x) >> 8) & 0xff) | (((x) & 0xff) << 8))
47#if defined R__USEASMSWAP
48# define R__bswap_16(x) \
50 ({ unsigned short int __v; \
51 if (__builtin_constant_p (x)) \
52 __v = R__bswap_constant_16 (x); \
54 __asm__ __volatile__ ("rorw $8, %w0" \
56 : "0" ((unsigned short int) (x)) \
61# define R__bswap_16(x) R__bswap_constant_16 (x)
66#define R__bswap_constant_32(x) \
67 ((((x) & 0xff000000) >> 24) | (((x) & 0x00ff0000) >> 8) | \
68 (((x) & 0x0000ff00) << 8) | (((x) & 0x000000ff) << 24))
70#if defined R__USEASMSWAP
73# if !defined __i486__ && !defined __pentium__ && !defined __pentiumpro__ && \
74 !defined __pentium4__ && !defined __x86_64__
75# define R__bswap_32(x) \
77 ({ unsigned int __v; \
78 if (__builtin_constant_p (x)) \
79 __v = R__bswap_constant_32 (x); \
81 __asm__ __volatile__ ("rorw $8, %w0;" \
85 : "0" ((unsigned int) (x)) \
89# define R__bswap_32(x) \
91 ({ unsigned int __v; \
92 if (__builtin_constant_p (x)) \
93 __v = R__bswap_constant_32 (x); \
95 __asm__ __volatile__ ("bswap %0" \
97 : "0" ((unsigned int) (x))); \
101# define R__bswap_32(x) R__bswap_constant_32 (x)
105#if defined __GNUC__ && __GNUC__ >= 2
107# define R__bswap_64(x) \
109 ({ union { __extension__ unsigned long long int __ll; \
110 UInt_t __l[2]; } __w, __r; \
112 __r.__l[0] = R__bswap_32 (__w.__l[1]); \
113 __r.__l[1] = R__bswap_32 (__w.__l[0]); \
122#define Rbswap_16(x) R__bswap_16 (x)
125#define Rbswap_32(x) R__bswap_32 (x)
127#if defined __GNUC__ && __GNUC__ >= 2
129# define Rbswap_64(x) R__bswap_64 (x)