qemu/bitops.h: add bitrev8 implementation
This will be required for an upcoming checksum calculation. Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Tested-by: Finn Thain <fthain@linux-m68k.org> Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Message-Id: <20210625065401.30170-7-mark.cave-ayland@ilande.co.uk> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
This commit is contained in:
parent
c3250c8e6b
commit
db1ffc32dd
@ -618,4 +618,26 @@ static inline uint64_t half_unshuffle64(uint64_t x)
|
|||||||
return x;
|
return x;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* bitrev8:
|
||||||
|
* @x: 8-bit value to be reversed
|
||||||
|
*
|
||||||
|
* Given an input value with bits::
|
||||||
|
*
|
||||||
|
* ABCDEFGH
|
||||||
|
*
|
||||||
|
* return the value with its bits reversed from left to right::
|
||||||
|
*
|
||||||
|
* HGFEDCBA
|
||||||
|
*
|
||||||
|
* Returns: the bit-reversed value.
|
||||||
|
*/
|
||||||
|
static inline uint8_t bitrev8(uint8_t x)
|
||||||
|
{
|
||||||
|
x = ((x >> 1) & 0x55) | ((x << 1) & 0xaa);
|
||||||
|
x = ((x >> 2) & 0x33) | ((x << 2) & 0xcc);
|
||||||
|
x = (x >> 4) | (x << 4) ;
|
||||||
|
return x;
|
||||||
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
Reference in New Issue
Block a user