xref: /kernel/linux/linux-6.6/arch/arm/include/asm/bitrev.h
  • Home
  • History
  • Annotate Annotate
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
  • only in /kernel/linux/linux-6.6/arch/arm/include/asm/
162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */
262306a36Sopenharmony_ci#ifndef __ASM_BITREV_H
362306a36Sopenharmony_ci#define __ASM_BITREV_H
462306a36Sopenharmony_ci
562306a36Sopenharmony_cistatic __always_inline __attribute_const__ u32 __arch_bitrev32(u32 x)
662306a36Sopenharmony_ci{
762306a36Sopenharmony_ci	__asm__ ("rbit %0, %1" : "=r" (x) : "r" (x));
862306a36Sopenharmony_ci	return x;
962306a36Sopenharmony_ci}
1062306a36Sopenharmony_ci
1162306a36Sopenharmony_cistatic __always_inline __attribute_const__ u16 __arch_bitrev16(u16 x)
1262306a36Sopenharmony_ci{
1362306a36Sopenharmony_ci	return __arch_bitrev32((u32)x) >> 16;
1462306a36Sopenharmony_ci}
1562306a36Sopenharmony_ci
1662306a36Sopenharmony_cistatic __always_inline __attribute_const__ u8 __arch_bitrev8(u8 x)
1762306a36Sopenharmony_ci{
1862306a36Sopenharmony_ci	return __arch_bitrev32((u32)x) >> 24;
1962306a36Sopenharmony_ci}
2062306a36Sopenharmony_ci
2162306a36Sopenharmony_ci#endif
22

Indexes created Thu Nov 07 10:32:03 CST 2024