-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
ARM: 8287/1: add bitrev.h file to support rbit instruction
This patch add bitrev.h file to support rbit instruction, so that we can do bitrev operation by hardware. Signed-off-by: Yalin Wang <yalin.wang@sonymobile.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
- Loading branch information
Yalin Wang
authored and
Russell King
committed
Jan 16, 2015
1 parent
8e7a4ce
commit 0b7857d
Showing
2 changed files
with
21 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
#ifndef __ASM_BITREV_H | ||
#define __ASM_BITREV_H | ||
|
||
static __always_inline __attribute_const__ u32 __arch_bitrev32(u32 x) | ||
{ | ||
__asm__ ("rbit %0, %1" : "=r" (x) : "r" (x)); | ||
return x; | ||
} | ||
|
||
static __always_inline __attribute_const__ u16 __arch_bitrev16(u16 x) | ||
{ | ||
return __arch_bitrev32((u32)x) >> 16; | ||
} | ||
|
||
static __always_inline __attribute_const__ u8 __arch_bitrev8(u8 x) | ||
{ | ||
return __arch_bitrev32((u32)x) >> 24; | ||
} | ||
|
||
#endif |