david/ipxe
david
/
ipxe
Archived
1
0
Fork 0

Add Linux-compatible rol32/ror32 functions. Amazingly, gcc will

optimise these down to the correct single "roll"/"rorl" instruction.
This commit is contained in:
Michael Brown 2007-01-24 23:31:58 +00:00
parent 6a765fdc15
commit 9cf5c4557d
1 changed files with 19 additions and 0 deletions

19
src/include/gpxe/bitops.h Normal file
View File

@ -0,0 +1,19 @@
#ifndef _GPXE_BITOPS_H
#define _GPXE_BITOPS_H
/** @file
*
* Bit operations
*/
#include <stdint.h>
static inline uint32_t rol32 ( uint32_t data, unsigned int rotation ) {
return ( ( data << rotation ) | ( data >> ( 32 - rotation ) ) );
}
static inline uint32_t ror32 ( uint32_t data, unsigned int rotation ) {
return ( ( data >> rotation ) | ( data << ( 32 - rotation ) ) );
}
#endif /* _GPXE_BITOPS_H */