On 02/23/2018 07:50 AM, Peter Maydell wrote: > On 17 February 2018 at 18:22, Richard Henderson > <richard.hender...@linaro.org> wrote: >> Signed-off-by: Richard Henderson <richard.hender...@linaro.org> >> --- >> target/arm/helper-sve.h | 14 ++++++++++++++ >> target/arm/sve_helper.c | 41 ++++++++++++++++++++++++++++++++++------- >> target/arm/translate-sve.c | 38 ++++++++++++++++++++++++++++++++++++++ >> target/arm/sve.decode | 7 +++++++ >> 4 files changed, 93 insertions(+), 7 deletions(-) > >> +/* Swap 16-bit words within a 32-bit word. */ >> +static inline uint32_t hswap32(uint32_t h) >> +{ >> + return rol32(h, 16); >> +} >> + >> +/* Swap 16-bit words within a 64-bit word. */ >> +static inline uint64_t hswap64(uint64_t h) >> +{ >> + uint64_t m = 0x0000ffff0000ffffull; >> + h = rol64(h, 32); >> + return ((h & m) << 16) | ((h >> 16) & m); >> +} >> + >> +/* Swap 32-bit words within a 64-bit word. */ >> +static inline uint64_t wswap64(uint64_t h) >> +{ >> + return rol64(h, 32); >> +} >> + > > Were there cases in earlier patches that could have used these? I forget.
No, the earlier patches dealt with bits not bytes. > I guess they're not useful enough to be worth putting in bswap.h. Probably not. >> -static inline uint64_t hswap64(uint64_t h) >> -{ >> - uint64_t m = 0x0000ffff0000ffffull; >> - h = rol64(h, 32); >> - return ((h & m) << 16) | ((h >> 16) & m); >> -} >> - > > Better to put the function in the right place to start with. Oops, yes. r~