Date: Tue, 20 Mar 2012 08:34:10 -0400 From: John Baldwin <jhb@freebsd.org> To: Tijl Coosemans <tijl@freebsd.org> Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r232721 - head/sys/x86/include Message-ID: <201203200834.10539.jhb@freebsd.org> In-Reply-To: <201203091148.q29BmuIp005151@svn.freebsd.org> References: <201203091148.q29BmuIp005151@svn.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Friday, March 09, 2012 6:48:56 am Tijl Coosemans wrote: > Author: tijl > Date: Fri Mar 9 11:48:56 2012 > New Revision: 232721 > URL: http://svn.freebsd.org/changeset/base/232721 > > Log: > Clean up x86 endian.h: > - Remove extern "C". There are no functions with external linkage here. [1] > - Rename bswapNN_const(x) to bswapNN_gen(x) to indicate that these macros > are generic implementations that can take non-constant arguments. [1] > - Split up __GNUCLIKE_ASM && __GNUCLIKE_BUILTIN_CONSTANT_P and deal with > each separately. > - Replace _LP64 with __amd64__ because asm instructions are machine > dependent, not ABI dependent. > > Submitted by: bde [1] > Reviewed by: bde BTW, I think I found an old "bug" in this file. The _gen() variants should only use the _gen() variants of smaller types rather than using the version that re-checks __build_constant_p() I think. That is: Index: x86/include/endian.h =================================================================== --- endian.h (revision 233184) +++ endian.h (working copy) @@ -65,9 +65,9 @@ #define __bswap16_gen(x) (__uint16_t)((x) << 8 | (x) >> 8) #define __bswap32_gen(x) \ - (((__uint32_t)__bswap16(x) << 16) | __bswap16((x) >> 16)) + (((__uint32_t)__bswap16_gen(x) << 16) | __bswap16_gen((x) >> 16)) #define __bswap64_gen(x) \ - (((__uint64_t)__bswap32(x) << 32) | __bswap32((x) >> 32)) + (((__uint64_t)__bswap32_gen(x) << 32) | __bswap32_gen((x) >> 32)) #ifdef __GNUCLIKE_BUILTIN_CONSTANT_P #define __bswap16(x) \ I ran into this while porting the __builtin_constant_p() functionality over to ia64. -- John Baldwin
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201203200834.10539.jhb>