On 7/8/21 8:17 PM, Richard Henderson wrote: > All supported compilers have builtins for this. > Drop all of the complicated system detection stuff. > > Signed-off-by: Richard Henderson <richard.hender...@linaro.org> > --- > meson.build | 6 ----- > include/qemu/bswap.h | 53 +++----------------------------------------- > 2 files changed, 3 insertions(+), 56 deletions(-) > > diff --git a/meson.build b/meson.build > index 7e12de01be..6024f2d6fb 100644 > --- a/meson.build > +++ b/meson.build > @@ -1290,8 +1290,6 @@ config_host_data.set('HAVE_STRCHRNUL', > cc.has_function('strchrnul')) > config_host_data.set('HAVE_SYSTEM_FUNCTION', cc.has_function('system', > prefix: '#include <stdlib.h>')) > > # has_header_symbol > -config_host_data.set('CONFIG_BYTESWAP_H', > - cc.has_header_symbol('byteswap.h', 'bswap_32')) > config_host_data.set('CONFIG_EPOLL_CREATE1', > cc.has_header_symbol('sys/epoll.h', 'epoll_create1')) > config_host_data.set('CONFIG_HAS_ENVIRON', > @@ -1311,10 +1309,6 @@ config_host_data.set('CONFIG_INOTIFY', > cc.has_header_symbol('sys/inotify.h', 'inotify_init')) > config_host_data.set('CONFIG_INOTIFY1', > cc.has_header_symbol('sys/inotify.h', 'inotify_init1')) > -config_host_data.set('CONFIG_MACHINE_BSWAP_H', > - cc.has_header_symbol('machine/bswap.h', 'bswap32', > - prefix: '''#include <sys/endian.h> > - #include > <sys/types.h>''')) > config_host_data.set('CONFIG_PRCTL_PR_SET_TIMERSLACK', > cc.has_header_symbol('sys/prctl.h', > 'PR_SET_TIMERSLACK')) > config_host_data.set('CONFIG_RTNETLINK', > diff --git a/include/qemu/bswap.h b/include/qemu/bswap.h > index 2d3bb8bbed..9e12bd8073 100644 > --- a/include/qemu/bswap.h > +++ b/include/qemu/bswap.h > @@ -1,73 +1,26 @@ > #ifndef BSWAP_H > #define BSWAP_H > > -#ifdef CONFIG_MACHINE_BSWAP_H > -# include <sys/endian.h> > -# include <machine/bswap.h> > -#elif defined(__FreeBSD__) > -# include <sys/endian.h> > -#elif defined(__HAIKU__) > -# include <endian.h> > -#elif defined(CONFIG_BYTESWAP_H) > -# include <byteswap.h> > -#define BSWAP_FROM_BYTESWAP > -# else > -#define BSWAP_FROM_FALLBACKS > -#endif /* ! CONFIG_MACHINE_BSWAP_H */ > - > #ifdef __cplusplus > extern "C" { > #endif > > #include "fpu/softfloat-types.h" > > -#ifdef BSWAP_FROM_BYTESWAP > static inline uint16_t bswap16(uint16_t x) > { > - return bswap_16(x); > + return __builtin_bswap16(x); > } > > static inline uint32_t bswap32(uint32_t x) > { > - return bswap_32(x); > + return __builtin_bswap32(x); > } > > static inline uint64_t bswap64(uint64_t x) > { > - return bswap_64(x); > + return __builtin_bswap64(x); > } > -#endif > - > -#ifdef BSWAP_FROM_FALLBACKS > -static inline uint16_t bswap16(uint16_t x) > -{ > - return (((x & 0x00ff) << 8) | > - ((x & 0xff00) >> 8)); > -} > - > -static inline uint32_t bswap32(uint32_t x) > -{ > - return (((x & 0x000000ffU) << 24) | > - ((x & 0x0000ff00U) << 8) | > - ((x & 0x00ff0000U) >> 8) | > - ((x & 0xff000000U) >> 24)); > -} > - > -static inline uint64_t bswap64(uint64_t x) > -{ > - return (((x & 0x00000000000000ffULL) << 56) | > - ((x & 0x000000000000ff00ULL) << 40) | > - ((x & 0x0000000000ff0000ULL) << 24) | > - ((x & 0x00000000ff000000ULL) << 8) | > - ((x & 0x000000ff00000000ULL) >> 8) | > - ((x & 0x0000ff0000000000ULL) >> 24) | > - ((x & 0x00ff000000000000ULL) >> 40) | > - ((x & 0xff00000000000000ULL) >> 56)); > -} > -#endif > - > -#undef BSWAP_FROM_BYTESWAP > -#undef BSWAP_FROM_FALLBACKS > > static inline void bswap16s(uint16_t *s) > { >
Reviewed-by: Philippe Mathieu-Daudé <f4...@amsat.org>