This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
On Thu, Apr 5, 2012 at 11:50 PM, Andreas Jaeger <aj@suse.com> wrote: > On 04/05/2012 10:08 PM, H.J. Lu wrote: >> >> Hi, >> >> sysdeps/x86_64/bits/byteswap.h has >> >> #if defined __GNUC__&& ?__GNUC__>= 2 >> >> .. >> #else >> # define __bswap_32(x) \ >> ? ? ?(__extension__ >> \ >> ? ? ? ({ register unsigned int __x = (x); __bswap_constant_32 (__x); })) >> #endif >> >> It doesn't work for compilers without GCC __extension__ >> support. >> >> This patch uses __builtin_bswap32/64 for GCC>= 4.2. >> I used inline function instead of __extension__ to avoid >> the __builtin_bswap32/64 return type issue: >> >> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37743 >> >> Tested on Linux/ia32 and Linux/x86-64. ?OK to install? >> >> Thanks. >> >> H.J. >> -- >> 2012-04-05 ?H.J. Lu<hongjiu.lu@intel.com> >> >> ? ? ? ?* sysdeps/i386/bits/byteswap.h: (__bswap_32): Use >> ? ? ? ?__builtin_bswap32 for GCC>= 4.2. >> ? ? ? ?(__bswap_64): Use __builtin_bswap64 for GCC>= 4.2. >> ? ? ? ?* sysdeps/x86_64/bits/byteswap.h: Likewise. > > > Please check all other byteswap.h functions as well and do a similar change > there as well. > > Btw. I see a lot of duplication in this code. Perhaps we can reduce the > number of files somehow. > That is a good idea. This patch adds bits/byteswap2.h for __bswap_16 and put common 32bit and 64bit bswap in bits/byteswap.h. I created hjl/bswap branch with my change. OK to install? Thanks. -- H.J.
Attachment:
libc-bswap-3.patch
Description: Binary data
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |